From 4a4966cae9d2a29d634485d2ad9e922d3b72e425 Mon Sep 17 00:00:00 2001 From: Anirudh Dagar Date: Mon, 7 Jun 2021 14:16:55 +0530 Subject: [PATCH 1/2] port test_accimage_xxx to pytest --- test/test_transforms.py | 108 ++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/test/test_transforms.py b/test/test_transforms.py index bf3a030f285..d91ed2286e3 100644 --- a/test/test_transforms.py +++ b/test/test_transforms.py @@ -330,60 +330,6 @@ def test_convert_image_dtype_int_to_int_consistency(self): self.assertEqual(actual_min, desired_min) self.assertEqual(actual_max, desired_max) - @unittest.skipIf(accimage is None, 'accimage not available') - def test_accimage_to_tensor(self): - trans = transforms.ToTensor() - - expected_output = trans(Image.open(GRACE_HOPPER).convert('RGB')) - output = trans(accimage.Image(GRACE_HOPPER)) - - torch.testing.assert_close(output, expected_output) - - @unittest.skipIf(accimage is None, 'accimage not available') - def test_accimage_pil_to_tensor(self): - trans = transforms.PILToTensor() - - expected_output = trans(Image.open(GRACE_HOPPER).convert('RGB')) - output = trans(accimage.Image(GRACE_HOPPER)) - - self.assertEqual(expected_output.size(), output.size()) - torch.testing.assert_close(output, expected_output, check_stride=False) - - @unittest.skipIf(accimage is None, 'accimage not available') - def test_accimage_resize(self): - trans = transforms.Compose([ - transforms.Resize(256, interpolation=Image.LINEAR), - transforms.ToTensor(), - ]) - - # Checking if Compose, Resize and ToTensor can be printed as string - trans.__repr__() - - expected_output = trans(Image.open(GRACE_HOPPER).convert('RGB')) - output = trans(accimage.Image(GRACE_HOPPER)) - - self.assertEqual(expected_output.size(), output.size()) - self.assertLess(np.abs((expected_output - output).mean()), 1e-3) - self.assertLess((expected_output - output).var(), 1e-5) - # note the high absolute tolerance - self.assertTrue(np.allclose(output.numpy(), expected_output.numpy(), atol=5e-2)) - - @unittest.skipIf(accimage is None, 'accimage not available') - def test_accimage_crop(self): - trans = transforms.Compose([ - transforms.CenterCrop(256), - transforms.ToTensor(), - ]) - - # Checking if Compose, CenterCrop and ToTensor can be printed as string - trans.__repr__() - - expected_output = trans(Image.open(GRACE_HOPPER).convert('RGB')) - output = trans(accimage.Image(GRACE_HOPPER)) - - self.assertEqual(expected_output.size(), output.size()) - torch.testing.assert_close(output, expected_output) - def test_color_jitter(self): color_jitter = transforms.ColorJitter(2, 2, 2, 0.1) @@ -613,6 +559,60 @@ def test_autoaugment(self): transform.__repr__() +@pytest.mark.skipif(accimage is None, reason="accimage not available") +class TestAccImage: + + def test_accimage_to_tensor(self): + trans = transforms.ToTensor() + + expected_output = trans(Image.open(GRACE_HOPPER).convert('RGB')) + output = trans(accimage.Image(GRACE_HOPPER)) + + torch.testing.assert_close(output, expected_output) + + def test_accimage_pil_to_tensor(self): + trans = transforms.PILToTensor() + + expected_output = trans(Image.open(GRACE_HOPPER).convert('RGB')) + output = trans(accimage.Image(GRACE_HOPPER)) + + assert expected_output.size() == output.size() + torch.testing.assert_close(output, expected_output, check_stride=False) + + def test_accimage_resize(self): + trans = transforms.Compose([ + transforms.Resize(256, interpolation=Image.LINEAR), + transforms.ToTensor(), + ]) + + # Checking if Compose, Resize and ToTensor can be printed as string + trans.__repr__() + + expected_output = trans(Image.open(GRACE_HOPPER).convert('RGB')) + output = trans(accimage.Image(GRACE_HOPPER)) + + assert expected_output.size() == output.size() + assert np.abs((expected_output - output).mean()) < 1e-3 + assert (expected_output - output).var() < 1e-5 + # note the high absolute tolerance + self.assertTrue(np.allclose(output.numpy(), expected_output.numpy(), atol=5e-2)) + + def test_accimage_crop(self): + trans = transforms.Compose([ + transforms.CenterCrop(256), + transforms.ToTensor(), + ]) + + # Checking if Compose, CenterCrop and ToTensor can be printed as string + trans.__repr__() + + expected_output = trans(Image.open(GRACE_HOPPER).convert('RGB')) + output = trans(accimage.Image(GRACE_HOPPER)) + + assert expected_output.size() == output.size() + torch.testing.assert_close(output, expected_output) + + @pytest.mark.parametrize('channels', [1, 3, 4]) def test_to_tensor(channels): height, width = 4, 4 From 2c83154cf43ab156461eb6024a49258891ec362f Mon Sep 17 00:00:00 2001 From: Anirudh Dagar Date: Tue, 8 Jun 2021 11:48:56 +0530 Subject: [PATCH 2/2] use torch.testing.assert_close --- test/test_transforms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_transforms.py b/test/test_transforms.py index d91ed2286e3..c77cf179dd7 100644 --- a/test/test_transforms.py +++ b/test/test_transforms.py @@ -595,7 +595,7 @@ def test_accimage_resize(self): assert np.abs((expected_output - output).mean()) < 1e-3 assert (expected_output - output).var() < 1e-5 # note the high absolute tolerance - self.assertTrue(np.allclose(output.numpy(), expected_output.numpy(), atol=5e-2)) + torch.testing.assert_close(output.numpy(), expected_output.numpy(), rtol=1e-5, atol=5e-2) def test_accimage_crop(self): trans = transforms.Compose([