Skip to content

Commit 181f633

Browse files
Nic-Mamonai-bot
andauthored
1568 Enhance tests to use self random state (Project-MONAI#1599)
* [DLMED] change tests to use self random state Signed-off-by: Nic Ma <nma@nvidia.com> * [MONAI] python code formatting Signed-off-by: monai-bot <monai.miccai2019@gmail.com> * [DLMED] fix CI tests Signed-off-by: Nic Ma <nma@nvidia.com> Co-authored-by: monai-bot <monai.miccai2019@gmail.com>
1 parent 1b170d8 commit 181f633

3 files changed

Lines changed: 30 additions & 6 deletions

File tree

tests/test_rand_rotate.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def test_correct_results(self, degrees, keep_size, mode, padding_mode, align_cor
5252
self.imt[0, 0], -np.rad2deg(angle), (0, 1), not keep_size, order=_order, mode=_mode, prefilter=False
5353
)
5454
expected = np.stack(expected).astype(np.float32)
55-
np.testing.assert_allclose(expected, rotated[0])
55+
np.testing.assert_allclose(expected, rotated[0], rtol=1e-2, atol=1)
5656

5757

5858
class TestRandRotate3D(NumpyImageTestCase3D):

tests/test_rand_rotated.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def test_correct_results(self, degrees, keep_size, mode, padding_mode, align_cor
5454
self.imt[0, 0], -np.rad2deg(angle), (0, 1), not keep_size, order=_order, mode=_mode, prefilter=False
5555
)
5656
expected = np.stack(expected).astype(np.float32)
57-
self.assertTrue(np.allclose(expected, rotated["img"][0]))
57+
self.assertTrue(np.allclose(expected, rotated["img"][0], rtol=1e-2, atol=1))
5858

5959

6060
class TestRandRotated3D(NumpyImageTestCase3D):

tests/utils.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
from monai.config.deviceconfig import USE_COMPILED
3232
from monai.data import create_test_image_2d, create_test_image_3d
33+
from monai.transforms import Randomizable
3334
from monai.utils import ensure_tuple, optional_import, set_determinism
3435
from monai.utils.module import get_torch_version_tuple
3536

@@ -434,14 +435,25 @@ def _call_original_func(name, module, *args, **kwargs):
434435
return f(*args, **kwargs)
435436

436437

437-
class NumpyImageTestCase2D(unittest.TestCase):
438+
class NumpyImageTestCase2D(unittest.TestCase, Randomizable):
438439
im_shape = (128, 64)
439440
input_channels = 1
440441
output_channels = 4
441442
num_classes = 3
442443

444+
def randomize(self, data=None):
445+
return create_test_image_2d(
446+
width=self.im_shape[0],
447+
height=self.im_shape[1],
448+
num_objs=4,
449+
rad_max=20,
450+
noise_max=0,
451+
num_seg_classes=self.num_classes,
452+
random_state=self.R,
453+
)
454+
443455
def setUp(self):
444-
im, msk = create_test_image_2d(self.im_shape[0], self.im_shape[1], 4, 20, 0, self.num_classes)
456+
im, msk = self.randomize()
445457

446458
self.imt = im[None, None]
447459
self.seg1 = (msk[None, None] > 0).astype(np.float32)
@@ -456,14 +468,26 @@ def setUp(self):
456468
self.segn = torch.tensor(self.segn)
457469

458470

459-
class NumpyImageTestCase3D(unittest.TestCase):
471+
class NumpyImageTestCase3D(unittest.TestCase, Randomizable):
460472
im_shape = (64, 48, 80)
461473
input_channels = 1
462474
output_channels = 4
463475
num_classes = 3
464476

477+
def randomize(self, data=None):
478+
return create_test_image_3d(
479+
height=self.im_shape[0],
480+
width=self.im_shape[1],
481+
depth=self.im_shape[2],
482+
num_objs=4,
483+
rad_max=20,
484+
noise_max=0,
485+
num_seg_classes=self.num_classes,
486+
random_state=self.R,
487+
)
488+
465489
def setUp(self):
466-
im, msk = create_test_image_3d(self.im_shape[0], self.im_shape[1], self.im_shape[2], 4, 20, 0, self.num_classes)
490+
im, msk = self.randomize()
467491

468492
self.imt = im[None, None]
469493
self.seg1 = (msk[None, None] > 0).astype(np.float32)

0 commit comments

Comments
 (0)