test_plotting.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. from sympy.external.importtools import import_module
  2. disabled = False
  3. # if pyglet.gl fails to import, e.g. opengl is missing, we disable the tests
  4. pyglet_gl = import_module("pyglet.gl", catch=(OSError,))
  5. pyglet_window = import_module("pyglet.window", catch=(OSError,))
  6. if not pyglet_gl or not pyglet_window:
  7. disabled = True
  8. from sympy.core.symbol import symbols
  9. from sympy.functions.elementary.exponential import log
  10. from sympy.functions.elementary.trigonometric import (cos, sin)
  11. x, y, z = symbols('x, y, z')
  12. def test_plot_2d():
  13. from sympy.plotting.pygletplot import PygletPlot
  14. p = PygletPlot(x, [x, -5, 5, 4], visible=False)
  15. p.wait_for_calculations()
  16. def test_plot_2d_discontinuous():
  17. from sympy.plotting.pygletplot import PygletPlot
  18. p = PygletPlot(1/x, [x, -1, 1, 2], visible=False)
  19. p.wait_for_calculations()
  20. def test_plot_3d():
  21. from sympy.plotting.pygletplot import PygletPlot
  22. p = PygletPlot(x*y, [x, -5, 5, 5], [y, -5, 5, 5], visible=False)
  23. p.wait_for_calculations()
  24. def test_plot_3d_discontinuous():
  25. from sympy.plotting.pygletplot import PygletPlot
  26. p = PygletPlot(1/x, [x, -3, 3, 6], [y, -1, 1, 1], visible=False)
  27. p.wait_for_calculations()
  28. def test_plot_2d_polar():
  29. from sympy.plotting.pygletplot import PygletPlot
  30. p = PygletPlot(1/x, [x, -1, 1, 4], 'mode=polar', visible=False)
  31. p.wait_for_calculations()
  32. def test_plot_3d_cylinder():
  33. from sympy.plotting.pygletplot import PygletPlot
  34. p = PygletPlot(
  35. 1/y, [x, 0, 6.282, 4], [y, -1, 1, 4], 'mode=polar;style=solid',
  36. visible=False)
  37. p.wait_for_calculations()
  38. def test_plot_3d_spherical():
  39. from sympy.plotting.pygletplot import PygletPlot
  40. p = PygletPlot(
  41. 1, [x, 0, 6.282, 4], [y, 0, 3.141,
  42. 4], 'mode=spherical;style=wireframe',
  43. visible=False)
  44. p.wait_for_calculations()
  45. def test_plot_2d_parametric():
  46. from sympy.plotting.pygletplot import PygletPlot
  47. p = PygletPlot(sin(x), cos(x), [x, 0, 6.282, 4], visible=False)
  48. p.wait_for_calculations()
  49. def test_plot_3d_parametric():
  50. from sympy.plotting.pygletplot import PygletPlot
  51. p = PygletPlot(sin(x), cos(x), x/5.0, [x, 0, 6.282, 4], visible=False)
  52. p.wait_for_calculations()
  53. def _test_plot_log():
  54. from sympy.plotting.pygletplot import PygletPlot
  55. p = PygletPlot(log(x), [x, 0, 6.282, 4], 'mode=polar', visible=False)
  56. p.wait_for_calculations()
  57. def test_plot_integral():
  58. # Make sure it doesn't treat x as an independent variable
  59. from sympy.plotting.pygletplot import PygletPlot
  60. from sympy.integrals.integrals import Integral
  61. p = PygletPlot(Integral(z*x, (x, 1, z), (z, 1, y)), visible=False)
  62. p.wait_for_calculations()