def test_invalid_param_combinations(self, kernel_size, angle, direction, device, dtype): random_motion_blur_generator3d(batch_size=8, kernel_size=kernel_size, angle=angle.to(device=device, dtype=dtype), direction=direction.to(device=device, dtype=dtype))
def test_same_on_batch(self, device, dtype): torch.manual_seed(42) angle = torch.tensor([(10, 30), (30, 60), (60, 90)]) direction = torch.tensor([-1, 1]) res = random_motion_blur_generator3d( batch_size=2, kernel_size=3, angle=angle.to(device=device, dtype=dtype), direction=direction.to(device=device, dtype=dtype), same_on_batch=True, ) expected = dict( ksize_factor=torch.tensor([3, 3], device=device, dtype=torch.int32), angle_factor=torch.tensor( [[27.6454, 57.4501, 71.4859], [27.6454, 57.4501, 71.4859]], device=device, dtype=dtype), direction_factor=torch.tensor([0.9186, 0.9186], device=device, dtype=dtype), ) assert res.keys() == expected.keys() assert_close(res['ksize_factor'], expected['ksize_factor'], rtol=1e-4, atol=1e-4) assert_close(res['angle_factor'], expected['angle_factor'], rtol=1e-4, atol=1e-4) assert_close(res['direction_factor'], expected['direction_factor'], rtol=1e-4, atol=1e-4)
def test_random_gen(self, device, dtype): torch.manual_seed(42) angle = torch.tensor([(10, 30), (30, 60), (60, 90)]) direction = torch.tensor([-1, 1]) res = random_motion_blur_generator3d( batch_size=2, kernel_size=3, angle=angle.to(device=device, dtype=dtype), direction=direction.to(device=device, dtype=dtype), same_on_batch=False, ) expected = dict( ksize_factor=torch.tensor([3, 3], device=device, dtype=torch.int32), angle_factor=torch.tensor( [[27.6454, 41.4859, 71.7134], [28.3001, 58.7792, 78.0269]], device=device, dtype=dtype), direction_factor=torch.tensor([-0.4869, 0.5873], device=device, dtype=dtype), ) assert res.keys() == expected.keys() assert_close(res['ksize_factor'], expected['ksize_factor'], rtol=1e-4, atol=1e-4) assert_close(res['angle_factor'], expected['angle_factor'], rtol=1e-4, atol=1e-4) assert_close(res['direction_factor'], expected['direction_factor'], rtol=1e-4, atol=1e-4)
def test_same_on_batch(self, device, dtype): torch.manual_seed(42) angle = torch.tensor([(10, 30), (30, 60), (60, 90)]) direction = torch.tensor([-1, 1]) res = random_motion_blur_generator3d(batch_size=2, kernel_size=3, angle=angle.to(device=device, dtype=dtype), direction=direction.to( device=device, dtype=dtype), same_on_batch=True) expected = dict( ksize_factor=torch.tensor([3., 3.], device=device, dtype=torch.int32), angle_factor=torch.tensor( [[11.1631, 31.8873, 63.7076], [11.1631, 31.8873, 63.7076]], device=device, dtype=dtype), direction_factor=torch.tensor([-0.8948, -0.8948], device=device, dtype=dtype)) assert res.keys() == expected.keys() assert_allclose(res['ksize_factor'], expected['ksize_factor'], rtol=1e-4, atol=1e-4) assert_allclose(res['angle_factor'], expected['angle_factor'], rtol=1e-4, atol=1e-4) assert_allclose(res['direction_factor'], expected['direction_factor'], rtol=1e-4, atol=1e-4)
def test_random_gen(self, device, dtype): torch.manual_seed(42) angle = torch.tensor([(10, 30), (30, 60), (60, 90)]) direction = torch.tensor([-1, 1]) res = random_motion_blur_generator3d(batch_size=2, kernel_size=3, angle=angle.to(device=device, dtype=dtype), direction=direction.to( device=device, dtype=dtype), same_on_batch=False) expected = dict( ksize_factor=torch.tensor([3., 3.], device=device, dtype=torch.int32), angle_factor=torch.tensor( [[11.1631, 33.7076, 75.7852], [11.2582, 31.5774, 74.3035]], device=device, dtype=dtype), direction_factor=torch.tensor([0.9105, 0.8575], device=device, dtype=dtype)) assert res.keys() == expected.keys() assert_allclose(res['ksize_factor'], expected['ksize_factor'], rtol=1e-4, atol=1e-4) assert_allclose(res['angle_factor'], expected['angle_factor'], rtol=1e-4, atol=1e-4) assert_allclose(res['direction_factor'], expected['direction_factor'], rtol=1e-4, atol=1e-4)