diff options
author | Eren Sezener <erensezener@gmail.com> | 2016-02-26 13:24:49 +0100 |
---|---|---|
committer | Denis Alevi <mail@denisalevi.de> | 2016-03-12 19:07:43 +0100 |
commit | e7de401f5c9634a2a63eb8f44f2193be1a946191 (patch) | |
tree | 24e9ca5254eb80f9a1fa92e1fe2db089737a087c /numpy/lib/tests/test_function_base.py | |
parent | 1373aa79fe9e0563d6d05402c08dac08a329795d (diff) | |
download | numpy-e7de401f5c9634a2a63eb8f44f2193be1a946191.tar.gz |
ENH: Add generalized flip function and its tests
Diffstat (limited to 'numpy/lib/tests/test_function_base.py')
-rw-r--r-- | numpy/lib/tests/test_function_base.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py index 235b7f2fe..061ba8742 100644 --- a/numpy/lib/tests/test_function_base.py +++ b/numpy/lib/tests/test_function_base.py @@ -23,6 +23,89 @@ from numpy.lib import ( from numpy.compat import long +def get_mat(n): + data = np.arange(n) + data = np.add.outer(data, data) + return data + + +class TestFlip(TestCase): + def test_axes(self): + self.assertRaises(ValueError, np.flip, np.ones(4), axis=1) + self.assertRaises(ValueError, np.flip, np.ones((4, 4)), axis=2) + self.assertRaises(ValueError, np.flip, np.ones((4, 4)), axis=-3) + + def test_basic_lr(self): + a = get_mat(4) + b = a[:, ::-1] + assert_equal(np.flip(a, 1), b) + a = [[0, 1, 2], + [3, 4, 5]] + b = [[2, 1, 0], + [5, 4, 3]] + assert_equal(np.flip(a, 1), b) + + def test_basic_ud(self): + a = get_mat(4) + b = a[::-1, :] + assert_equal(np.flip(a, 0), b) + a = [[0, 1, 2], + [3, 4, 5]] + b = [[3, 4, 5], + [0, 1, 2]] + assert_equal(np.flip(a, 0), b) + + def test_3d_swap_axis0(self): + a = np.array([[[0, 1], + [2, 3]], + + [[4, 5], + [6, 7]]]) + + b = np.array([[[4, 5], + [6, 7]], + + [[0, 1], + [2, 3]]]) + + assert_equal(np.flip(a, 0), b) + + def test_3d_swap_axis1(self): + a = np.array([[[0, 1], + [2, 3]], + + [[4, 5], + [6, 7]]]) + + b = np.array([[[2, 3], + [0, 1]], + + [[6, 7], + [4, 5]]]) + + assert_equal(np.flip(a, 1), b) + + def test_3d_swap_axis2(self): + a = np.array([[[0, 1], + [2, 3]], + + [[4, 5], + [6, 7]]]) + + b = np.array([[[1, 0], + [3, 2]], + + [[5, 4], + [7, 6]]]) + + assert_equal(np.flip(a, 2), b) + + def test_4d(self): + a = np.arange(2 * 3 * 4 * 5).reshape(2, 3, 4, 5) + for i in range(a.ndim): + assert_equal(np.flip(a, i), np.flipud(a.swapaxes(0, i)).swapaxes(i, 0)) + + class TestAny(TestCase): def test_basic(self): |