@@ -282,6 +282,40 @@ def test_flatten_and_len(self):
282282 def test_backwards_compatible_imports (self ):
283283 from monai .transforms .transform import MapTransform , RandomizableTransform , Transform # noqa: F401
284284
285+ def test_list_extend_multi_sample_trait (self ):
286+ center_crop = mt .CenterSpatialCrop ([128 , 128 ])
287+ multi_sample_transform = mt .RandSpatialCropSamples ([64 , 64 ], 1 )
288+ flatten_sequence_transform = mt .FlattenSequence ()
289+
290+ img = torch .zeros ([1 , 512 , 512 ])
291+
292+ self .assertEqual (execute_compose (img , [center_crop ]).shape , torch .Size ([1 , 128 , 128 ]))
293+ single_multi_sample_trait_result = execute_compose (
294+ img , [multi_sample_transform , center_crop , flatten_sequence_transform ]
295+ )
296+ self .assertIsInstance (single_multi_sample_trait_result , list )
297+ self .assertEqual (len (single_multi_sample_trait_result ), 1 )
298+ self .assertEqual (single_multi_sample_trait_result [0 ].shape , torch .Size ([1 , 64 , 64 ]))
299+
300+ double_multi_sample_trait_result = execute_compose (
301+ img , [multi_sample_transform , multi_sample_transform , flatten_sequence_transform , center_crop ]
302+ )
303+ self .assertIsInstance (double_multi_sample_trait_result , list )
304+ self .assertEqual (len (double_multi_sample_trait_result ), 1 )
305+ self .assertEqual (double_multi_sample_trait_result [0 ].shape , torch .Size ([1 , 64 , 64 ]))
306+
307+ def test_multi_sample_trait_cardinality (self ):
308+ img = torch .zeros ([1 , 128 , 128 ])
309+ t2 = mt .RandSpatialCropSamples ([32 , 32 ], num_samples = 2 )
310+ flatten_sequence_transform = mt .FlattenSequence ()
311+
312+ # chaining should multiply counts: 2 x 2 = 4, flattened
313+ res = execute_compose (img , [t2 , t2 , flatten_sequence_transform ])
314+ self .assertIsInstance (res , list )
315+ self .assertEqual (len (res ), 4 )
316+ for r in res :
317+ self .assertEqual (r .shape , torch .Size ([1 , 32 , 32 ]))
318+
285319
286320TEST_COMPOSE_EXECUTE_TEST_CASES = [
287321 [None , tuple ()],
0 commit comments