From edeec22130c1be6e55891be0f3651171259b0f0f Mon Sep 17 00:00:00 2001 From: "Dennis.Glaeser" <dennis.glaeser@iws.uni-stuttgart.de> Date: Wed, 30 Dec 2020 08:08:26 +0100 Subject: [PATCH] [test][common] test point-triangle intersection for small eps --- test/geometry/test_0d1d_intersection.cc | 2 ++ test/geometry/test_0d2d_intersection.cc | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/test/geometry/test_0d1d_intersection.cc b/test/geometry/test_0d1d_intersection.cc index e92abcac7b..68286011de 100644 --- a/test/geometry/test_0d1d_intersection.cc +++ b/test/geometry/test_0d1d_intersection.cc @@ -62,6 +62,8 @@ void testIntersections(std::vector<bool>& returns) returns.push_back(testIntersection(a, b, p4)); returns.push_back(testIntersection(a, b, p5)); returns.push_back(testIntersection(a, b, p6)); + + // test cases where the point is just on or just outside the segment returns.push_back(testIntersection(a, b, p7)); returns.push_back(testIntersection(a, b, p8)); returns.push_back(testIntersection(a, b, p9, true)); diff --git a/test/geometry/test_0d2d_intersection.cc b/test/geometry/test_0d2d_intersection.cc index 077def4387..a9209b13da 100644 --- a/test/geometry/test_0d2d_intersection.cc +++ b/test/geometry/test_0d2d_intersection.cc @@ -45,6 +45,10 @@ void runIntersectionTest(std::vector<bool>& returns, const Transformation& trans returns.push_back(testIntersection(triangle, transform({0.5, 0.51}), false, verbose)); returns.push_back(testIntersection(triangle, transform({0.0, -0.01}), false, verbose)); + // test cases where the point is just inside or just outside the triangle + returns.push_back(testIntersection(triangle, transform({0.0, -1.5e-7}), false, verbose)); + returns.push_back(testIntersection(triangle, transform({1.0+1.5e-7, 1.5e-7}), false, verbose)); + // test quadrilateral-point intersections if (verbose) std::cout << "\n -- Test quadrilateral-point intersections" << std::endl; @@ -64,6 +68,9 @@ void runIntersectionTest(std::vector<bool>& returns, const Transformation& trans returns.push_back(testIntersection(quadrilateral, transform({0.5, 1.01}), false, verbose)); returns.push_back(testIntersection(quadrilateral, transform({0.0, -0.01}), false, verbose)); + // test cases where the point is just inside or just outside the triangle + returns.push_back(testIntersection(quadrilateral, transform({0.0, -1.5e-7}), false, verbose)); + returns.push_back(testIntersection(quadrilateral, transform({1.0+1.5e-7, 1.5e-7}), false, verbose)); } template<class Transformation> -- GitLab