| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | from sympy.core.numbers import Integerfrom sympy.core.symbol import Symbolfrom sympy.physics.quantum.qexpr import QExpr, _qsympify_sequencefrom sympy.physics.quantum.hilbert import HilbertSpacefrom sympy.core.containers import Tuplex = Symbol('x')y = Symbol('y')def test_qexpr_new():    q = QExpr(0)    assert q.label == (0,)    assert q.hilbert_space == HilbertSpace()    assert q.is_commutative is False    q = QExpr(0, 1)    assert q.label == (Integer(0), Integer(1))    q = QExpr._new_rawargs(HilbertSpace(), Integer(0), Integer(1))    assert q.label == (Integer(0), Integer(1))    assert q.hilbert_space == HilbertSpace()def test_qexpr_commutative():    q1 = QExpr(x)    q2 = QExpr(y)    assert q1.is_commutative is False    assert q2.is_commutative is False    assert q1*q2 != q2*q1    q = QExpr._new_rawargs(Integer(0), Integer(1), HilbertSpace())    assert q.is_commutative is Falsedef test_qexpr_commutative_free_symbols():    q1 = QExpr(x)    assert q1.free_symbols.pop().is_commutative is False    q2 = QExpr('q2')    assert q2.free_symbols.pop().is_commutative is Falsedef test_qexpr_subs():    q1 = QExpr(x, y)    assert q1.subs(x, y) == QExpr(y, y)    assert q1.subs({x: 1, y: 2}) == QExpr(1, 2)def test_qsympify():    assert _qsympify_sequence([[1, 2], [1, 3]]) == (Tuple(1, 2), Tuple(1, 3))    assert _qsympify_sequence(([1, 2, [3, 4, [2, ]], 1], 3)) == \        (Tuple(1, 2, Tuple(3, 4, Tuple(2,)), 1), 3)    assert _qsympify_sequence((1,)) == (1,)
 |