2
0

EllipseTest.cpp 863 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  2. // SPDX-License-Identifier: MIT
  3. #include "UnitTestFramework.h"
  4. #include <Jolt/Geometry/Ellipse.h>
  5. TEST_SUITE("EllipseTests")
  6. {
  7. TEST_CASE("TestEllipseIsInside")
  8. {
  9. Ellipse e(1.0f, 2.0f);
  10. CHECK(e.IsInside(Float2(0.1f, 0.1f)));
  11. CHECK_FALSE(e.IsInside(Float2(2.0f, 0.0f)));
  12. }
  13. TEST_CASE("TestEllipseClosestPoint")
  14. {
  15. Ellipse e(1.0f, 2.0f);
  16. Float2 c = e.GetClosestPoint(Float2(2.0f, 0.0f));
  17. CHECK(c == Float2(1.0f, 0.0f));
  18. c = e.GetClosestPoint(Float2(-2.0f, 0.0f));
  19. CHECK(c == Float2(-1.0f, 0.0f));
  20. c = e.GetClosestPoint(Float2(0.0f, 4.0f));
  21. CHECK(c == Float2(0.0f, 2.0f));
  22. c = e.GetClosestPoint(Float2(0.0f, -4.0f));
  23. CHECK(c == Float2(0.0f, -2.0f));
  24. Ellipse e2(2.0f, 2.0f);
  25. c = e2.GetClosestPoint(Float2(4.0f, 4.0f));
  26. CHECK_APPROX_EQUAL(c, Float2(sqrt(2.0f), sqrt(2.0f)));
  27. }
  28. }