DampingTests.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using UnityEngine;
  2. using UnityEngine.TestTools;
  3. using NUnit.Framework;
  4. using System.Collections;
  5. [TestFixture]
  6. public class DampingTests
  7. {
  8. [Test]
  9. public void DampFloat()
  10. {
  11. const float dampTime = 10f;
  12. const float initial = 100f;
  13. float[] fixedFactor = new float[3] { 0.79f, 0f, 1.07f };
  14. for (int f = 0; f < fixedFactor.Length; ++f)
  15. {
  16. float t = 0;
  17. float r = Cinemachine.Utility.Damper.Damp(initial, dampTime, t);
  18. Assert.AreEqual(0, r);
  19. Assert.Less(r, initial);
  20. const int iterations = 10;
  21. for (int i = 0; i < iterations; ++i)
  22. {
  23. t += dampTime / iterations;
  24. float fdt = fixedFactor[f] * t;
  25. string msg = "i = " + i + ", t = " + t + ", fdt = " + fdt;
  26. if (i != iterations-1)
  27. Assert.Less(t, dampTime, msg);
  28. else
  29. t = dampTime;
  30. float r2 = Cinemachine.Utility.Damper.Damp(initial, dampTime, t);
  31. Assert.Less(r, r2, msg);
  32. r = r2;
  33. }
  34. //Assert.AreEqual(initial * (1 - MathHelpers.kNegligibleResidual), r, "f = " + f);
  35. }
  36. }
  37. }