10_cmath.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. from cmath import isclose, sqrt, nan, inf, nanj, infj, log
  2. import math
  3. assert 1+2j == complex(1, 2) == 2j+1
  4. assert isclose(1+2j + 3+4j, 4+6j)
  5. assert isclose(1+2j - 3+4j, -2+6j)
  6. assert (1+2j).real == 1
  7. assert (1+2j).imag == 2
  8. assert isclose((1+2j)*(3+4j), -5+10j)
  9. assert isclose((1+2j)*3, 3+6j)
  10. assert isclose((1+2j)**2, -3+4j)
  11. assert (1+2j).conjugate() == 1-2j
  12. res = sqrt(1+2j)
  13. assert isclose(res, 1.272019649514069+0.7861513777574233j)
  14. assert {1+2j: 1}[1+2j] == 1
  15. assert repr(1+2j) == '(1.0+2.0j)'
  16. assert repr(1+0j) == '(1.0+0.0j)'
  17. assert repr(-1-3j) == '(-1.0-3.0j)'
  18. assert repr(1-3j) == '(1.0-3.0j)'
  19. assert repr(math.nan) == repr(nan) == 'nan'
  20. assert repr(-math.nan) == repr(-nan) == 'nan'
  21. assert repr(math.inf) == repr(inf) == 'inf'
  22. assert repr(-math.inf) == repr(-inf) == '-inf'
  23. assert repr(nanj) == '(0.0+nanj)', nanj
  24. assert repr(-nanj) == '(0.0+nanj)', -nanj
  25. assert repr(infj) == '(0.0+infj)', infj
  26. assert repr(-infj) == '(0.0-infj)', -infj
  27. assert math.log(1) == 0.0
  28. assert isclose(log(10+5j), 2.4141568686511508+0.4636476090008061j)