test_operatorset.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. from sympy.core.singleton import S
  2. from sympy.physics.quantum.operatorset import (
  3. operators_to_state, state_to_operators
  4. )
  5. from sympy.physics.quantum.cartesian import (
  6. XOp, XKet, PxOp, PxKet, XBra, PxBra
  7. )
  8. from sympy.physics.quantum.state import Ket, Bra
  9. from sympy.physics.quantum.operator import Operator
  10. from sympy.physics.quantum.spin import (
  11. JxKet, JyKet, JzKet, JxBra, JyBra, JzBra,
  12. JxOp, JyOp, JzOp, J2Op
  13. )
  14. from sympy.testing.pytest import raises
  15. def test_spin():
  16. assert operators_to_state({J2Op, JxOp}) == JxKet
  17. assert operators_to_state({J2Op, JyOp}) == JyKet
  18. assert operators_to_state({J2Op, JzOp}) == JzKet
  19. assert operators_to_state({J2Op(), JxOp()}) == JxKet
  20. assert operators_to_state({J2Op(), JyOp()}) == JyKet
  21. assert operators_to_state({J2Op(), JzOp()}) == JzKet
  22. assert state_to_operators(JxKet) == {J2Op, JxOp}
  23. assert state_to_operators(JyKet) == {J2Op, JyOp}
  24. assert state_to_operators(JzKet) == {J2Op, JzOp}
  25. assert state_to_operators(JxBra) == {J2Op, JxOp}
  26. assert state_to_operators(JyBra) == {J2Op, JyOp}
  27. assert state_to_operators(JzBra) == {J2Op, JzOp}
  28. assert state_to_operators(JxKet(S.Half, S.Half)) == {J2Op(), JxOp()}
  29. assert state_to_operators(JyKet(S.Half, S.Half)) == {J2Op(), JyOp()}
  30. assert state_to_operators(JzKet(S.Half, S.Half)) == {J2Op(), JzOp()}
  31. assert state_to_operators(JxBra(S.Half, S.Half)) == {J2Op(), JxOp()}
  32. assert state_to_operators(JyBra(S.Half, S.Half)) == {J2Op(), JyOp()}
  33. assert state_to_operators(JzBra(S.Half, S.Half)) == {J2Op(), JzOp()}
  34. def test_op_to_state():
  35. assert operators_to_state(XOp) == XKet()
  36. assert operators_to_state(PxOp) == PxKet()
  37. assert operators_to_state(Operator) == Ket()
  38. assert state_to_operators(operators_to_state(XOp("Q"))) == XOp("Q")
  39. assert state_to_operators(operators_to_state(XOp())) == XOp()
  40. raises(NotImplementedError, lambda: operators_to_state(XKet))
  41. def test_state_to_op():
  42. assert state_to_operators(XKet) == XOp()
  43. assert state_to_operators(PxKet) == PxOp()
  44. assert state_to_operators(XBra) == XOp()
  45. assert state_to_operators(PxBra) == PxOp()
  46. assert state_to_operators(Ket) == Operator()
  47. assert state_to_operators(Bra) == Operator()
  48. assert operators_to_state(state_to_operators(XKet("test"))) == XKet("test")
  49. assert operators_to_state(state_to_operators(XBra("test"))) == XKet("test")
  50. assert operators_to_state(state_to_operators(XKet())) == XKet()
  51. assert operators_to_state(state_to_operators(XBra())) == XKet()
  52. raises(NotImplementedError, lambda: state_to_operators(XOp))