LinearCurveTest.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  2. // SPDX-License-Identifier: MIT
  3. #include "UnitTestFramework.h"
  4. #include <Jolt/Core/LinearCurve.h>
  5. TEST_SUITE("LinearCurveTest")
  6. {
  7. TEST_CASE("Test0PointCurve")
  8. {
  9. LinearCurve curve;
  10. CHECK(curve.GetValue(1.0f) == 0.0f);
  11. }
  12. TEST_CASE("Test1PointCurve")
  13. {
  14. LinearCurve curve;
  15. curve.AddPoint(1.0f, 20.0f);
  16. CHECK(curve.GetValue(0.9f) == 20.0f);
  17. CHECK(curve.GetValue(1.0f) == 20.0f);
  18. CHECK(curve.GetValue(1.1f) == 20.0f);
  19. }
  20. TEST_CASE("Test2PointCurve")
  21. {
  22. LinearCurve curve;
  23. curve.AddPoint(-1.0f, 40.0f);
  24. curve.AddPoint(-3.0f, 20.0f);
  25. curve.Sort();
  26. CHECK_APPROX_EQUAL(curve.GetValue(-3.1f), 20.0f);
  27. CHECK_APPROX_EQUAL(curve.GetValue(-3.0f), 20.0f);
  28. CHECK_APPROX_EQUAL(curve.GetValue(-2.0f), 30.0f);
  29. CHECK_APPROX_EQUAL(curve.GetValue(-1.0f), 40.0f);
  30. CHECK_APPROX_EQUAL(curve.GetValue(-0.9f), 40.0f);
  31. }
  32. TEST_CASE("Test3PointCurve")
  33. {
  34. LinearCurve curve;
  35. curve.AddPoint(1.0f, 20.0f);
  36. curve.AddPoint(5.0f, 60.0f);
  37. curve.AddPoint(3.0f, 40.0f);
  38. curve.Sort();
  39. CHECK_APPROX_EQUAL(curve.GetValue(0.9f), 20.0f);
  40. CHECK_APPROX_EQUAL(curve.GetValue(1.0f), 20.0f);
  41. CHECK_APPROX_EQUAL(curve.GetValue(2.0f), 30.0f);
  42. CHECK_APPROX_EQUAL(curve.GetValue(3.0f), 40.0f);
  43. CHECK_APPROX_EQUAL(curve.GetValue(4.0f), 50.0f);
  44. CHECK_APPROX_EQUAL(curve.GetValue(5.0f), 60.0f);
  45. CHECK_APPROX_EQUAL(curve.GetValue(5.1f), 60.0f);
  46. }
  47. }