2
0

EllipseTest.cpp 927 B

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