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

Method test_invert

tests/transforms/inverse/test_invertd.py:50–142  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

48
49class TestInvertd(unittest.TestCase):
50 def test_invert(self):
51 set_determinism(seed=0)
52 im_fname, seg_fname = (make_nifti_image(i) for i in create_test_image_3d(101, 100, 107, noise_max=100))
53 transform = Compose(
54 [
55 LoadImaged(KEYS, image_only=True),
56 EnsureChannelFirstd(KEYS),
57 Orientationd(KEYS, "RPS"),
58 Spacingd(KEYS, pixdim=(1.2, 1.01, 0.9), mode=["bilinear", "nearest"], dtype=np.float32),
59 ScaleIntensityd("image", minv=1, maxv=10),
60 RandFlipd(KEYS, prob=0.5, spatial_axis=[1, 2]),
61 RandAxisFlipd(KEYS, prob=0.5),
62 RandRotate90d(KEYS, prob=0, spatial_axes=(1, 2)),
63 RandZoomd(KEYS, prob=0.5, min_zoom=0.5, max_zoom=1.1, keep_size=True),
64 RandRotated(KEYS, prob=0.5, range_x=np.pi, mode="bilinear", align_corners=True, dtype=np.float64),
65 RandAffined(KEYS, prob=0.5, rotate_range=np.pi, mode=["nearest", 0]),
66 ResizeWithPadOrCropd(KEYS, 100),
67 CastToTyped(KEYS, dtype=[torch.uint8, np.uint8]),
68 CopyItemsd("label", times=2, names=["label_inverted", "label_inverted1"]),
69 CopyItemsd("image", times=2, names=["image_inverted", "image_inverted1"]),
70 ]
71 )
72 data = [{"image": im_fname, "label": seg_fname} for _ in range(12)]
73
74 # num workers = 0 for mac or gpu transforms
75 num_workers = 0 if sys.platform != "linux" or torch.cuda.is_available() else 2
76
77 dataset = Dataset(data, transform=transform)
78 transform.inverse(dataset[0])
79 loader = DataLoader(dataset, num_workers=num_workers, batch_size=1)
80 inverter = Invertd(
81 # `image` was not copied, invert the original value directly
82 keys=["image_inverted", "label_inverted"],
83 transform=transform,
84 orig_keys=["label", "label"],
85 nearest_interp=True,
86 device=None,
87 post_func=torch.as_tensor,
88 )
89
90 inverter_1 = Invertd(
91 # `image` was not copied, invert the original value directly
92 keys=["image_inverted1", "label_inverted1"],
93 transform=transform,
94 orig_keys=["image", "image"],
95 nearest_interp=[True, False],
96 device="cpu",
97 )
98
99 expected_keys = ["image", "image_inverted", "image_inverted1", "label", "label_inverted", "label_inverted1"]
100 # execute 1 epoch
101 for d in loader:
102 d = decollate_batch(d)
103 for item in d:
104 item = inverter(item)
105 item = inverter_1(item)
106
107 self.assertListEqual(sorted(item), expected_keys)

Callers

nothing calls this directly

Calls 15

inverseMethod · 0.95
set_determinismFunction · 0.90
make_nifti_imageFunction · 0.90
create_test_image_3dFunction · 0.90
ComposeClass · 0.90
LoadImagedClass · 0.90
EnsureChannelFirstdClass · 0.90
OrientationdClass · 0.90
SpacingdClass · 0.90
ScaleIntensitydClass · 0.90
RandFlipdClass · 0.90
RandAxisFlipdClass · 0.90

Tested by

no test coverage detected