38 lines
1.3 KiB
C#
38 lines
1.3 KiB
C#
|
using NUnit.Framework;
|
|||
|
|
|||
|
namespace Tests.Editor
|
|||
|
{
|
|||
|
[TestFixture]
|
|||
|
public class DampingTests
|
|||
|
{
|
|||
|
[Test]
|
|||
|
public void DampFloat()
|
|||
|
{
|
|||
|
const float dampTime = 10f;
|
|||
|
const float initial = 100f;
|
|||
|
float[] fixedFactor = new float[3] {0.79f, 0f, 1.07f};
|
|||
|
for (int f = 0; f < fixedFactor.Length; ++f)
|
|||
|
{
|
|||
|
float t = 0;
|
|||
|
float r = Cinemachine.Utility.Damper.Damp(initial, dampTime, t);
|
|||
|
Assert.That(r, Is.EqualTo(0f));
|
|||
|
Assert.That(r, Is.LessThan(initial));
|
|||
|
const int iterations = 10;
|
|||
|
for (int i = 0; i < iterations; ++i)
|
|||
|
{
|
|||
|
t += dampTime / iterations;
|
|||
|
float fdt = fixedFactor[f] * t;
|
|||
|
string msg = $"i = {i}, t = {t}, fdt = {fdt}";
|
|||
|
if (i != iterations - 1)
|
|||
|
Assert.That(t, Is.LessThan(dampTime), msg);
|
|||
|
else
|
|||
|
t = dampTime;
|
|||
|
float r2 = Cinemachine.Utility.Damper.Damp(initial, dampTime, t);
|
|||
|
Assert.That(r, Is.LessThan(r2), msg);
|
|||
|
r = r2;
|
|||
|
}
|
|||
|
//Assert.AreEqual(initial * (1 - MathHelpers.kNegligibleResidual), r, "f = " + f);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|