annotate DEPENDENCIES/mingw32/Python27/Lib/site-packages/numpy/linalg/tests/test_regression.py @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents 2a2c65a20a8b
children
rev   line source
Chris@87 1 """ Test functions for linalg module
Chris@87 2 """
Chris@87 3 from __future__ import division, absolute_import, print_function
Chris@87 4
Chris@87 5
Chris@87 6 from numpy.testing import *
Chris@87 7 import numpy as np
Chris@87 8 from numpy import linalg, arange, float64, array, dot, transpose
Chris@87 9
Chris@87 10 rlevel = 1
Chris@87 11
Chris@87 12 class TestRegression(TestCase):
Chris@87 13 def test_eig_build(self, level = rlevel):
Chris@87 14 """Ticket #652"""
Chris@87 15 rva = array([1.03221168e+02 +0.j,
Chris@87 16 -1.91843603e+01 +0.j,
Chris@87 17 -6.04004526e-01+15.84422474j,
Chris@87 18 -6.04004526e-01-15.84422474j,
Chris@87 19 -1.13692929e+01 +0.j,
Chris@87 20 -6.57612485e-01+10.41755503j,
Chris@87 21 -6.57612485e-01-10.41755503j,
Chris@87 22 1.82126812e+01 +0.j,
Chris@87 23 1.06011014e+01 +0.j,
Chris@87 24 7.80732773e+00 +0.j,
Chris@87 25 -7.65390898e-01 +0.j,
Chris@87 26 1.51971555e-15 +0.j,
Chris@87 27 -1.51308713e-15 +0.j])
Chris@87 28 a = arange(13*13, dtype = float64)
Chris@87 29 a.shape = (13, 13)
Chris@87 30 a = a%17
Chris@87 31 va, ve = linalg.eig(a)
Chris@87 32 va.sort()
Chris@87 33 rva.sort()
Chris@87 34 assert_array_almost_equal(va, rva)
Chris@87 35
Chris@87 36 def test_eigh_build(self, level = rlevel):
Chris@87 37 """Ticket 662."""
Chris@87 38 rvals = [68.60568999, 89.57756725, 106.67185574]
Chris@87 39
Chris@87 40 cov = array([[ 77.70273908, 3.51489954, 15.64602427],
Chris@87 41 [3.51489954, 88.97013878, -1.07431931],
Chris@87 42 [15.64602427, -1.07431931, 98.18223512]])
Chris@87 43
Chris@87 44 vals, vecs = linalg.eigh(cov)
Chris@87 45 assert_array_almost_equal(vals, rvals)
Chris@87 46
Chris@87 47 def test_svd_build(self, level = rlevel):
Chris@87 48 """Ticket 627."""
Chris@87 49 a = array([[ 0., 1.], [ 1., 1.], [ 2., 1.], [ 3., 1.]])
Chris@87 50 m, n = a.shape
Chris@87 51 u, s, vh = linalg.svd(a)
Chris@87 52
Chris@87 53 b = dot(transpose(u[:, n:]), a)
Chris@87 54
Chris@87 55 assert_array_almost_equal(b, np.zeros((2, 2)))
Chris@87 56
Chris@87 57 def test_norm_vector_badarg(self):
Chris@87 58 """Regression for #786: Froebenius norm for vectors raises
Chris@87 59 TypeError."""
Chris@87 60 self.assertRaises(ValueError, linalg.norm, array([1., 2., 3.]), 'fro')
Chris@87 61
Chris@87 62 def test_lapack_endian(self):
Chris@87 63 # For bug #1482
Chris@87 64 a = array([[5.7998084, -2.1825367 ],
Chris@87 65 [-2.1825367, 9.85910595]], dtype='>f8')
Chris@87 66 b = array(a, dtype='<f8')
Chris@87 67
Chris@87 68 ap = linalg.cholesky(a)
Chris@87 69 bp = linalg.cholesky(b)
Chris@87 70 assert_array_equal(ap, bp)
Chris@87 71
Chris@87 72 def test_large_svd_32bit(self):
Chris@87 73 # See gh-4442, 64bit would require very large/slow matrices.
Chris@87 74 x = np.eye(1000, 66)
Chris@87 75 np.linalg.svd(x)
Chris@87 76
Chris@87 77 def test_svd_no_uv(self):
Chris@87 78 # gh-4733
Chris@87 79 for shape in (3, 4), (4, 4), (4, 3):
Chris@87 80 for t in float, complex:
Chris@87 81 a = np.ones(shape, dtype=t)
Chris@87 82 w = linalg.svd(a, compute_uv=False)
Chris@87 83 c = np.count_nonzero(np.absolute(w) > 0.5)
Chris@87 84 assert_equal(c, 1)
Chris@87 85 assert_equal(np.linalg.matrix_rank(a), 1)
Chris@87 86 assert_array_less(1, np.linalg.norm(a, ord=2))
Chris@87 87
Chris@87 88
Chris@87 89 if __name__ == '__main__':
Chris@87 90 run_module_suite()