40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using UnityEngine;
|
|
using UnityEngine.TestTools;
|
|
using NUnit.Framework;
|
|
using System.Collections;
|
|
|
|
[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.AreEqual(0, r);
|
|
Assert.Less(r, 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.Less(t, dampTime, msg);
|
|
else
|
|
t = dampTime;
|
|
float r2 = Cinemachine.Utility.Damper.Damp(initial, dampTime, t);
|
|
Assert.Less(r, r2, msg);
|
|
r = r2;
|
|
}
|
|
//Assert.AreEqual(initial * (1 - MathHelpers.kNegligibleResidual), r, "f = " + f);
|
|
}
|
|
}
|
|
}
|
|
|