From e1fcb14b836102335ef504ed391f9f623b8aa7f5 Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauldmccarthy@gmail.com> Date: Sat, 15 Jul 2017 18:43:11 +0100 Subject: [PATCH] Expanded test for scaleoffsetxform --- tests/test_transform.py | 49 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/tests/test_transform.py b/tests/test_transform.py index 62943d51b..cfd71186f 100644 --- a/tests/test_transform.py +++ b/tests/test_transform.py @@ -92,6 +92,7 @@ def test_concat(): def test_scaleOffsetXform(): + # Test numerically testfile = op.join(datadir, 'test_transform_test_scaleoffsetxform.txt') lines = readlines(testfile) ntests = len(lines) // 5 @@ -108,11 +109,51 @@ def test_scaleOffsetXform(): expected = [[float(v) for v in l.split()] for l in expected] expected = np.array(expected) - result1 = transform.scaleOffsetXform( scales, offsets) - result2 = transform.scaleOffsetXform(tuple(scales), tuple(offsets)) + result = transform.scaleOffsetXform(scales, offsets) + + assert np.all(np.isclose(result, expected)) + + # Test that different input types work: + # - scalars + # - lists/tuples of length <= 3 + # - numpy arrays + a = np.array + stests = [ + (5, [5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + ([5], [5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + ((5,), [5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + (a([5]), [5, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + ([5, 6], [5, 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + ((5, 6), [5, 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + (a([5, 6]), [5, 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + ([5, 6, 7], [5, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 1]), + ((5, 6, 7), [5, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 1]), + (a([5, 6, 7]), [5, 0, 0, 0, 0, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 1]), + ] + otests = [ + (5, [1, 0, 0, 5, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + ([5], [1, 0, 0, 5, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + ((5,), [1, 0, 0, 5, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + (a([5]), [1, 0, 0, 5, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), + ([5, 6], [1, 0, 0, 5, 0, 1, 0, 6, 0, 0, 1, 0, 0, 0, 0, 1]), + ((5, 6), [1, 0, 0, 5, 0, 1, 0, 6, 0, 0, 1, 0, 0, 0, 0, 1]), + (a([5, 6]), [1, 0, 0, 5, 0, 1, 0, 6, 0, 0, 1, 0, 0, 0, 0, 1]), + ([5, 6, 7], [1, 0, 0, 5, 0, 1, 0, 6, 0, 0, 1, 7, 0, 0, 0, 1]), + ((5, 6, 7), [1, 0, 0, 5, 0, 1, 0, 6, 0, 0, 1, 7, 0, 0, 0, 1]), + (a([5, 6, 7]), [1, 0, 0, 5, 0, 1, 0, 6, 0, 0, 1, 7, 0, 0, 0, 1]), + ] + + for (scale, expected) in stests: + expected = np.array(expected).reshape(4, 4) + result = transform.scaleOffsetXform(scale, 0) + assert np.all(np.isclose(result, expected)) + for (offset, expected) in otests: + expected = np.array(expected).reshape(4, 4) + result = transform.scaleOffsetXform(1, offset) + assert np.all(np.isclose(result, expected)) + + - assert np.all(np.isclose(result1, expected)) - assert np.all(np.isclose(result2, expected)) def test_compose_and_decompose(): -- GitLab