From a26d69fffb1ee6b9692bc64e2d51c657d0ccb05d Mon Sep 17 00:00:00 2001 From: Gydo van Zundert Date: Thu, 1 Sep 2016 16:12:19 +0200 Subject: [PATCH] [New] Added test for extensions.c file. --- powerfit/tests/test_extensions.py | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 powerfit/tests/test_extensions.py diff --git a/powerfit/tests/test_extensions.py b/powerfit/tests/test_extensions.py new file mode 100644 index 0000000..84e9de3 --- /dev/null +++ b/powerfit/tests/test_extensions.py @@ -0,0 +1,44 @@ +from unittest import TestCase, main + +import numpy as np + +from powerfit._extensions import rotate_grid3d + + +class TestExtensions(TestCase): + + def test_rotate_grid3d(self): + + grid = np.zeros((4, 5, 6), dtype=np.float64) + grid[0, 0, 0] = 1 + grid[0, 0, 1] = 1 + grid[0, 1, 1] = 1 + grid[0, 0, 2] = 1 + grid[0, 0, -1] = 1 + grid[-1, 0, 0] = 1 + # Identity rotation + rotmat = np.asarray([[1, 0, 0], [0, 1, 0], [0, 0, 1]], dtype=np.float64) + out = np.zeros_like(grid) + rotate_grid3d(grid, rotmat, 2, out, True) + self.assertTrue(np.allclose(out, grid)) + + # 90 degree rotation around Z-axis + out.fill(0) + rotmat = np.asarray([[0, -1, 0], [1, 0, 0], [0, 0, 1]], dtype=np.float64) + rotate_grid3d(grid, rotmat, 2, out, False) + # Build answer + answer = np.zeros_like(out) + answer[0, 0, 0] = 1 + answer[0, 1, 0] = 1 + answer[0, 1, -1] = 1 + answer[0, 2, 0] = 1 + answer[0, -1, 0] = 1 + answer[-1, 0, 0] = 1 + print grid + print out + self.assertTrue(np.allclose(answer, out)) + + + +if __name__ == '__main__': + main()