aboutsummaryrefslogtreecommitdiff
path: root/src/argaze.test/AreaOfInterest/AOIFeatures.py
diff options
context:
space:
mode:
authorThéo de la Hogue2023-07-05 16:42:39 +0200
committerThéo de la Hogue2023-07-05 16:42:39 +0200
commit5116122176ada6f4a98428c75b8f8ce04faaab9f (patch)
tree6cdd5a27179d4f59ee0cf593bbf49ca07fc81077 /src/argaze.test/AreaOfInterest/AOIFeatures.py
parente5f2c81530f7a29574f3e429d7a20eb55ee7825e (diff)
downloadargaze-5116122176ada6f4a98428c75b8f8ce04faaab9f.zip
argaze-5116122176ada6f4a98428c75b8f8ce04faaab9f.tar.gz
argaze-5116122176ada6f4a98428c75b8f8ce04faaab9f.tar.bz2
argaze-5116122176ada6f4a98428c75b8f8ce04faaab9f.tar.xz
Adding and testing AOIScene merge operator.
Diffstat (limited to 'src/argaze.test/AreaOfInterest/AOIFeatures.py')
-rw-r--r--src/argaze.test/AreaOfInterest/AOIFeatures.py45
1 files changed, 43 insertions, 2 deletions
diff --git a/src/argaze.test/AreaOfInterest/AOIFeatures.py b/src/argaze.test/AreaOfInterest/AOIFeatures.py
index 586d2bd..bced0aa 100644
--- a/src/argaze.test/AreaOfInterest/AOIFeatures.py
+++ b/src/argaze.test/AreaOfInterest/AOIFeatures.py
@@ -62,7 +62,6 @@ class TestAreaOfInterestClass(unittest.TestCase):
self.assertIsNone(numpy.testing.assert_array_equal(aoi_2D.size, [1, 1]))
self.assertIsNone(numpy.testing.assert_array_equal(aoi_2D.bounding_box, [[0, 0], [1, 0], [1, 1], [0, 1]]))
- self.assertIsNone(numpy.testing.assert_array_equal(aoi_2D.bounding_box_size, [1, 1]))
# Check 8 points 3D AreaOfInterest creation
aoi_3D = AOIFeatures.AreaOfInterest([[0, 0, 0], [0, 1, 0], [1, 0, 0], [1, 1, 0], [0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
@@ -150,6 +149,7 @@ class TestAOISceneClass(unittest.TestCase):
self.assertEqual(aoi_2d_scene.dimension, 2)
self.assertEqual(len(aoi_2d_scene.items()), 0)
+ self.assertEqual(len(vars(aoi_2d_scene)), 2 + len(aoi_2d_scene.items()))
# Check 2D AOIScene creation
aoi_2D = AOIFeatures.AreaOfInterest([[0, 0], [0, 1], [1, 1], [1, 0]])
@@ -158,7 +158,7 @@ class TestAOISceneClass(unittest.TestCase):
self.assertEqual(aoi_2d_scene.dimension, 2)
self.assertEqual(len(aoi_2d_scene.items()), 1)
self.assertEqual(list(aoi_2d_scene.keys()), ["A"])
- self.assertEqual(len(vars(aoi_2d_scene)), 3)
+ self.assertEqual(len(vars(aoi_2d_scene)), 2 + len(aoi_2d_scene.items()))
def test___set_item__(self):
"""Test AOIScene __set_item__ method."""
@@ -172,6 +172,47 @@ class TestAOISceneClass(unittest.TestCase):
with self.assertRaises(AssertionError):
aoi_2d_scene["B"] = AOIFeatures.AreaOfInterest([[0, 0, 0], [0, 1, 0], [1, 1, 0], [1, 0, 0]])
+ def test_merge(self):
+ """Test AOIScene merge operator."""
+
+ # Create first scene with A and B aoi
+ aoi_2d_scene_AB = AOIFeatures.AOIScene(2,)
+
+ aoi_2d_scene_AB["A"] = AOIFeatures.AreaOfInterest([[0, 0], [0, 1], [1, 1], [1, 0]])
+ aoi_2d_scene_AB["B"] = AOIFeatures.AreaOfInterest([[0, 0], [0, 2], [2, 2], [2, 0]])
+
+ print('aoi_2d_scene_AB vars: ', vars(aoi_2d_scene_AB))
+
+ # Create second scene with C and D aoi
+ aoi_2d_scene_CD = AOIFeatures.AOIScene(2,)
+
+ aoi_2d_scene_CD["C"] = AOIFeatures.AreaOfInterest([[0, 0], [0, 3], [3, 3], [3, 0]])
+ aoi_2d_scene_CD["D"] = AOIFeatures.AreaOfInterest([[0, 0], [0, 4], [4, 4], [4, 0]])
+
+ print('aoi_2d_scene_CD vars: ', vars(aoi_2d_scene_CD))
+
+ # Merge first scene and second scene into a third scene
+ aoi_2d_scene_ABCD = aoi_2d_scene_AB | aoi_2d_scene_CD
+
+ print('aoi_2d_scene_ABCD vars: ', vars(aoi_2d_scene_ABCD))
+
+ # Check third scene
+ self.assertEqual(aoi_2d_scene_ABCD.dimension, 2)
+ self.assertEqual(len(aoi_2d_scene_ABCD.items()), 4)
+ self.assertEqual(list(aoi_2d_scene_ABCD.keys()), ["A", "B", "C", "D"])
+ self.assertEqual(len(vars(aoi_2d_scene_ABCD)), 2 + len(aoi_2d_scene_ABCD.items()))
+
+ # Merge second scene into first scene
+ aoi_2d_scene_AB |= aoi_2d_scene_CD
+
+ print('aoi_2d_scene_AB vars: ', vars(aoi_2d_scene_AB))
+
+ # Check first scene
+ self.assertEqual(aoi_2d_scene_AB.dimension, 2)
+ self.assertEqual(len(aoi_2d_scene_AB.items()), 4)
+ self.assertEqual(list(aoi_2d_scene_AB.keys()), ["A", "B", "C", "D"])
+ self.assertEqual(len(vars(aoi_2d_scene_AB)), 2 + len(aoi_2d_scene_AB.items()))
+
def test___repr__(self):
"""Test AOIScene string representation."""