70_math.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from math import log, log10, log2, sin, cos, tan, e, pi, isnan, isinf, fabs, floor, ceil, sqrt
  2. def isclose(a, b):
  3. return abs(a-b) < 0.000001
  4. assert isclose(e, 2.718281828459045), e
  5. assert isclose(pi, 3.141592653589793), pi
  6. assert isclose(log(10), 2.302585092994046), log(10)
  7. assert isclose(log10(10), 1.0), log10(10)
  8. assert isclose(log2(10), 3.321928094887362), log2(10)
  9. assert isclose(sin(0), 0.0), sin(0)
  10. assert isclose(cos(0), 1.0), cos(0)
  11. assert isclose(tan(0), 0.0), tan(0)
  12. a = -0.1
  13. a = a**a
  14. assert isnan(a)
  15. assert not isinf(a)
  16. assert isinf(float("inf"))
  17. assert isclose(fabs(-1.2), 1.2)
  18. assert floor(1.2) == 1
  19. assert floor(-1.2) == -2
  20. assert ceil(1.2) == 2
  21. assert ceil(-1.2) == -1
  22. assert isclose(sqrt(4), 2.0)
  23. import math
  24. # test fsum
  25. assert math.fsum([0.1] * 10) == 1.0
  26. # test gcd
  27. assert math.gcd(10, 5) == 5
  28. assert math.gcd(10, 6) == 2
  29. assert math.gcd(10, 7) == 1
  30. assert math.gcd(10, 10) == 10
  31. assert math.gcd(-10, 10) == 10
  32. # test fmod
  33. assert math.fmod(-2.0, 3.0) == -2.0
  34. assert math.fmod(2.0, 3.0) == 2.0
  35. assert math.fmod(4.0, 3.0) == 1.0
  36. assert math.fmod(-4.0, 3.0) == -1.0
  37. # test modf
  38. x, y = math.modf(1.5)
  39. assert isclose(x, 0.5)
  40. assert isclose(y, 1.0)
  41. x, y = math.modf(-1.5)
  42. assert isclose(x, -0.5)
  43. assert isclose(y, -1.0)
  44. # test factorial
  45. assert math.factorial(0) == 1
  46. assert math.factorial(1) == 1
  47. assert math.factorial(2) == 2
  48. assert math.factorial(3) == 6
  49. assert math.factorial(4) == 24
  50. assert math.factorial(5) == 120