|
36 | 36 | ) |
37 | 37 | from monai.data.meta_tensor import MetaTensor |
38 | 38 | from monai.transforms import CastToTyped, Invertd |
39 | | -from tests.test_utils import TEST_NDARRAYS, assert_allclose |
| 39 | +from tests.test_utils import TEST_NDARRAYS, assert_allclose, dict_product |
40 | 40 |
|
41 | | -TESTS_3D = [] |
42 | | -boxes = [[0, 0, 0, 0, 0, 0], [0, 1, 0, 2, 3, 3], [0, 1, 1, 2, 3, 4]] |
43 | | -labels = [1, 1, 0] |
44 | | -scores = [[0.2, 0.8], [0.3, 0.7], [0.6, 0.4]] |
45 | | -image_size = [1, 4, 6, 4] |
46 | | -image = np.zeros(image_size) |
| 41 | +# Define common test data |
| 42 | +boxes_3d = [[0, 0, 0, 0, 0, 0], [0, 1, 0, 2, 3, 3], [0, 1, 1, 2, 3, 4]] |
| 43 | +labels_3d = [1, 1, 0] |
| 44 | +scores_3d = [[0.2, 0.8], [0.3, 0.7], [0.6, 0.4]] |
| 45 | +image_size_3d = [1, 4, 6, 4] |
| 46 | +image_3d = np.zeros(image_size_3d) |
47 | 47 |
|
48 | | -for p in TEST_NDARRAYS: |
| 48 | +# Use dict_product for TESTS_3D |
| 49 | +TESTS_3D = [] |
| 50 | +for params in dict_product(ndarray_type=TEST_NDARRAYS): |
| 51 | + p = params["ndarray_type"] |
49 | 52 | TESTS_3D.append( |
50 | 53 | [ |
51 | 54 | {"box_keys": "boxes", "dst_mode": "xyzwhd"}, |
52 | | - {"boxes": p(boxes), "image": p(image), "labels": p(labels), "scores": p(scores)}, |
| 55 | + {"boxes": p(boxes_3d), "image": p(image_3d), "labels": p(labels_3d), "scores": p(scores_3d)}, |
53 | 56 | p([[0, 0, 0, 0, 0, 0], [0, 1, 0, 2, 2, 3], [0, 1, 1, 2, 2, 3]]), |
54 | 57 | p([[0, 0, 0, 0, 0, 0], [0, 3, 0, 1, 9, 4.5], [0, 3, 1.5, 1, 9, 6]]), |
55 | 58 | p([[1, -6, -1, 1, -6, -1], [1, -3, -1, 2, 3, 3.5], [1, -3, 0.5, 2, 3, 5]]), |
|
59 | 62 | ] |
60 | 63 | ) |
61 | 64 |
|
| 65 | +# 2D test data |
| 66 | +boxes_2d = [[0, 1, 2, 2], [0, 0, 1, 1]] |
| 67 | +labels_2d = [1, 0] |
| 68 | +image_size_2d = [1, 2, 2] |
| 69 | +image_2d = np.zeros(image_size_2d) |
| 70 | + |
| 71 | +# Use dict_product for TESTS_2D |
62 | 72 | TESTS_2D = [] |
63 | | -boxes = [[0, 1, 2, 2], [0, 0, 1, 1]] |
64 | | -labels = [1, 0] |
65 | | -image_size = [1, 2, 2] |
66 | | -image = np.zeros(image_size) |
67 | | -for p in TEST_NDARRAYS: |
| 73 | +for params in dict_product(ndarray_type=TEST_NDARRAYS): |
| 74 | + p = params["ndarray_type"] |
68 | 75 | TESTS_2D.append( |
69 | | - [{"boxes": p(boxes), "image": p(image), "labels": p(labels)}, p([[[0, 2], [0, 2]], [[1, 0], [0, 0]]])] |
| 76 | + [{"boxes": p(boxes_2d), "image": p(image_2d), "labels": p(labels_2d)}, |
| 77 | + p([[[0, 2], [0, 2]], [[1, 0], [0, 0]]])] |
70 | 78 | ) |
71 | 79 |
|
| 80 | +# Use dict_product for TESTS_2D_mask |
72 | 81 | TESTS_2D_mask = [] |
73 | | -boxes_mask = [[[-1, 0], [0, -1]]] |
74 | | -for p in TEST_NDARRAYS: |
75 | | - TESTS_2D_mask.append([p(boxes_mask), (p([[0.0, 0.0, 2.0, 2.0]]), p([0]))]) |
76 | | -boxes_mask = [[[-1, 0], [0, -1]], [[-1, 1], [1, -1]]] |
77 | | -for p in TEST_NDARRAYS: |
78 | | - TESTS_2D_mask.append([p(boxes_mask), (p([[0.0, 0.0, 2.0, 2.0], [0.0, 0.0, 2.0, 2.0]]), p([0, 1]))]) |
| 82 | +boxes_mask_1 = [[[-1, 0], [0, -1]]] |
| 83 | +for params in dict_product(ndarray_type=TEST_NDARRAYS): |
| 84 | + p = params["ndarray_type"] |
| 85 | + TESTS_2D_mask.append([p(boxes_mask_1), (p([[0.0, 0.0, 2.0, 2.0]]), p([0]))]) |
| 86 | + |
| 87 | +boxes_mask_2 = [[[-1, 0], [0, -1]], [[-1, 1], [1, -1]]] |
| 88 | +for params in dict_product(ndarray_type=TEST_NDARRAYS): |
| 89 | + p = params["ndarray_type"] |
| 90 | + TESTS_2D_mask.append([p(boxes_mask_2), (p([[0.0, 0.0, 2.0, 2.0], [0.0, 0.0, 2.0, 2.0]]), p([0, 1]))]) |
79 | 91 |
|
80 | 92 |
|
81 | 93 | class TestBoxTransform(unittest.TestCase): |
|
0 commit comments