106 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """ Test functions for linalg module using the matrix class."""
 | |
| import numpy as np
 | |
| from numpy.linalg.tests.test_linalg import (
 | |
|     CondCases,
 | |
|     DetCases,
 | |
|     EigCases,
 | |
|     EigvalsCases,
 | |
|     InvCases,
 | |
|     LinalgCase,
 | |
|     LinalgTestCase,
 | |
|     LstsqCases,
 | |
|     PinvCases,
 | |
|     SolveCases,
 | |
|     SVDCases,
 | |
|     _TestNorm2D,
 | |
|     _TestNormDoubleBase,
 | |
|     _TestNormInt64Base,
 | |
|     _TestNormSingleBase,
 | |
|     apply_tag,
 | |
| )
 | |
| from numpy.linalg.tests.test_linalg import TestQR as _TestQR
 | |
| 
 | |
| 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
 |