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

Method test_correct_results

tests/transforms/test_rotate.py:62–95  ·  view source on GitHub ↗
(self, im_type, angle, keep_size, mode, padding_mode, align_corners)

Source from the content-addressed store, hash-verified

60class TestRotate2D(NumpyImageTestCase2D):
61 @parameterized.expand(TEST_CASES_2D)
62 def test_correct_results(self, im_type, angle, keep_size, mode, padding_mode, align_corners):
63 init_param = {
64 "angle": angle,
65 "keep_size": keep_size,
66 "mode": mode,
67 "padding_mode": padding_mode,
68 "align_corners": align_corners,
69 "dtype": np.float64,
70 }
71 rotate_fn = Rotate(**init_param)
72 call_param = {"img": im_type(self.imt[0])}
73 rotated = rotate_fn(**call_param)
74 test_resampler_lazy(rotate_fn, rotated, init_param, call_param, atol=1e-4 if USE_COMPILED else 1e-6)
75 if keep_size:
76 np.testing.assert_allclose(self.imt[0].shape, rotated.shape)
77 _order = 0 if mode == "nearest" else 1
78 if padding_mode == "border":
79 _mode = "nearest"
80 elif padding_mode == "reflection":
81 _mode = "reflect"
82 else:
83 _mode = "constant"
84
85 expected = []
86 for channel in self.imt[0]:
87 expected.append(
88 scipy.ndimage.rotate(
89 channel, -np.rad2deg(angle), (0, 1), not keep_size, order=_order, mode=_mode, prefilter=False
90 )
91 )
92 expected = np.stack(expected).astype(np.float32)
93 rotated = rotated.cpu() if isinstance(rotated, torch.Tensor) else rotated
94 good = np.sum(np.isclose(expected, rotated, atol=1e-3))
95 self.assertLessEqual(np.abs(good - expected.size), 5, "diff at most 5 pixels")
96
97
98class TestRotate3D(NumpyImageTestCase3D):

Callers

nothing calls this directly

Calls 4

RotateClass · 0.90
test_resampler_lazyFunction · 0.90
astypeMethod · 0.80
appendMethod · 0.45

Tested by

no test coverage detected