From 666373ef6fd4d6f58d66342885ca06e0d1369c5f Mon Sep 17 00:00:00 2001
From: Karsten Rink <karsten.rink@ufz.de>
Date: Wed, 15 Oct 2014 11:13:55 +0200
Subject: [PATCH] adjusted tests

---
 Tests/GeoLib/TestIsPointInTriangle.cpp | 48 ++++++++++++++++++--------
 1 file changed, 33 insertions(+), 15 deletions(-)

diff --git a/Tests/GeoLib/TestIsPointInTriangle.cpp b/Tests/GeoLib/TestIsPointInTriangle.cpp
index b76740125c3..ab1e9378216 100644
--- a/Tests/GeoLib/TestIsPointInTriangle.cpp
+++ b/Tests/GeoLib/TestIsPointInTriangle.cpp
@@ -19,42 +19,60 @@ TEST(GeoLib, IsPointInTriangle)
 	GeoLib::Point const b(100.0, 0.0, 0.0);
 	GeoLib::Point const c(0.0, 100.0, 0.0);
 
+	double const default_eps (std::numeric_limits<double>::epsilon());
+
 	// check point on corner points of triangle
 	GeoLib::Point q(a);
-	EXPECT_TRUE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_TRUE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_TRUE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 	q = b;
-	EXPECT_TRUE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_TRUE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_TRUE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 	q = c;
-	EXPECT_TRUE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_TRUE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_TRUE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 
 	// check points on edges of triangle
 	q = GeoLib::Point(0.5*(b[0]+a[0]), 0.5*(b[1]+a[1]), 0.5*(b[2]+a[2]));
-	EXPECT_TRUE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_TRUE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_TRUE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 	q = GeoLib::Point(0.5*(c[0]+a[0]), 0.5*(c[1]+a[1]), 0.5*(c[2]+a[2]));
-	EXPECT_TRUE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_TRUE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_TRUE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 	q = GeoLib::Point(0.5*(c[0]+b[0]), 0.5*(c[1]+b[1]), 0.5*(c[2]+b[2]));
-	EXPECT_TRUE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_TRUE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_TRUE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 
 	// check points inside
 	q = GeoLib::Point (0.1, 0.1, 0.0);
-	EXPECT_TRUE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_TRUE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_TRUE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 	q = GeoLib::Point (0.1, 0.1, 1e-10);
-	EXPECT_TRUE(GeoLib::isPointInTriangle2(q, a, b, c, 1e-5));
+	EXPECT_TRUE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	// here is a higher eps value needed for the second algorithm
+	EXPECT_TRUE(GeoLib::barycentricPointInTriangle(q, a, b, c, 1e-5));
 
 	// check points outside
 	q = GeoLib::Point (-0.1, 0.1, 0.0);
-	EXPECT_FALSE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_FALSE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_FALSE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 	q = GeoLib::Point (0.1, 0.1, 0.0005);
-	EXPECT_FALSE(GeoLib::isPointInTriangle2(q, a, b, c)); // default eps from float
+	EXPECT_FALSE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_FALSE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 	q = GeoLib::Point (0.1, 0.1, 0.0001);
-	EXPECT_FALSE(GeoLib::isPointInTriangle2(q, a, b, c, std::numeric_limits<double>::epsilon()));
+	EXPECT_FALSE(GeoLib::gaussPointInTriangle(q, a, b, c, std::numeric_limits<double>::epsilon()));
+	EXPECT_FALSE(GeoLib::barycentricPointInTriangle(q, a, b, c, std::numeric_limits<double>::epsilon()));
 	q = GeoLib::Point (0.1, 0.1, 0.000001);
-	EXPECT_FALSE(GeoLib::isPointInTriangle2(q, a, b, c, std::numeric_limits<double>::epsilon()));
+	EXPECT_FALSE(GeoLib::gaussPointInTriangle(q, a, b, c, std::numeric_limits<double>::epsilon()));
+	EXPECT_FALSE(GeoLib::barycentricPointInTriangle(q, a, b, c, std::numeric_limits<double>::epsilon()));
 	q = GeoLib::Point (0.1, 0.1, 1e-7);
-	EXPECT_FALSE(GeoLib::isPointInTriangle2(q, a, b, c, std::numeric_limits<double>::epsilon()));
+	EXPECT_FALSE(GeoLib::gaussPointInTriangle(q, a, b, c, std::numeric_limits<double>::epsilon()));
+	EXPECT_FALSE(GeoLib::barycentricPointInTriangle(q, a, b, c, std::numeric_limits<double>::epsilon()));
 	q = GeoLib::Point (0.1, 0.1, 0.001);
-	EXPECT_FALSE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_FALSE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_FALSE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 	q = GeoLib::Point (0.1, 0.1, 0.1);
-	EXPECT_FALSE(GeoLib::isPointInTriangle2(q, a, b, c));
+	EXPECT_FALSE(GeoLib::gaussPointInTriangle(q, a, b, c));
+	EXPECT_FALSE(GeoLib::barycentricPointInTriangle(q, a, b, c));
 }
 
-- 
GitLab