Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quantum printing tests #908

Merged
merged 6 commits into from Apr 12, 2012
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 4 additions & 3 deletions sympy/physics/quantum/anticommutator.py
Expand Up @@ -122,8 +122,9 @@ def _eval_dagger(self):
return AntiCommutator(Dagger(self.args[0]), Dagger(self.args[1]))

def _sympyrepr(self, printer, *args):
return "%s(%s,%s)" % (self.__class__.__name__, self.args[0],\
self.args[1])
return "%s(%s,%s)" % (
self.__class__.__name__, printer._print(self.args[0]), printer._print(self.args[1])
)

def _sympystr(self, printer, *args):
return "{%s,%s}" % (self.args[0], self.args[1])
Expand All @@ -136,6 +137,6 @@ def _pretty(self, printer, *args):
return pform

def _latex(self, printer, *args):
return "\\left{}%s,%s\\right}" % tuple([
return "\\left\\{%s,%s\\right\\}" % tuple([
printer._print(arg, *args) for arg in self.args])

26 changes: 10 additions & 16 deletions sympy/physics/quantum/cg.py
Expand Up @@ -45,8 +45,7 @@ class Wigner3j(Expr):
>>> from sympy.physics.quantum.cg import Wigner3j
>>> w3j = Wigner3j(6,0,4,0,2,0)
>>> w3j
(6, 4, 2)
(0, 0, 0)
Wigner3j(6,4,2,0,0,0)
>>> w3j.doit()
sqrt(715)/143

Expand Down Expand Up @@ -87,18 +86,12 @@ def m3(self):
def is_symbolic(self):
return not all([arg.is_number for arg in self.args])

# This is modified from the _print_Matrix method
def _sympystr(self, printer, *args):
res = [[printer._print(self.j1), printer._print(self.j2), printer._print(self.j3)], \
[printer._print(self.m1), printer._print(self.m2), printer._print(self.m3)]]
maxw = [-1] * 3
for j in range(3):
maxw[j] = max([ len(res[i][j]) for i in range(2) ])
for i, row in enumerate(res):
for j, elem in enumerate(row):
row[j] = elem.rjust(maxw[j])
res[i] = "(" + ", ".join(row) + ")"
return '\n'.join(res)
return '%s(%s,%s,%s,%s,%s,%s)' % (
self.__class__.__name__,
printer._print(self.j1), printer._print(self.j2), printer._print(self.j3),
printer._print(self.m1), printer._print(self.m2), printer._print(self.m3)
)

# This is modified from the _print_Matrix method
def _pretty(self, printer, *args):
Expand Down Expand Up @@ -188,9 +181,10 @@ def doit(self, **hints):
return clebsch_gordan(self.j1,self.j2, self.j3, self.m1, self.m2, self.m3)

def _sympystr(self, printer, *args):
return 'CG(%s, %s, %s, %s, %s, %s)' % \
(printer._print(self.j1), printer._print(self.m1), printer._print(self.j2), \
printer._print(self.m2), printer._print(self.j3), printer._print(self.m3))
return 'CG(%s, %s, %s, %s, %s, %s)' % (
printer._print(self.j1), printer._print(self.m1), printer._print(self.j2), \
printer._print(self.m2), printer._print(self.j3), printer._print(self.m3)
)

def _pretty(self, printer, *args):
bot = printer._print(self.j1)
Expand Down
5 changes: 3 additions & 2 deletions sympy/physics/quantum/commutator.py
Expand Up @@ -175,8 +175,9 @@ def _eval_dagger(self):
return Commutator(Dagger(self.args[1]), Dagger(self.args[0]))

def _sympyrepr(self, printer, *args):
return "%s(%s,%s)" % (self.__class__.__name__, self.args[0],\
self.args[1])
return "%s(%s,%s)" % (
self.__class__.__name__, printer._print(self.args[0]), printer._print(self.args[1])
)

def _sympystr(self, printer, *args):
return "[%s,%s]" % (self.args[0], self.args[1])
Expand Down
7 changes: 0 additions & 7 deletions sympy/physics/quantum/tests/test_innerproduct.py
Expand Up @@ -68,10 +68,3 @@ def test_doit():
assert InnerProduct(b,f).doit() == I
assert InnerProduct(Dagger(f),Dagger(b)).doit() == -I
assert InnerProduct(Dagger(f),f).doit() == Integer(1)


def test_printing():
psi = Ket('psi')
ip = Dagger(psi)*psi
assert pretty(ip, use_unicode=True) == u'\u27e8\u03c8\u2758\u03c8\u27e9'
assert latex(ip) == r"\left\langle \psi \right. {\left|\psi\right\rangle }"