From 76328be63c9344d752bd237af48ec6366890f403 Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauldmccarthy@gmail.com> Date: Fri, 29 Nov 2019 17:50:19 +0000 Subject: [PATCH] TEST: rudimentary test for rescale --- tests/test_transform/test_affine.py | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/test_transform/test_affine.py b/tests/test_transform/test_affine.py index 7a69b86e4..79a17fba6 100644 --- a/tests/test_transform/test_affine.py +++ b/tests/test_transform/test_affine.py @@ -528,3 +528,48 @@ def test_rmsdev(): assert result < lastdist lastdist = result + + +def test_rescale(): + + with pytest.raises(ValueError): + affine.rescale((5, 5), (10, 10, 10)) + + assert np.all(affine.rescale((5, 5), (5, 5)) == np.eye(3)) + assert np.all(affine.rescale((5, 5, 5), (5, 5, 5)) == np.eye(4)) + assert np.all(affine.rescale((5, 5, 5, 5), (5, 5, 5, 5)) == np.eye(5)) + + # (old shape, new shape, origin, expect) + tests = [ + ((5, 5), (10, 10), 'centre', np.array([[0.5, 0, 0], + [0, 0.5, 0], + [0, 0, 1]])), + ((5, 5), (10, 10), 'corner', np.array([[0.5, 0, -0.25], + [0, 0.5, -0.25], + [0, 0, 1]])), + ((5, 5, 5), (10, 10, 10), 'centre', np.array([[0.5, 0, 0, 0], + [0, 0.5, 0, 0], + [0, 0, 0.5, 0], + [0, 0, 0, 1]])), + ((5, 5, 5), (10, 10, 10), 'corner', np.array([[0.5, 0, 0, -0.25], + [0, 0.5, 0, -0.25], + [0, 0, 0.5, -0.25], + [0, 0, 0, 1]])), + ((5, 5, 5, 5), (10, 10, 10, 10), 'centre', np.array([[0.5, 0, 0, 0, 0], + [0, 0.5, 0, 0, 0], + [0, 0, 0.5, 0, 0], + [0, 0, 0, 0.5, 0], + [0, 0, 0, 0, 1]])), + ((5, 5, 5, 5), (10, 10, 10, 10), 'corner', np.array([[0.5, 0, 0, 0, -0.25], + [0, 0.5, 0, 0, -0.25], + [0, 0, 0.5, 0, -0.25], + [0, 0, 0, 0.5, -0.25], + [0, 0, 0, 0, 1]])), + ] + + for oldshape, newshape, origin, expect in tests: + + got = affine.rescale(oldshape, newshape, origin) + assert np.all(np.isclose(got, expect)) + got = affine.rescale(newshape, oldshape, origin) + assert np.all(np.isclose(got, affine.invert(expect))) -- GitLab