test_experimental_lambdify.py 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from sympy.core.symbol import symbols, Symbol
  2. from sympy.functions import Max
  3. from sympy.plotting.experimental_lambdify import experimental_lambdify
  4. from sympy.plotting.intervalmath.interval_arithmetic import \
  5. interval, intervalMembership
  6. # Tests for exception handling in experimental_lambdify
  7. def test_experimental_lambify():
  8. x = Symbol('x')
  9. f = experimental_lambdify([x], Max(x, 5))
  10. # XXX should f be tested? If f(2) is attempted, an
  11. # error is raised because a complex produced during wrapping of the arg
  12. # is being compared with an int.
  13. assert Max(2, 5) == 5
  14. assert Max(5, 7) == 7
  15. x = Symbol('x-3')
  16. f = experimental_lambdify([x], x + 1)
  17. assert f(1) == 2
  18. def test_composite_boolean_region():
  19. x, y = symbols('x y')
  20. r1 = (x - 1)**2 + y**2 < 2
  21. r2 = (x + 1)**2 + y**2 < 2
  22. f = experimental_lambdify((x, y), r1 & r2)
  23. a = (interval(-0.1, 0.1), interval(-0.1, 0.1))
  24. assert f(*a) == intervalMembership(True, True)
  25. a = (interval(-1.1, -0.9), interval(-0.1, 0.1))
  26. assert f(*a) == intervalMembership(False, True)
  27. a = (interval(0.9, 1.1), interval(-0.1, 0.1))
  28. assert f(*a) == intervalMembership(False, True)
  29. a = (interval(-0.1, 0.1), interval(1.9, 2.1))
  30. assert f(*a) == intervalMembership(False, True)
  31. f = experimental_lambdify((x, y), r1 | r2)
  32. a = (interval(-0.1, 0.1), interval(-0.1, 0.1))
  33. assert f(*a) == intervalMembership(True, True)
  34. a = (interval(-1.1, -0.9), interval(-0.1, 0.1))
  35. assert f(*a) == intervalMembership(True, True)
  36. a = (interval(0.9, 1.1), interval(-0.1, 0.1))
  37. assert f(*a) == intervalMembership(True, True)
  38. a = (interval(-0.1, 0.1), interval(1.9, 2.1))
  39. assert f(*a) == intervalMembership(False, True)
  40. f = experimental_lambdify((x, y), r1 & ~r2)
  41. a = (interval(-0.1, 0.1), interval(-0.1, 0.1))
  42. assert f(*a) == intervalMembership(False, True)
  43. a = (interval(-1.1, -0.9), interval(-0.1, 0.1))
  44. assert f(*a) == intervalMembership(False, True)
  45. a = (interval(0.9, 1.1), interval(-0.1, 0.1))
  46. assert f(*a) == intervalMembership(True, True)
  47. a = (interval(-0.1, 0.1), interval(1.9, 2.1))
  48. assert f(*a) == intervalMembership(False, True)
  49. f = experimental_lambdify((x, y), ~r1 & r2)
  50. a = (interval(-0.1, 0.1), interval(-0.1, 0.1))
  51. assert f(*a) == intervalMembership(False, True)
  52. a = (interval(-1.1, -0.9), interval(-0.1, 0.1))
  53. assert f(*a) == intervalMembership(True, True)
  54. a = (interval(0.9, 1.1), interval(-0.1, 0.1))
  55. assert f(*a) == intervalMembership(False, True)
  56. a = (interval(-0.1, 0.1), interval(1.9, 2.1))
  57. assert f(*a) == intervalMembership(False, True)
  58. f = experimental_lambdify((x, y), ~r1 & ~r2)
  59. a = (interval(-0.1, 0.1), interval(-0.1, 0.1))
  60. assert f(*a) == intervalMembership(False, True)
  61. a = (interval(-1.1, -0.9), interval(-0.1, 0.1))
  62. assert f(*a) == intervalMembership(False, True)
  63. a = (interval(0.9, 1.1), interval(-0.1, 0.1))
  64. assert f(*a) == intervalMembership(False, True)
  65. a = (interval(-0.1, 0.1), interval(1.9, 2.1))
  66. assert f(*a) == intervalMembership(True, True)