From 485f08485a0d602fc7479378faaf92ad698da255 Mon Sep 17 00:00:00 2001 From: Lachlan Grose Date: Mon, 4 Dec 2023 09:59:15 +1100 Subject: [PATCH] fix: adding test to bb --- tests/unit/utils/test_bounding_box.py | 58 +++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tests/unit/utils/test_bounding_box.py diff --git a/tests/unit/utils/test_bounding_box.py b/tests/unit/utils/test_bounding_box.py new file mode 100644 index 000000000..02fb484d7 --- /dev/null +++ b/tests/unit/utils/test_bounding_box.py @@ -0,0 +1,58 @@ +from LoopStructural.utils import BoundingBox +import numpy as np + + +def test_create_bounding_box(): + bbox = BoundingBox(origin=[0, 0, 0], maximum=[1, 1, 1]) + assert bbox.origin[0] == 0 + assert bbox.origin[1] == 0 + assert bbox.origin[2] == 0 + assert bbox.maximum[0] == 1 + assert bbox.maximum[1] == 1 + assert bbox.maximum[2] == 1 + assert np.all(bbox.bb == np.array([[0, 0, 0], [1, 1, 1]])) + assert bbox.valid == True + + +def test_create_bounding_box_from_points(): + bbox = BoundingBox() + bbox.fit(np.array([[0, 0, 0], [1, 1, 1]])) + assert bbox.origin[0] == 0 + assert bbox.origin[1] == 0 + assert bbox.origin[2] == 0 + assert bbox.maximum[0] == 1 + assert bbox.maximum[1] == 1 + assert bbox.maximum[2] == 1 + assert np.all(bbox.bb == np.array([[0, 0, 0], [1, 1, 1]])) + assert bbox.valid == True + + +def test_create_with_buffer(): + bbox = BoundingBox(origin=[0, 0, 0], maximum=[1, 1, 1]) + bbox = bbox.with_buffer(0.2) + assert bbox.origin[0] == -0.2 + assert bbox.origin[1] == -0.2 + assert bbox.origin[2] == -0.2 + assert bbox.maximum[0] == 1.2 + assert bbox.maximum[1] == 1.2 + assert bbox.maximum[2] == 1.2 + assert np.all(bbox.bb == np.array([[-0.2, -0.2, -0.2], [1.2, 1.2, 1.2]])) + assert bbox.valid == True + + +def test_is_inside(): + bbox = BoundingBox(origin=[0, 0, 0], maximum=[1, 1, 1]) + assert bbox.is_inside(np.array([0.5, 0.5, 0.5])) == True + assert bbox.is_inside(np.array([0.5, 0.5, 1.5])) == False + assert bbox.is_inside(np.array([0.5, 0.5, -0.5])) == False + assert bbox.is_inside(np.array([0.5, 1.5, 0.5])) == False + assert bbox.is_inside(np.array([0.5, -0.5, 0.5])) == False + assert bbox.is_inside(np.array([1.5, 0.5, 0.5])) == False + assert bbox.is_inside(np.array([-0.5, 0.5, 0.5])) == False + + +if __name__ == "__main__": + test_create_bounding_box() + test_create_bounding_box_from_points() + test_create_with_buffer() + test_is_inside()