From https://github.com/PDAL/PDAL/commit/1a7415f67cfe13f816345ce4b7fc1c68f0a45c83 Bug https://bugs.gentoo.org/833820 From: Andrew Bell Date: Thu, 7 Oct 2021 11:15:18 -0400 Subject: [PATCH] Work around test issues with varying versions of PROJ (#3560) * Add range for crop because of varying proj precision. * Fix tests for PROJ 8.1.1 * More test workaround for proj. --- test/unit/filters/CropFilterTest.cpp | 10 +++++++ test/unit/io/EptReaderTest.cpp | 41 +++++++++++++++++++++++++++- 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/test/unit/filters/CropFilterTest.cpp b/test/unit/filters/CropFilterTest.cpp index 23ccb465bc..f4b825c891 100644 --- a/test/unit/filters/CropFilterTest.cpp +++ b/test/unit/filters/CropFilterTest.cpp @@ -250,7 +250,17 @@ TEST(CropFilterTest, test_crop_polygon_reprojection) PointViewSet viewSet = crop.execute(table); EXPECT_EQ(viewSet.size(), 1u); view = *viewSet.begin(); +//ABELL - I'd like to do the following, but we don't necessarily have proj.h +/** +#if defined(PROJ_VERSION_NUMBER) && PROJ_VERSION_NUMBER > 80101 + EXPECT_EQ(view->size(), 45u); +#else EXPECT_EQ(view->size(), 47u); +#endif +**/ +// So instead... + EXPECT_GE(view->size(), 45u); + EXPECT_LE(view->size(), 47u); FileUtils::closeFile(wkt_stream); } diff --git a/test/unit/io/EptReaderTest.cpp b/test/unit/io/EptReaderTest.cpp index ab5cfdee4a..0d274d4c08 100644 --- a/test/unit/io/EptReaderTest.cpp +++ b/test/unit/io/EptReaderTest.cpp @@ -625,8 +625,21 @@ TEST(EptReaderTest, boundedCrop) } EXPECT_EQ(eptNp, sourceNp); + +//ABELL - A change in proj changed the numbers, but we don't necessarily have proj.h +/** +#if defined(PROJ_VERSION_NUMBER) && PROJ_VERSION_NUMBER > 80101 + EXPECT_EQ(eptNp, 45u); + EXPECT_EQ(sourceNp, 45u); +#else EXPECT_EQ(eptNp, 47u); EXPECT_EQ(sourceNp, 47u); +#endif +**/ + EXPECT_GE(eptNp, 45u); + EXPECT_GE(sourceNp, 45u); + EXPECT_LE(eptNp, 47u); + EXPECT_LE(sourceNp, 47u); } TEST(EptReaderTest, polygonAndBoundsCrop) @@ -769,8 +782,20 @@ TEST(EptReaderTest, boundedCropReprojection) sourceNp += view->size(); EXPECT_EQ(eptNp, sourceNp); +//ABELL - We don't necessarily have proj.h, so we can't do this: +/** +#if defined(PROJ_VERSION_NUMBER) && PROJ_VERSION_NUMBER > 80101 + EXPECT_EQ(eptNp, 45u); + EXPECT_EQ(sourceNp, 45u); +#else EXPECT_EQ(eptNp, 47u); EXPECT_EQ(sourceNp, 47u); +#endif +**/ + EXPECT_GE(eptNp, 45u); + EXPECT_GE(sourceNp, 45u); + EXPECT_LE(eptNp, 47u); + EXPECT_LE(sourceNp, 47u); } @@ -811,9 +836,23 @@ TEST(EptReaderTest, ogrCrop) for (const PointViewPtr& view : source.execute(sourceTable)) sourceNp += view->size(); - EXPECT_EQ(eptNp, sourceNp); +//ABELL - PROJ changed to make the number of points that pass the filter different from +// what's in the file we've got stored. +// EXPECT_EQ(eptNp, sourceNp); +//ABELL - We don't necessarily have proj.h, so can't do the following: +/** +#if defined(PROJ_VERSION_NUMBER) && PROJ_VERSION_NUMBER > 80101 + EXPECT_EQ(eptNp, 89u); + EXPECT_EQ(sourceNp, 89u); +#else EXPECT_EQ(eptNp, 86u); EXPECT_EQ(sourceNp, 86u); +#endif +**/ + EXPECT_LE(eptNp, 89u); + EXPECT_LE(sourceNp, 89u); + EXPECT_GE(eptNp, 86u); + EXPECT_GE(sourceNp, 86u); } } // namespace pdal