Spaces:
Running
Running
from sympy.core.singleton import S | |
from sympy.core.symbol import symbols | |
from sympy.matrices import Matrix | |
from sympy.matrices.expressions.matexpr import MatrixSymbol | |
from sympy.matrices.expressions.sets import MatrixSet | |
from sympy.matrices.expressions.special import ZeroMatrix | |
from sympy.testing.pytest import raises | |
from sympy.sets.sets import SetKind | |
from sympy.matrices.kind import MatrixKind | |
from sympy.core.kind import NumberKind | |
def test_MatrixSet(): | |
n, m = symbols('n m', integer=True) | |
A = MatrixSymbol('A', n, m) | |
C = MatrixSymbol('C', n, n) | |
M = MatrixSet(2, 2, set=S.Reals) | |
assert M.shape == (2, 2) | |
assert M.set == S.Reals | |
X = Matrix([[1, 2], [3, 4]]) | |
assert X in M | |
X = ZeroMatrix(2, 2) | |
assert X in M | |
raises(TypeError, lambda: A in M) | |
raises(TypeError, lambda: 1 in M) | |
M = MatrixSet(n, m, set=S.Reals) | |
assert A in M | |
raises(TypeError, lambda: C in M) | |
raises(TypeError, lambda: X in M) | |
M = MatrixSet(2, 2, set={1, 2, 3}) | |
X = Matrix([[1, 2], [3, 4]]) | |
Y = Matrix([[1, 2]]) | |
assert (X in M) == S.false | |
assert (Y in M) == S.false | |
raises(ValueError, lambda: MatrixSet(2, -2, S.Reals)) | |
raises(ValueError, lambda: MatrixSet(2.4, -1, S.Reals)) | |
raises(TypeError, lambda: MatrixSet(2, 2, (1, 2, 3))) | |
def test_SetKind_MatrixSet(): | |
assert MatrixSet(2, 2, set=S.Reals).kind is SetKind(MatrixKind(NumberKind)) | |