From 01f58c59882ef752abbac46fc36266a76dc69881 Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 22 Jan 2025 19:14:19 -0800 Subject: [PATCH 1/3] Add fabs to distance calculation to catch errors due to precision --- tests/modules/location_test.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/modules/location_test.cpp b/tests/modules/location_test.cpp index 9c94d9b8..d12e5b4f 100644 --- a/tests/modules/location_test.cpp +++ b/tests/modules/location_test.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "gtest/gtest.h" @@ -649,6 +650,9 @@ TEST_F(LocationTest, shouldGenerateNearbyGPSCoordinateWithOriginInKilometers) ASSERT_LE(distance, 10.0); } + +#include + TEST_F(LocationTest, shouldGenerateNearbyGPSCoordinateWithOriginInMiles) { constexpr std::tuple origin{0, 0}; @@ -669,10 +673,11 @@ TEST_F(LocationTest, shouldGenerateNearbyGPSCoordinateWithOriginInMiles) ASSERT_EQ(generatedLongitudeParts[1].size(), 3); const auto distanceKm = - vincentyDistance(std::get<0>(origin), std::get<1>(origin), latitudeAsFloat, longitudeAsFloat); + vincentyDistance(std::get<0>(origin), std::get<1>(origin), latitudeAsFloat, longitudeAsFloat); const auto distanceMiles = distanceKm * 0.621371; + constexpr double TOLERANCE = 1e-12; - ASSERT_LE(distanceMiles, 10.0); + ASSERT_LE(fabs(distanceMiles - 10.0), 10.0 + TOLERANCE); } TEST_F(LocationTest, shouldGenerateDirection) From 762fffba47c5aa8c158cc2d282e4578063a544ec Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 22 Jan 2025 19:14:19 -0800 Subject: [PATCH 2/3] Add fabs to distance calculation to catch errors due to precision --- tests/modules/location_test.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/modules/location_test.cpp b/tests/modules/location_test.cpp index 9c94d9b8..e6d5013e 100644 --- a/tests/modules/location_test.cpp +++ b/tests/modules/location_test.cpp @@ -669,10 +669,11 @@ TEST_F(LocationTest, shouldGenerateNearbyGPSCoordinateWithOriginInMiles) ASSERT_EQ(generatedLongitudeParts[1].size(), 3); const auto distanceKm = - vincentyDistance(std::get<0>(origin), std::get<1>(origin), latitudeAsFloat, longitudeAsFloat); + vincentyDistance(std::get<0>(origin), std::get<1>(origin), latitudeAsFloat, longitudeAsFloat); const auto distanceMiles = distanceKm * 0.621371; + constexpr double TOLERANCE = 1e-12; - ASSERT_LE(distanceMiles, 10.0); + ASSERT_LE(fabs(distanceMiles - 10.0), 10.0 + TOLERANCE); } TEST_F(LocationTest, shouldGenerateDirection) From efebcdf0dd421de3d1628ca966ce65e2463f06f4 Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 22 Jan 2025 19:21:01 -0800 Subject: [PATCH 3/3] Remove leftover debugging code --- tests/modules/location_test.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/modules/location_test.cpp b/tests/modules/location_test.cpp index d12e5b4f..e6d5013e 100644 --- a/tests/modules/location_test.cpp +++ b/tests/modules/location_test.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include "gtest/gtest.h" @@ -650,9 +649,6 @@ TEST_F(LocationTest, shouldGenerateNearbyGPSCoordinateWithOriginInKilometers) ASSERT_LE(distance, 10.0); } - -#include - TEST_F(LocationTest, shouldGenerateNearbyGPSCoordinateWithOriginInMiles) { constexpr std::tuple origin{0, 0};