summaryrefslogtreecommitdiff
path: root/numpy/linalg/tests
diff options
context:
space:
mode:
authorHameer Abbasi <einstein.edison@gmail.com>2020-01-29 13:43:31 +0100
committerHameer Abbasi <einstein.edison@gmail.com>2020-02-05 11:47:44 +0100
commitb202aad8d8e138d4c4cb8ccc590b87e1173f45bc (patch)
tree8b43e03b36425582abf08e0bdb18b569ab2ea33a /numpy/linalg/tests
parent49102a5da9684330849531589c81d1c5005e3bb9 (diff)
downloadnumpy-b202aad8d8e138d4c4cb8ccc590b87e1173f45bc.tar.gz
BUG: Fix for SVD not always sorted with hermitian=True
Diffstat (limited to 'numpy/linalg/tests')
-rw-r--r--numpy/linalg/tests/test_linalg.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/numpy/linalg/tests/test_linalg.py b/numpy/linalg/tests/test_linalg.py
index 59c71d196..69352803e 100644
--- a/numpy/linalg/tests/test_linalg.py
+++ b/numpy/linalg/tests/test_linalg.py
@@ -680,6 +680,14 @@ class SVDHermitianCases(HermitianTestCase, HermitianGeneralizedTestCase):
assert_allclose(a, dot_generalized(np.asarray(u) * np.asarray(s)[..., None, :],
np.asarray(vt)),
rtol=get_rtol(u.dtype))
+ def hermitian(mat):
+ axes = list(range(mat.ndim))
+ axes[-1], axes[-2] = axes[-2], axes[-1]
+ return np.conj(np.transpose(mat, axes=axes))
+
+ assert_almost_equal(np.matmul(u, hermitian(u)), np.broadcast_to(np.eye(u.shape[-1]), u.shape))
+ assert_almost_equal(np.matmul(vt, hermitian(vt)), np.broadcast_to(np.eye(vt.shape[-1]), vt.shape))
+ assert_equal(np.sort(s)[..., ::-1], s)
assert_(consistent_subclass(u, a))
assert_(consistent_subclass(vt, a))