~dinko-metalac/calculus-app2/trunk

« back to all changes in this revision

Viewing changes to lib/py/sympy/physics/quantum/tests/test_qapply.py

  • Committer: dinko.metalac at gmail
  • Date: 2015-04-14 13:28:14 UTC
  • Revision ID: dinko.metalac@gmail.com-20150414132814-j25k3qd7sq3warup
new sympy

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
from sympy.physics.quantum.density import Density
14
14
from sympy.physics.quantum.qubit import Qubit
15
15
from sympy.physics.quantum.gate import UGate
 
16
from sympy.physics.quantum.boson import BosonOp, BosonFockKet, BosonFockBra
 
17
from sympy.physics.quantum.tensorproduct import TensorProduct
 
18
 
16
19
 
17
20
j, jp, m, mp = symbols("j j' m m'")
18
21
 
81
84
    assert qapply(e).doit() == -hbar**2*mo
82
85
 
83
86
 
 
87
def test_tensorproduct():
 
88
    a = BosonOp("a")
 
89
    b = BosonOp("b")
 
90
    ket1 = TensorProduct(BosonFockKet(1), BosonFockKet(2))
 
91
    ket2 = TensorProduct(BosonFockKet(0), BosonFockKet(0))
 
92
    ket3 = TensorProduct(BosonFockKet(0), BosonFockKet(2))
 
93
    bra1 = TensorProduct(BosonFockBra(0), BosonFockBra(0))
 
94
    bra2 = TensorProduct(BosonFockBra(1), BosonFockBra(2))
 
95
    assert qapply(TensorProduct(a, b ** 2) * ket1) == sqrt(2) * ket2
 
96
    assert qapply(TensorProduct(a, Dagger(b) * b) * ket1) == 2 * ket3
 
97
    assert qapply(bra1 * TensorProduct(a, b * b),
 
98
                  dagger=True) == sqrt(2) * bra2
 
99
    assert qapply(bra2 * ket1).doit() == TensorProduct(1, 1)
 
100
    assert qapply(TensorProduct(a, b * b) * ket1) == sqrt(2) * ket2
 
101
    assert qapply(Dagger(TensorProduct(a, b * b) * ket1),
 
102
                  dagger=True) == sqrt(2) * Dagger(ket2)
 
103
 
 
104
 
84
105
def test_dagger():
85
106
    lhs = Dagger(Qubit(0))*Dagger(H(0))
86
107
    rhs = Dagger(Qubit(1))/sqrt(2) + Dagger(Qubit(0))/sqrt(2)
87
108
    assert qapply(lhs, dagger=True) == rhs
88
109
 
89
110
 
90
 
def test_issue2974():
 
111
def test_issue_6073():
91
112
    x, y = symbols('x y', commutative=False)
92
113
    A = Ket(x, y)
93
114
    B = Operator('B')