def test_operator(): a = Operator('A') b = Operator('B', Symbol('t'), S(1) / 2) inv = a.inv() f = Function('f') x = symbols('x') d = DifferentialOperator(Derivative(f(x), x), f(x)) op = OuterProduct(Ket(), Bra()) assert str(a) == 'A' assert pretty(a) == 'A' assert upretty(a) == u'A' assert latex(a) == 'A' sT(a, "Operator(Symbol('A'))") assert str(inv) == 'A**(-1)' ascii_str = \ """\ -1\n\ A \ """ ucode_str = \ u"""\ -1\n\ A \ """ assert pretty(inv) == ascii_str assert upretty(inv) == ucode_str assert latex(inv) == r'\left(A\right)^{-1}' sT(inv, "Pow(Operator(Symbol('A')), Integer(-1))") assert str(d) == 'DifferentialOperator(Derivative(f(x), x),f(x))' ascii_str = \ """\ /d \\\n\ DifferentialOperator|--(f(x)),f(x)|\n\ \dx /\ """ ucode_str = \ u"""\ ⎛d ⎞\n\ DifferentialOperator⎜──(f(x)),f(x)⎟\n\ ⎝dx ⎠\ """ assert pretty(d) == ascii_str assert upretty(d) == ucode_str assert latex(d) == \ r'DifferentialOperator\left(\frac{\partial}{\partial x} \operatorname{f}{\left (x \right )},\operatorname{f}{\left (x \right )}\right)' sT( d, "DifferentialOperator(Derivative(Function('f')(Symbol('x')), Symbol('x')),Function('f')(Symbol('x')))" ) assert str(b) == 'Operator(B,t,1/2)' assert pretty(b) == 'Operator(B,t,1/2)' assert upretty(b) == u'Operator(B,t,1/2)' assert latex(b) == r'Operator\left(B,t,\frac{1}{2}\right)' sT(b, "Operator(Symbol('B'),Symbol('t'),Rational(1, 2))") assert str(op) == '|psi><psi|' assert pretty(op) == '|psi><psi|' assert upretty(op) == u'❘ψ⟩⟨ψ❘' assert latex(op) == r'{\left|\psi\right\rangle }{\left\langle \psi\right|}' sT(op, "OuterProduct(Ket(Symbol('psi')),Bra(Symbol('psi')))")
def test_operator(): a = Operator("A") b = Operator("B", Symbol("t"), S.Half) inv = a.inv() f = Function("f") x = symbols("x") d = DifferentialOperator(Derivative(f(x), x), f(x)) op = OuterProduct(Ket(), Bra()) assert str(a) == "A" assert pretty(a) == "A" assert upretty(a) == u"A" assert latex(a) == "A" sT(a, "Operator(Symbol('A'))") assert str(inv) == "A**(-1)" ascii_str = """\ -1\n\ A \ """ ucode_str = u("""\ -1\n\ A \ """) assert pretty(inv) == ascii_str assert upretty(inv) == ucode_str assert latex(inv) == r"A^{-1}" sT(inv, "Pow(Operator(Symbol('A')), Integer(-1))") assert str(d) == "DifferentialOperator(Derivative(f(x), x),f(x))" ascii_str = """\ /d \\\n\ DifferentialOperator|--(f(x)),f(x)|\n\ \\dx /\ """ ucode_str = u("""\ ⎛d ⎞\n\ DifferentialOperator⎜──(f(x)),f(x)⎟\n\ ⎝dx ⎠\ """) assert pretty(d) == ascii_str assert upretty(d) == ucode_str assert ( latex(d) == r"DifferentialOperator\left(\frac{d}{d x} f{\left(x \right)},f{\left(x \right)}\right)" ) sT( d, "DifferentialOperator(Derivative(Function('f')(Symbol('x')), Tuple(Symbol('x'), Integer(1))),Function('f')(Symbol('x')))", ) assert str(b) == "Operator(B,t,1/2)" assert pretty(b) == "Operator(B,t,1/2)" assert upretty(b) == u"Operator(B,t,1/2)" assert latex(b) == r"Operator\left(B,t,\frac{1}{2}\right)" sT(b, "Operator(Symbol('B'),Symbol('t'),Rational(1, 2))") assert str(op) == "|psi><psi|" assert pretty(op) == "|psi><psi|" assert upretty(op) == u"❘ψ⟩⟨ψ❘" assert latex(op) == r"{\left|\psi\right\rangle }{\left\langle \psi\right|}" sT(op, "OuterProduct(Ket(Symbol('psi')),Bra(Symbol('psi')))")
def test_operator(): a = Operator('A') b = Operator('B', Symbol('t'), S(1)/2) inv = a.inv() f = Function('f') x = symbols('x') d = DifferentialOperator(Derivative(f(x), x), f(x)) op = OuterProduct(Ket(), Bra()) assert str(a) == 'A' assert pretty(a) == 'A' assert upretty(a) == u('A') assert latex(a) == 'A' sT(a, "Operator(Symbol('A'))") assert str(inv) == 'A**(-1)' ascii_str = \ """\ -1\n\ A \ """ ucode_str = \ u("""\ -1\n\ A \ """) assert pretty(inv) == ascii_str assert upretty(inv) == ucode_str assert latex(inv) == r'\left(A\right)^{-1}' sT(inv, "Pow(Operator(Symbol('A')), Integer(-1))") assert str(d) == 'DifferentialOperator(Derivative(f(x), x),f(x))' ascii_str = \ """\ /d \\\n\ DifferentialOperator|--(f(x)),f(x)|\n\ \dx /\ """ ucode_str = \ u("""\ ⎛d ⎞\n\ DifferentialOperator⎜──(f(x)),f(x)⎟\n\ ⎝dx ⎠\ """) assert pretty(d) == ascii_str assert upretty(d) == ucode_str assert latex(d) == \ r'DifferentialOperator\left(\frac{d}{d x} f{\left (x \right )},f{\left (x \right )}\right)' sT(d, "DifferentialOperator(Derivative(Function('f')(Symbol('x')), Symbol('x')),Function('f')(Symbol('x')))") assert str(b) == 'Operator(B,t,1/2)' assert pretty(b) == 'Operator(B,t,1/2)' assert upretty(b) == u('Operator(B,t,1/2)') assert latex(b) == r'Operator\left(B,t,\frac{1}{2}\right)' sT(b, "Operator(Symbol('B'),Symbol('t'),Rational(1, 2))") assert str(op) == '|psi><psi|' assert pretty(op) == '|psi><psi|' assert upretty(op) == u('❘ψ⟩⟨ψ❘') assert latex(op) == r'{\left|\psi\right\rangle }{\left\langle \psi\right|}' sT(op, "OuterProduct(Ket(Symbol('psi')),Bra(Symbol('psi')))")
def test_operator(): a = Operator("A") b = Operator("B", Symbol("t"), S(1) / 2) inv = a.inv() f = Function("f") x = symbols("x") d = DifferentialOperator(Derivative(f(x), x), f(x)) op = OuterProduct(Ket(), Bra()) assert str(a) == "A" assert pretty(a) == "A" assert upretty(a) == u"A" assert latex(a) == "A" sT(a, "Operator(Symbol('A'))") assert str(inv) == "A**(-1)" ascii_str = """\ -1\n\ A \ """ ucode_str = u( """\ -1\n\ A \ """ ) assert pretty(inv) == ascii_str assert upretty(inv) == ucode_str assert latex(inv) == r"A^{-1}" sT(inv, "Pow(Operator(Symbol('A')), Integer(-1))") assert str(d) == "DifferentialOperator(Derivative(f(x), x),f(x))" ascii_str = """\ /d \\\n\ DifferentialOperator|--(f(x)),f(x)|\n\ \dx /\ """ ucode_str = u( """\ ⎛d ⎞\n\ DifferentialOperator⎜──(f(x)),f(x)⎟\n\ ⎝dx ⎠\ """ ) assert pretty(d) == ascii_str assert upretty(d) == ucode_str assert latex(d) == r"DifferentialOperator\left(\frac{d}{d x} f{\left (x \right )},f{\left (x \right )}\right)" sT(d, "DifferentialOperator(Derivative(Function('f')(Symbol('x')), Symbol('x')),Function('f')(Symbol('x')))") assert str(b) == "Operator(B,t,1/2)" assert pretty(b) == "Operator(B,t,1/2)" assert upretty(b) == u"Operator(B,t,1/2)" assert latex(b) == r"Operator\left(B,t,\frac{1}{2}\right)" sT(b, "Operator(Symbol('B'),Symbol('t'),Rational(1, 2))") assert str(op) == "|psi><psi|" assert pretty(op) == "|psi><psi|" assert upretty(op) == u"❘ψ⟩⟨ψ❘" assert latex(op) == r"{\left|\psi\right\rangle }{\left\langle \psi\right|}" sT(op, "OuterProduct(Ket(Symbol('psi')),Bra(Symbol('psi')))")
def test_operator_inv(): A = Operator('A') assert A*A.inv() == 1 assert A.inv()*A == 1
def test_operator(): a = Operator('A') b = Operator('B', Symbol('t'), S(1) / 2) inv = a.inv() f = Function('f') x = symbols('x') d = DifferentialOperator(Derivative(f(x), x), f(x)) op = OuterProduct(Ket(), Bra()) assert str(a) == 'A' assert pretty(a) == 'A' assert upretty(a) == 'A' assert latex(a) == 'A' sT(a, "Operator(Symbol('A'))") assert str(inv) == 'A**(-1)' ascii_str = \ """\ -1\n\ A \ """ ucode_str = \ """\ -1\n\ A \ """ assert pretty(inv) == ascii_str assert upretty(inv) == ucode_str #FIXME ajgpitch 2019-09-22 # It's not clear to me why these extra brackets would be wanted / needed #assert latex(inv) == r'\left(A\right)^{-1}' # This renders okay assert latex(inv) == r'A^{-1}' sT(inv, "Pow(Operator(Symbol('A')), Integer(-1))") assert str(d) == 'DifferentialOperator(Derivative(f(x), x),f(x))' ascii_str = \ """\ /d \\\n\ DifferentialOperator|--(f(x)),f(x)|\n\ \dx /\ """ ucode_str = \ """\ ⎛d ⎞\n\ DifferentialOperator⎜──(f(x)),f(x)⎟\n\ ⎝dx ⎠\ """ assert pretty(d) == ascii_str assert upretty(d) == ucode_str assert latex(d) == \ r'DifferentialOperator\left(\frac{d}{d x} f{\left(x \right)},f{\left(x \right)}\right)' #FIXME: ajgpitch 2019-09-22 # Not clear why this is failing # `Tuple(Symbol('x'), Integer(1))` seems to enter into srepr(expr) # for some reason. sT( d, "DifferentialOperator(Derivative(Function('f')(Symbol('x')), Symbol('x')),Function('f')(Symbol('x')))" ) assert str(b) == 'Operator(B,t,1/2)' assert pretty(b) == 'Operator(B,t,1/2)' assert upretty(b) == 'Operator(B,t,1/2)' assert latex(b) == r'Operator\left(B,t,\frac{1}{2}\right)' sT(b, "Operator(Symbol('B'),Symbol('t'),Rational(1, 2))") assert str(op) == '|psi><psi|' assert pretty(op) == '|psi><psi|' assert upretty(op) == '❘ψ⟩⟨ψ❘' assert latex(op) == r'{\left|\psi\right\rangle }{\left\langle \psi\right|}' sT(op, "OuterProduct(Ket(Symbol('psi')),Bra(Symbol('psi')))")