您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
53 行
1.4 KiB
53 行
1.4 KiB
using System;
|
|
using NUnit.Framework;
|
|
|
|
|
|
namespace NetcodeTests
|
|
{
|
|
[TestFixture]
|
|
public class FloatTests
|
|
{
|
|
[Test]
|
|
public void Float_TestFixedPrecision()
|
|
{
|
|
var random = new Random(21831);
|
|
|
|
const int RUNS = 10000;
|
|
var samples = new int[RUNS];
|
|
for (int i = 0; i < RUNS; ++i)
|
|
samples[i] = (int)(random.NextDouble() * random.Next(0, 10000) * 1000);
|
|
|
|
//for (int i = 0; i < RUNS - 1; ++i)
|
|
//{
|
|
// float a = samples[i];
|
|
// float b = samples[i + 1];
|
|
|
|
// int delta1 = (int)((a - 0) * 1000);
|
|
// int delta2 = (int)((b - a) * 1000);
|
|
|
|
// float expected = b;
|
|
// float resultSum = resultSum +
|
|
// float result = delta1 / 1000.0f + delta2 / 1000.0f;
|
|
|
|
// Assert.IsTrue(Math.Abs(expected - result) < 0.002);
|
|
//}
|
|
|
|
int resultSum = 0;
|
|
for (int i = 0; i < RUNS; ++i)
|
|
{
|
|
int a = i == 0 ? 0 : samples[i - 1];
|
|
int b = samples[i];
|
|
|
|
int delta = b - a;
|
|
|
|
resultSum = resultSum + delta;
|
|
|
|
float expected = b / 1000.0f;
|
|
float actual = resultSum / 1000.0f;
|
|
|
|
float diff = Math.Abs(expected - actual);
|
|
Assert.IsTrue(diff < 0.001);
|
|
}
|
|
}
|
|
}
|
|
}
|