test_piab.py 1.1 KB

1234567891011121314151617181920212223242526272829
  1. """Tests for piab.py"""
  2. from sympy.core.numbers import pi
  3. from sympy.core.singleton import S
  4. from sympy.core.symbol import symbols
  5. from sympy.functions.elementary.miscellaneous import sqrt
  6. from sympy.functions.elementary.trigonometric import sin
  7. from sympy.sets.sets import Interval
  8. from sympy.functions.special.tensor_functions import KroneckerDelta
  9. from sympy.physics.quantum import L2, qapply, hbar, represent
  10. from sympy.physics.quantum.piab import PIABHamiltonian, PIABKet, PIABBra, m, L
  11. i, j, n, x = symbols('i j n x')
  12. def test_H():
  13. assert PIABHamiltonian('H').hilbert_space == \
  14. L2(Interval(S.NegativeInfinity, S.Infinity))
  15. assert qapply(PIABHamiltonian('H')*PIABKet(n)) == \
  16. (n**2*pi**2*hbar**2)/(2*m*L**2)*PIABKet(n)
  17. def test_states():
  18. assert PIABKet(n).dual_class() == PIABBra
  19. assert PIABKet(n).hilbert_space == \
  20. L2(Interval(S.NegativeInfinity, S.Infinity))
  21. assert represent(PIABKet(n)) == sqrt(2/L)*sin(n*pi*x/L)
  22. assert (PIABBra(i)*PIABKet(j)).doit() == KroneckerDelta(i, j)
  23. assert PIABBra(n).dual_class() == PIABKet