diff --git a/docs/source/transforms.rst b/docs/source/transforms.rst index a8d04efaa5..8fc832a253 100644 --- a/docs/source/transforms.rst +++ b/docs/source/transforms.rst @@ -543,8 +543,8 @@ Post-processing :members: :special-members: __call__ -`Prob NMS` -"""""""""" +`ProbNMS` +""""""""" .. autoclass:: ProbNMS :members: @@ -563,6 +563,12 @@ Spatial :members: :special-members: __call__ +`ResampleToMatch` +""""""""""""""""" +.. autoclass:: ResampleToMatch + :members: + :special-members: __call__ + `Spacing` """"""""" .. image:: https://github.com/Project-MONAI/DocImages/raw/main/transforms/Spacing.png @@ -827,7 +833,6 @@ Utility :members: :special-members: __call__ - `Transpose` """"""""""" .. autoclass:: Transpose @@ -852,6 +857,7 @@ Utility :members: :special-members: __call__ + `Lambda` """""""" .. autoclass:: Lambda @@ -1401,6 +1407,12 @@ Post-processing (Dict) :members: :special-members: __call__ +`ProbNMSd` +"""""""""" +.. autoclass:: ProbNMSd + :members: + :special-members: __call__ + Spatial (Dict) ^^^^^^^^^^^^^^ @@ -1410,6 +1422,12 @@ Spatial (Dict) :members: :special-members: __call__ +`ResampleToMatchd` +"""""""""""""""""" +.. autoclass:: ResampleToMatchd + :members: + :special-members: __call__ + `Spacingd` """""""""" .. image:: https://github.com/Project-MONAI/DocImages/raw/main/transforms/Spacingd.png @@ -1656,6 +1674,12 @@ Utility (Dict) :members: :special-members: __call__ +`ToPILd` +"""""""" +.. autoclass:: ToPILd + :members: + :special-members: __call__ + `DeleteItemsd` """""""""""""" .. autoclass:: DeleteItemsd @@ -1668,6 +1692,12 @@ Utility (Dict) :members: :special-members: __call__ +`Transposed` +"""""""""""" +.. autoclass:: Transposed + :members: + :special-members: __call__ + `SqueezeDimd` """"""""""""" .. autoclass:: SqueezeDimd @@ -1710,6 +1740,12 @@ Utility (Dict) :members: :special-members: __call__ +`RemoveRepeatedChanneld` +"""""""""""""""""""""""" +.. autoclass:: RemoveRepeatedChanneld + :members: + :special-members: __call__ + `LabelToMaskd` """""""""""""" .. autoclass:: LabelToMaskd diff --git a/tests/test_integration_workers.py b/tests/test_integration_workers.py index 1f12f81712..21515d1f82 100644 --- a/tests/test_integration_workers.py +++ b/tests/test_integration_workers.py @@ -16,7 +16,7 @@ from monai.data import DataLoader from monai.utils import set_determinism -from tests.utils import DistTestCase, TimedCall, skip_if_no_cuda, skip_if_quick +from tests.utils import DistTestCase, SkipIfBeforePyTorchVersion, TimedCall, skip_if_no_cuda, skip_if_quick def run_loading_test(num_workers=50, device="cuda:0" if torch.cuda.is_available() else "cpu", pw=False): @@ -38,15 +38,19 @@ def run_loading_test(num_workers=50, device="cuda:0" if torch.cuda.is_available( @skip_if_quick @skip_if_no_cuda +@SkipIfBeforePyTorchVersion((1, 9)) class IntegrationLoading(DistTestCase): def tearDown(self): set_determinism(seed=None) @TimedCall(seconds=5000, skip_timing=not torch.cuda.is_available(), daemon=False) def test_timing(self): - for pw, expected in zip((False, True), ((6966, 7714), (6966, 4112))): + expected = None + for pw in (False, True): result = run_loading_test(pw=pw) - np.testing.assert_allclose(result, expected) + if expected is None: + expected = result[0] + np.testing.assert_allclose(result[0], expected) # test for deterministic first epoch in two settings if __name__ == "__main__": diff --git a/tests/test_module_list.py b/tests/test_module_list.py index ea520c59f3..83c6979f30 100644 --- a/tests/test_module_list.py +++ b/tests/test_module_list.py @@ -12,6 +12,7 @@ import glob import inspect import os +import pathlib import unittest import monai @@ -37,6 +38,8 @@ def test_public_api(self): def test_transform_api(self): """monai subclasses of MapTransforms must have alias names ending with 'd', 'D', 'Dict'""" to_exclude = {"MapTransform"} # except for these transforms + to_exclude_docs = {"Decollate", "Ensemble", "Invert", "SaveClassification", "RandTorchVision"} + to_exclude_docs.update({"DeleteItems", "SelectItems", "CopyItems", "ConcatItems"}) xforms = { name: obj for name, obj in monai.transforms.__dict__.items() @@ -44,12 +47,20 @@ def test_transform_api(self): } names = sorted(x for x in xforms if x not in to_exclude) remained = set(names) + doc_file = os.path.join(pathlib.Path(__file__).parent.parent, "docs", "source", "transforms.rst") + contents = pathlib.Path(doc_file).read_text() if os.path.exists(doc_file) else None for n in names: if not n.endswith("d"): continue - basename = n[:-1] # Transformd basename is Transform - for postfix in ("D", "d", "Dict"): - remained.remove(f"{basename}{postfix}") + with self.subTest(n=n): + basename = n[:-1] # Transformd basename is Transform + for docname in (f"{basename}", f"{basename}d"): + if docname in to_exclude_docs: + continue + if (contents is not None) and f"`{docname}`" not in f"{contents}": + self.assertTrue(False, f"please add `{docname}` to docs/source/transforms.rst") + for postfix in ("D", "d", "Dict"): + remained.remove(f"{basename}{postfix}") self.assertFalse(remained)