From fae4b959b6cb085e2f44f566dd06a5b26ac6f60b Mon Sep 17 00:00:00 2001 From: Oleg Olegovich <37666954+Oleg-Olegovich@users.noreply.github.com> Date: Sun, 2 Jun 2024 10:42:51 +0300 Subject: [PATCH] Fixed geom tests (#163) --- packages/geom/test/CMakeLists.txt | 2 + packages/geom/test/bounding_box_tests.cpp | 41 +++++--------------- packages/geom/test/polygon_tests.cpp | 23 +++++++++++ packages/geom/test/uniform_stepper_tests.cpp | 1 + 4 files changed, 35 insertions(+), 32 deletions(-) diff --git a/packages/geom/test/CMakeLists.txt b/packages/geom/test/CMakeLists.txt index a86da00c..24b7a1cc 100644 --- a/packages/geom/test/CMakeLists.txt +++ b/packages/geom/test/CMakeLists.txt @@ -3,12 +3,14 @@ ament_add_gtest( angle_tests.cpp angle_vector_tests.cpp arc_tests.cpp + bounding_box_tests.cpp distance_tests.cpp line_tests.cpp main.cpp polygon_tests.cpp ray_tests.cpp segment_tests.cpp + uniform_stepper_tests.cpp vector_tests.cpp vector3_tests.cpp ) diff --git a/packages/geom/test/bounding_box_tests.cpp b/packages/geom/test/bounding_box_tests.cpp index 25175651..3768ce21 100644 --- a/packages/geom/test/bounding_box_tests.cpp +++ b/packages/geom/test/bounding_box_tests.cpp @@ -35,7 +35,7 @@ TEST(BoundingBox, constructor) { ASSERT_GEOM_EQUAL(bb3.max.y, 24., eps); } -TEST(Vector3, extend) { +TEST(BoundingBox, extend) { // Arrange. auto bb1 = BoundingBox({1, 3}); auto bb2 = BoundingBox({1, 3}); @@ -69,36 +69,13 @@ TEST(Vector3, extend) { ASSERT_GEOM_EQUAL(bb2.max.x, 7., eps); ASSERT_GEOM_EQUAL(bb2.max.y, 4., eps); - ASSERT_GEOM_EQUAL(bb3.min.x, 3., eps); - ASSERT_GEOM_EQUAL(bb3.min.y, -5., eps); - ASSERT_GEOM_EQUAL(bb3.max.x, 10., eps); - ASSERT_GEOM_EQUAL(bb3.max.y, 2., eps); + ASSERT_GEOM_EQUAL(bb3.min.x, -5., eps); + ASSERT_GEOM_EQUAL(bb3.min.y, 2., eps); + ASSERT_GEOM_EQUAL(bb3.max.x, 3., eps); + ASSERT_GEOM_EQUAL(bb3.max.y, 10., eps); - ASSERT_GEOM_EQUAL(bb4.min.x, 3., eps); - ASSERT_GEOM_EQUAL(bb4.min.y, -5., eps); - ASSERT_GEOM_EQUAL(bb4.max.x, 10., eps); - ASSERT_GEOM_EQUAL(bb4.max.y, 2., eps); -} - -TEST(BoundingBox, makeBoundingBox) { - // Arrange. - const auto p1 = Polygon{{0, 0}, {0, 1}, {1, 0}}; - const auto p2 = Polygon{{-1, -7}, {-2, 8}, {14, 6}, {5, -1}}; - - // Act. - const auto bb1 = makeBoundingBox(p1); - const auto bb2 = makeBoundingBox(p2); - - // Assert. - constexpr double eps = 1e-9; - - ASSERT_GEOM_EQUAL(bb1.min.x, 0., eps); - ASSERT_GEOM_EQUAL(bb1.min.y, 0., eps); - ASSERT_GEOM_EQUAL(bb1.max.x, 1., eps); - ASSERT_GEOM_EQUAL(bb1.max.y, 1., eps); - - ASSERT_GEOM_EQUAL(bb2.min.x, -2., eps); - ASSERT_GEOM_EQUAL(bb2.min.y, -7., eps); - ASSERT_GEOM_EQUAL(bb2.max.x, 14., eps); - ASSERT_GEOM_EQUAL(bb2.max.y, 5., eps); + ASSERT_GEOM_EQUAL(bb4.min.x, -5., eps); + ASSERT_GEOM_EQUAL(bb4.min.y, 2., eps); + ASSERT_GEOM_EQUAL(bb4.max.x, 3., eps); + ASSERT_GEOM_EQUAL(bb4.max.y, 10., eps); } diff --git a/packages/geom/test/polygon_tests.cpp b/packages/geom/test/polygon_tests.cpp index 7f1edce2..3267b279 100644 --- a/packages/geom/test/polygon_tests.cpp +++ b/packages/geom/test/polygon_tests.cpp @@ -113,3 +113,26 @@ TEST(Polygon, intersect) { ASSERT_EQ(intersect(poly, seg), true); } } + +TEST(Polygon, makeBoundingBox) { + // Arrange. + const auto p1 = Polygon{{0, 0}, {0, 1}, {1, 0}}; + const auto p2 = Polygon{{-1, -7}, {-2, 8}, {14, 6}, {5, -1}}; + + // Act. + const auto bb1 = makeBoundingBox(p1); + const auto bb2 = makeBoundingBox(p2); + + // Assert. + constexpr double eps = 1e-9; + + ASSERT_GEOM_EQUAL(bb1.min.x, 0., eps); + ASSERT_GEOM_EQUAL(bb1.min.y, 0., eps); + ASSERT_GEOM_EQUAL(bb1.max.x, 1., eps); + ASSERT_GEOM_EQUAL(bb1.max.y, 1., eps); + + ASSERT_GEOM_EQUAL(bb2.min.x, -2., eps); + ASSERT_GEOM_EQUAL(bb2.min.y, -7., eps); + ASSERT_GEOM_EQUAL(bb2.max.x, 14., eps); + ASSERT_GEOM_EQUAL(bb2.max.y, 8., eps); +} diff --git a/packages/geom/test/uniform_stepper_tests.cpp b/packages/geom/test/uniform_stepper_tests.cpp index ed7a5ca1..e82414de 100644 --- a/packages/geom/test/uniform_stepper_tests.cpp +++ b/packages/geom/test/uniform_stepper_tests.cpp @@ -1,6 +1,7 @@ #include #include "geom/test/equal_assert.h" +#include "geom/polygon.h" #include "geom/polyline.h" #include "geom/uniform_stepper.h"