<s> """<STR_LIT>""" <EOL> from sympy import symbols <EOL> from sympy . matrices import ( Matrix , MatrixSymbol , eye , Identity , <EOL> ImmutableMatrix ) <EOL> from sympy . core . compatibility import range <EOL> from sympy . matrices . expressions import MatrixExpr , MatAdd <EOL> from sympy . matrices . matrices import classof <EOL> from sympy . utilities . pytest import raises <EOL> SM = MatrixSymbol ( '<STR_LIT:X>' , <NUM_LIT:3> , <NUM_LIT:3> ) <EOL> MM = Matrix ( [ [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] , [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> ] , [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] ] ) <EOL> IM = ImmutableMatrix ( [ [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> ] , [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> ] , [ <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> ] ] ) <EOL> meye = eye ( <NUM_LIT:3> ) <EOL> imeye = ImmutableMatrix ( eye ( <NUM_LIT:3> ) ) <EOL> ideye = Identity ( <NUM_LIT:3> ) <EOL> a , b , c = symbols ( '<STR_LIT>' ) <EOL> def test_IM_MM ( ) : <EOL> assert isinstance ( MM + IM , ImmutableMatrix ) <EOL> assert isinstance ( IM + MM , ImmutableMatrix ) <EOL> assert isinstance ( <NUM_LIT:2> * IM + MM , ImmutableMatrix ) <EOL> assert MM . equals ( IM ) <EOL> def test_ME_MM ( ) : <EOL> assert isinstance ( Identity ( <NUM_LIT:3> ) + MM , MatrixExpr ) <EOL> assert isinstance ( SM + MM , MatAdd ) <EOL> assert isinstance ( MM + SM , MatAdd ) <EOL> assert ( Identity ( <NUM_LIT:3> ) + MM ) [ <NUM_LIT:1> , <NUM_LIT:1> ] == <NUM_LIT:6> <EOL> def test_equality ( ) : <EOL> a , b , c = Identity ( <NUM_LIT:3> ) , eye ( <NUM_LIT:3> ) , ImmutableMatrix ( eye ( <NUM_LIT:3> ) ) <EOL> for x in [ a , b , c ] : <EOL> for y in [ a , b , c ] : <EOL> assert x . equals ( y ) <EOL> def test_matrix_symbol_MM ( ) : <EOL> X = MatrixSymbol ( '<STR_LIT:X>' , <NUM_LIT:3> , <NUM_LIT:3> ) <EOL> Y = eye ( <NUM_LIT:3> ) + X <EOL> assert Y [ <NUM_LIT:1> , <NUM_LIT:1> ] == <NUM_LIT:1> + X [ <NUM_LIT:1> , <NUM_LIT:1> ] <EOL> def test_indexing_interactions ( ) : <EOL> assert ( a * IM ) [ <NUM_LIT:1> , <NUM_LIT:1> ] == <NUM_LIT:5> * a <EOL> assert ( SM + IM ) [ <NUM_LIT:1> , <NUM_LIT:1> ] == SM [ <NUM_LIT:1> , <NUM_LIT:1> ] + IM [ <NUM_LIT:1> , <NUM_LIT:1> ] <EOL> assert ( SM * IM ) [ <NUM_LIT:1> , <NUM_LIT:1> ] == SM [ <NUM_LIT:1> , <NUM_LIT:0> ] * IM [ <NUM_LIT:0> , <NUM_LIT:1> ] + SM [ <NUM_LIT:1> , <NUM_LIT:1> ] * IM [ <NUM_LIT:1> , <NUM_LIT:1> ] + SM [ <NUM_LIT:1> , <NUM_LIT:2> ] * IM [ <NUM_LIT:2> , <NUM_LIT:1> ] <EOL> def test_classof ( ) : <EOL> A = Matrix ( <NUM_LIT:3> , <NUM_LIT:3> , range ( <NUM_LIT:9> ) ) <EOL> B = ImmutableMatrix ( <NUM_LIT:3> , <NUM_LIT:3> , range ( <NUM_LIT:9> ) ) <EOL> C = MatrixSymbol ( '<STR_LIT:C>' , <NUM_LIT:3> , <NUM_LIT:3> ) <EOL> assert classof ( A , A ) == Matrix <EOL> assert classof ( B , B ) == ImmutableMatrix <EOL> assert classof ( A , B ) == ImmutableMatrix <EOL> assert classof ( B , A ) == ImmutableMatrix <EOL> raises ( TypeError , lambda : classof ( A , C ) ) </s>
