From 49c58903bcc1ae47d3927a9b7745ab1183af7eb9 Mon Sep 17 00:00:00 2001
From: josidd <joseph.siddons@noc.ac.uk>
Date: Wed, 25 Sep 2024 15:01:53 +0100
Subject: [PATCH] test(ellipse): add additional boundary tests

---
 test/test_octtree.py  | 14 ++++++++++++--
 test/test_quadtree.py | 11 +++++++++++
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/test/test_octtree.py b/test/test_octtree.py
index 6f39bcb..8875b7a 100644
--- a/test/test_octtree.py
+++ b/test/test_octtree.py
@@ -136,6 +136,8 @@ class TestOctTree(unittest.TestCase):
         theta = 0
 
         d = datetime(2023, 3, 24, 12, 0)
+        dt = timedelta(days=10)
+
         test_datetime = d + timedelta(hours=4)
         test_timedelta = timedelta(hours=5)
         ellipse = Ellipse(
@@ -147,8 +149,16 @@ class TestOctTree(unittest.TestCase):
             ellipse.p2_lat,
         )
 
-        d = datetime(2023, 3, 24, 12, 0)
-        dt = timedelta(days=10)
+        # TEST: Near Boundary Points
+        assert ellipse.contains(Record(13.49, 2.5, test_datetime))
+        assert ellipse.contains(Record(11.51, 2.5, test_datetime))
+        assert ellipse.contains(Record(12.5, 2.99, test_datetime))
+        assert ellipse.contains(Record(12.5, 2.01, test_datetime))
+        assert not ellipse.contains(Record(13.51, 2.5, test_datetime))
+        assert not ellipse.contains(Record(11.49, 2.5, test_datetime))
+        assert not ellipse.contains(Record(12.5, 3.01, test_datetime))
+        assert not ellipse.contains(Record(12.5, 1.99, test_datetime))
+
         boundary = Rectangle(10, 4, d, 20, 8, dt)
 
         otree = OctTree(boundary, capacity=3)
diff --git a/test/test_quadtree.py b/test/test_quadtree.py
index d117872..815d7c2 100644
--- a/test/test_quadtree.py
+++ b/test/test_quadtree.py
@@ -109,6 +109,17 @@ class TestQuadTree(unittest.TestCase):
             ellipse.p2_lon,
             ellipse.p2_lat,
         )
+
+        # TEST: Near Boundary Points
+        assert ellipse.contains(Record(13.49, 2.5))
+        assert ellipse.contains(Record(11.51, 2.5))
+        assert ellipse.contains(Record(12.5, 2.99))
+        assert ellipse.contains(Record(12.5, 2.01))
+        assert not ellipse.contains(Record(13.51, 2.5))
+        assert not ellipse.contains(Record(11.49, 2.5))
+        assert not ellipse.contains(Record(12.5, 3.01))
+        assert not ellipse.contains(Record(12.5, 1.99))
+
         boundary = Rectangle(10, 4, 20, 8)
         qtree = QuadTree(boundary, capacity=3)
         points: list[Record] = [
-- 
GitLab