02_float.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. def eq(a, b):
  2. dt = a - b
  3. return dt > -0.001 and dt < 0.001
  4. # test == != >= <= < >
  5. assert 1.0 == 1.0
  6. assert 1.0 != 1.1
  7. assert 1.0 >= 1.0
  8. assert 1.0 <= 1.0
  9. assert 1.0 < 1.1
  10. assert 1.1 > 1.0
  11. # test + - * ** /
  12. assert eq(1.5 + 3, 4.5)
  13. assert eq(1.5 + 3.9, 5.4)
  14. assert eq(5.3 - 2.5, 2.8)
  15. assert eq(0.2**2, 0.04)
  16. assert eq(4**(-1.0), 0.25)
  17. assert eq(2/1, 2.0)
  18. assert eq(3/2.0, 1.5)
  19. assert eq(1/9, 0.11111)
  20. # test += -= *= /=
  21. x = 3.0
  22. x += 1
  23. assert eq(x, 4.0)
  24. x -= 1
  25. assert eq(x, 3.0)
  26. x *= 2
  27. assert eq(x, 6.0)
  28. x /= 1.8
  29. assert eq(x, 3.3333)
  30. # test __str__, __repr__
  31. assert str(1.0) == '1.0'
  32. assert repr(1.0) == '1.0'
  33. # test float()
  34. assert eq(float(1), 1.0)
  35. assert eq(float(1.0), 1.0)
  36. assert eq(float(1.1), 1.1)
  37. assert eq(float(1.9), 1.9)
  38. assert eq(float(-1.9), -1.9)
  39. assert eq(float(1.5), 1.5)
  40. assert eq(float(-1.5), -1.5)
  41. assert eq(float("123"), 123.0)
  42. assert eq(float("123.456"), 123.456)
  43. import math
  44. inf = float("inf")
  45. assert 1/0 == inf
  46. assert -1/0 == -inf
  47. assert 1/inf == 0
  48. assert -1/inf == 0
  49. assert math.isnan(0/0)