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

Method test_shape

tests/data/test_smartcachedataset.py:42–88  ·  view source on GitHub ↗
(self, replace_rate, num_replace_workers, transform)

Source from the content-addressed store, hash-verified

40class TestSmartCacheDataset(unittest.TestCase):
41 @parameterized.expand([TEST_CASE_1, TEST_CASE_2, TEST_CASE_3, TEST_CASE_4, TEST_CASE_5])
42 def test_shape(self, replace_rate, num_replace_workers, transform):
43 test_image = nib.Nifti1Image(np.random.randint(0, 2, size=[8, 8, 8]).astype(float), np.eye(4))
44 with tempfile.TemporaryDirectory() as tempdir:
45 nib.save(test_image, os.path.join(tempdir, "test_image1.nii.gz"))
46 nib.save(test_image, os.path.join(tempdir, "test_label1.nii.gz"))
47 nib.save(test_image, os.path.join(tempdir, "test_extra1.nii.gz"))
48 test_data = [
49 {
50 "image": os.path.join(tempdir, "test_image1.nii.gz"),
51 "label": os.path.join(tempdir, "test_label1.nii.gz"),
52 "extra": os.path.join(tempdir, "test_extra1.nii.gz"),
53 }
54 ] * 20
55 dataset = SmartCacheDataset(
56 data=test_data,
57 transform=transform,
58 replace_rate=replace_rate,
59 cache_num=16,
60 num_init_workers=4,
61 num_replace_workers=num_replace_workers,
62 )
63 if transform is None:
64 # Check without providing transform
65 dataset2 = SmartCacheDataset(
66 data=test_data,
67 replace_rate=replace_rate,
68 cache_num=16,
69 num_init_workers=4,
70 num_replace_workers=num_replace_workers,
71 )
72 for k in ["image", "label", "extra"]:
73 self.assertEqual(dataset[0][k], dataset2[0][k])
74
75 self.assertEqual(len(dataset._cache), dataset.cache_num)
76 for i in range(dataset.cache_num):
77 self.assertIsNotNone(dataset._cache[i])
78
79 for _ in range(2):
80 dataset.start()
81 for _ in range(3):
82 dataset.update_cache()
83 self.assertIsNotNone(dataset[15])
84 if isinstance(dataset[15]["image"], (np.ndarray, torch.Tensor)):
85 assert_allclose(dataset[15]["image"], dataset[15]["label"])
86 else:
87 self.assertIsInstance(dataset[15]["image"], str)
88 dataset.shutdown()
89
90 def test_update_cache(self):
91 # Given

Callers

nothing calls this directly

Calls 7

startMethod · 0.95
update_cacheMethod · 0.95
shutdownMethod · 0.95
SmartCacheDatasetClass · 0.90
assert_allcloseFunction · 0.90
astypeMethod · 0.80
saveMethod · 0.80

Tested by

no test coverage detected