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
							 |