def test_with_movement(self): transform = RandomMotion(num_transforms=1) transformed = transform(self.sample_subject) self.assertTensorNotEqual( self.sample_subject.t1.data, transformed.t1.data, )
def test_no_movement(self): transform = RandomMotion(degrees=0, translation=0, num_transforms=1) transformed = transform(self.sample_subject) self.assertTensorAlmostEqual( self.sample_subject.t1.data, transformed.t1.data, )
def simulate_artefacts(sample, artefacts=(0, 0, 0, 0)): transforms = [] if artefacts[0] == 1: if random.random() < 0.5: degrees = (5, random.random() * 10 + 5) else: degrees = (-(random.random() * 10 + 5), -5) if random.random() < 0.5: translation = (5, random.random() * 10 + 5) else: translation = (-(random.random() * 10 + 5), -5) transforms.append( RandomMotion(degrees=degrees, translation=translation, num_transforms=random.randint(2, 15))) elif artefacts[1] == 1: transforms.append( RandomGhosting(num_ghosts=(2, 10), intensity=(0.5, 0.75))) elif artefacts[2] == 1: transforms.append(RandomBlur(std=(0.5, 2.))) elif artefacts[3] == 1: transforms.append(RandomNoise(std=(0.01, 0.05))) transforms = Compose(transforms) return transforms(sample)
def test_bad_num_transforms_value(self): with self.assertRaises(ValueError): RandomMotion(num_transforms=0)
def test_wrong_image_interpolation_value(self): with self.assertRaises(AttributeError): RandomMotion(image_interpolation='wrong')
def test_wrong_image_interpolation_type(self): with self.assertRaises(TypeError): RandomMotion(image_interpolation=0)
def test_wrong_translation_type(self): with self.assertRaises(ValueError): RandomMotion(translation='wrong')
def test_negative_translation(self): with self.assertRaises(ValueError): RandomMotion(translation=-10)
def test_wrong_degrees_type(self): with self.assertRaises(ValueError): RandomMotion(degrees='wrong')
def test_negative_degrees(self): with self.assertRaises(ValueError): RandomMotion(degrees=-10)
def test_with_movement(self): transform = RandomMotion(num_transforms=1) transformed = transform(self.sample) with self.assertRaises(AssertionError): assert_array_equal(self.sample.t1.data, transformed.t1.data)
def test_no_movement(self): transform = RandomMotion(degrees=0, translation=0, num_transforms=1) transformed = transform(self.sample) assert_array_equal(self.sample.t1.data, transformed.t1.data)