|
|
""" Test functions for linalg module using the matrix class.""" import numpy as np
from numpy.linalg.tests.test_linalg import ( LinalgCase, apply_tag, TestQR as _TestQR, LinalgTestCase, _TestNorm2D, _TestNormDoubleBase, _TestNormSingleBase, _TestNormInt64Base, SolveCases, InvCases, EigvalsCases, EigCases, SVDCases, CondCases, PinvCases, DetCases, LstsqCases)
CASES = []
# square test cases CASES += apply_tag('square', [ LinalgCase("0x0_matrix", np.empty((0, 0), dtype=np.double).view(np.matrix), np.empty((0, 1), dtype=np.double).view(np.matrix), tags={'size-0'}), LinalgCase("matrix_b_only", np.array([[1., 2.], [3., 4.]]), np.matrix([2., 1.]).T), LinalgCase("matrix_a_and_b", np.matrix([[1., 2.], [3., 4.]]), np.matrix([2., 1.]).T), ])
# hermitian test-cases CASES += apply_tag('hermitian', [ LinalgCase("hmatrix_a_and_b", np.matrix([[1., 2.], [2., 1.]]), None), ]) # No need to make generalized or strided cases for matrices.
class MatrixTestCase(LinalgTestCase): TEST_CASES = CASES
class TestSolveMatrix(SolveCases, MatrixTestCase): pass
class TestInvMatrix(InvCases, MatrixTestCase): pass
class TestEigvalsMatrix(EigvalsCases, MatrixTestCase): pass
class TestEigMatrix(EigCases, MatrixTestCase): pass
class TestSVDMatrix(SVDCases, MatrixTestCase): pass
class TestCondMatrix(CondCases, MatrixTestCase): pass
class TestPinvMatrix(PinvCases, MatrixTestCase): pass
class TestDetMatrix(DetCases, MatrixTestCase): pass
class TestLstsqMatrix(LstsqCases, MatrixTestCase): pass
class _TestNorm2DMatrix(_TestNorm2D): array = np.matrix
class TestNormDoubleMatrix(_TestNorm2DMatrix, _TestNormDoubleBase): pass
class TestNormSingleMatrix(_TestNorm2DMatrix, _TestNormSingleBase): pass
class TestNormInt64Matrix(_TestNorm2DMatrix, _TestNormInt64Base): pass
class TestQRMatrix(_TestQR): array = np.matrix
|