test_paulialgebra.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. from sympy.core.numbers import I
  2. from sympy.core.symbol import symbols
  3. from sympy.physics.paulialgebra import Pauli
  4. from sympy.testing.pytest import XFAIL
  5. from sympy.physics.quantum import TensorProduct
  6. sigma1 = Pauli(1)
  7. sigma2 = Pauli(2)
  8. sigma3 = Pauli(3)
  9. tau1 = symbols("tau1", commutative = False)
  10. def test_Pauli():
  11. assert sigma1 == sigma1
  12. assert sigma1 != sigma2
  13. assert sigma1*sigma2 == I*sigma3
  14. assert sigma3*sigma1 == I*sigma2
  15. assert sigma2*sigma3 == I*sigma1
  16. assert sigma1*sigma1 == 1
  17. assert sigma2*sigma2 == 1
  18. assert sigma3*sigma3 == 1
  19. assert sigma1**0 == 1
  20. assert sigma1**1 == sigma1
  21. assert sigma1**2 == 1
  22. assert sigma1**3 == sigma1
  23. assert sigma1**4 == 1
  24. assert sigma3**2 == 1
  25. assert sigma1*2*sigma1 == 2
  26. def test_evaluate_pauli_product():
  27. from sympy.physics.paulialgebra import evaluate_pauli_product
  28. assert evaluate_pauli_product(I*sigma2*sigma3) == -sigma1
  29. # Check issue 6471
  30. assert evaluate_pauli_product(-I*4*sigma1*sigma2) == 4*sigma3
  31. assert evaluate_pauli_product(
  32. 1 + I*sigma1*sigma2*sigma1*sigma2 + \
  33. I*sigma1*sigma2*tau1*sigma1*sigma3 + \
  34. ((tau1**2).subs(tau1, I*sigma1)) + \
  35. sigma3*((tau1**2).subs(tau1, I*sigma1)) + \
  36. TensorProduct(I*sigma1*sigma2*sigma1*sigma2, 1)
  37. ) == 1 -I + I*sigma3*tau1*sigma2 - 1 - sigma3 - I*TensorProduct(1,1)
  38. @XFAIL
  39. def test_Pauli_should_work():
  40. assert sigma1*sigma3*sigma1 == -sigma3