MCPcopy Create free account
hub / github.com/Project-MONAI/MONAI / pad_test_pending_ops

Method pad_test_pending_ops

tests/padders.py:117–148  ·  view source on GitHub ↗
(self, input_param, input_shape)

Source from the content-addressed store, hash-verified

115 self.assertEqual(inv.applied_operations, [])
116
117 def pad_test_pending_ops(self, input_param, input_shape):
118 for mode in TESTS_PENDING_MODE:
119 # TODO: One of the dim in the input data contains 1 report error.
120 pad_fn = self.Padder(mode=mode[0], **input_param)
121 data = self.get_arr(input_shape)
122 is_map = isinstance(pad_fn, MapTransform)
123 im = MetaTensor(data, meta={"a": "b", "affine": np.eye(len(input_shape))})
124 input_data = {"img": im} if is_map else im
125 # non-lazy
126 result_non_lazy = pad_fn(input_data)
127 expected = result_non_lazy["img"] if is_map else result_non_lazy
128 self.assertIsInstance(expected, MetaTensor)
129 # lazy
130 pad_fn.lazy = True
131 pending_result = pad_fn(input_data)
132 pending_result = pending_result["img"] if is_map else pending_result
133 self.assertIsInstance(pending_result, MetaTensor)
134 assert_allclose(pending_result.peek_pending_affine(), expected.affine)
135 assert_allclose(pending_result.peek_pending_shape(), expected.shape[1:])
136 # TODO: mode="bilinear" may report error
137 overrides = {"mode": "nearest", "padding_mode": mode[1], "align_corners": False}
138 result = apply_pending(pending_result, overrides=overrides)[0]
139 # lazy in constructor
140 pad_fn_lazy = self.Padder(mode=mode[0], lazy=True, **input_param)
141 self.assertTrue(pad_fn_lazy.lazy)
142 # compare
143 assert_allclose(result, expected, rtol=1e-5)
144 if isinstance(result, MetaTensor) and not isinstance(pad_fn, MapTransform):
145 pad_fn.lazy = False
146 inverted = pad_fn.inverse(result)
147 self.assertTrue((not inverted.pending_operations) and (not inverted.applied_operations))
148 self.assertEqual(inverted.shape, im.shape)
149
150 def pad_test_combine_ops(self, funcs, input_shape, expected_shape):
151 for mode in TESTS_PENDING_MODE:

Callers 6

test_pending_opsMethod · 0.80
test_pending_opsMethod · 0.80
test_pending_opsMethod · 0.80
test_pending_opsMethod · 0.80
test_pending_opsMethod · 0.80
test_pending_opsMethod · 0.80

Calls 7

get_arrMethod · 0.95
MetaTensorClass · 0.90
assert_allcloseFunction · 0.90
apply_pendingFunction · 0.90
peek_pending_affineMethod · 0.80
peek_pending_shapeMethod · 0.80
inverseMethod · 0.45

Tested by 6

test_pending_opsMethod · 0.64
test_pending_opsMethod · 0.64
test_pending_opsMethod · 0.64
test_pending_opsMethod · 0.64
test_pending_opsMethod · 0.64
test_pending_opsMethod · 0.64