From a87b41e0bf0f48b667717faadd3fb25016b762cb Mon Sep 17 00:00:00 2001
From: Aaron Grabowy <aaron.grabowy@rwth-aachen.de>
Date: Thu, 11 Feb 2021 16:31:49 +0100
Subject: [PATCH] Removed tests with false positives

---
 tests/feature/intersections/aabb-intersect.cc | 45 ++++++++-----------
 1 file changed, 19 insertions(+), 26 deletions(-)

diff --git a/tests/feature/intersections/aabb-intersect.cc b/tests/feature/intersections/aabb-intersect.cc
index 687c893..8807b58 100644
--- a/tests/feature/intersections/aabb-intersect.cc
+++ b/tests/feature/intersections/aabb-intersect.cc
@@ -204,31 +204,25 @@ TG_FUZZ_TEST(AABB, RayIntersection)
 
 TG_FUZZ_TEST(AABB, ObjectIntersection)
 {
-    auto const padding = 0.25f;
     auto const numSamples = 250;
-    auto const maxNumSamples = 250000;
     auto const test_obj = [&](auto const& bb, auto const& o) {
-        auto bbPadded = bb;
-        bbPadded.min -= padding;
-        bbPadded.max += padding;
 
-        if (intersects(o, bbPadded))
+        if (!intersects(o, bb))
         {
-            auto someInside = false;
-            for (auto i = 0; i < maxNumSamples && !someInside; ++i)
+            for (auto i = 0; i < numSamples; ++i)
             {
-                auto pBox = uniform(rng, bbPadded);
-                if (contains(o, pBox, padding))
-                    someInside = true;
+                auto pBox = uniform(rng, bb);
+                CHECK(!contains(o, pBox));
             }
-            CHECK(someInside);
         }
-        else
+
+        for (auto i = 0; i < numSamples; ++i)
         {
-            for (auto i = 0; i < numSamples; ++i)
+            auto pBox = uniform(rng, bb);
+            if (contains(o, pBox))
             {
-                auto pBox = uniform(rng, bb);
-                CHECK(!contains(o, pBox, padding));
+                CHECK(intersects(o, bb));
+                break;
             }
         }
 
@@ -237,23 +231,22 @@ TG_FUZZ_TEST(AABB, ObjectIntersection)
             auto const objBounds = aabb_of(o);
             CHECK(intersects(o, objBounds));
 
-            if (intersects(o, bb))
+            if (!intersects(o, bb))
             {
-                auto someInside = false;
-                for (auto i = 0; i < maxNumSamples && !someInside; ++i)
+                for (auto i = 0; i < numSamples; ++i)
                 {
                     auto pObj = uniform(rng, o);
-                    if (contains(bb, pObj))
-                        someInside = true;
+                    CHECK(!contains(bb, pObj));
                 }
-                CHECK(someInside);
             }
-            else
+
+            for (auto i = 0; i < numSamples; ++i)
             {
-                for (auto i = 0; i < numSamples; ++i)
+                auto pObj = uniform(rng, o);
+                if (contains(bb, pObj))
                 {
-                    auto pObj = uniform(rng, o);
-                    CHECK(!contains(bb, pObj));
+                    CHECK(intersects(o, bb));
+                    break;
                 }
             }
         }
-- 
GitLab