From 5116122176ada6f4a98428c75b8f8ce04faaab9f Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Wed, 5 Jul 2023 16:42:39 +0200 Subject: Adding and testing AOIScene merge operator. --- src/argaze.test/AreaOfInterest/AOIFeatures.py | 45 +++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) (limited to 'src/argaze.test/AreaOfInterest/AOIFeatures.py') 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.""" -- cgit v1.1