code: def test_mpmath():
      # test that the argument of complex functions evaluated with mpmath
      # might be different than the one computed with Numpy (different
      # behaviour at branch cuts)
      if not np:
          skip("numpy not installed.")
  
      z, u = symbols("z, u")
  
      s1 = LineOver1DRangeSeries(
          im(sqrt(-z)),
          (z, 1e-03, 5),
          adaptive=True,
          modules=None,
          force_real_eval=True,
      )
      s2 = LineOver1DRangeSeries(
          im(sqrt(-z)),
          (z, 1e-03, 5),
          adaptive=True,
          modules="mpmath",
          force_real_eval=True,
      )
      xx1, yy1 = s1.get_data()
      xx2, yy2 = s2.get_data()
      assert np.all(yy1 < 0)
      assert np.all(yy2 > 0)
  
      s1 = LineOver1DRangeSeries(
          im(sqrt(-z)),
          (z, -5, 5),
          adaptive=False,
          n=20,
          modules=None,
          force_real_eval=True,
      )
      s2 = LineOver1DRangeSeries(
          im(sqrt(-z)),
          (z, -5, 5),
          adaptive=False,
          n=20,
          modules="mpmath",
          force_real_eval=True,
      )
      xx1, yy1 = s1.get_data()
      xx2, yy2 = s2.get_data()
      assert np.allclose(xx1, xx2)
      assert not np.allclose(yy1, yy2)
  
imports: from sympy import latex, exp, symbols, I, pi, sin, cos, tan, log, sqrt, re, im, arg, frac, Sum, S, Abs, lambdify, Function, dsolve, Eq, floor, Tuple
  from sympy.external import import_module
  from sympy.plotting.series import LineOver1DRangeSeries, Parametric2DLineSeries, Parametric3DLineSeries, SurfaceOver2DRangeSeries, ContourSeries, ParametricSurfaceSeries, ImplicitSeries, _set_discretization_points, List2DSeries
  from sympy.testing.pytest import raises, warns, XFAIL, skip, ignore_warnings
label_desc: Use image node_id 15 for calling a global function with example usage: test_mpmath() without return types