code: def test_str():
      u, x, y, z = symbols("u, x:z")
  
      s = LineOver1DRangeSeries(cos(x), (x, -4, 3))
      assert str(s) == "cartesian line: cos(x) for x over (-4.0, 3.0)"
  
      d = {"return": "real"}
      s = LineOver1DRangeSeries(cos(x), (x, -4, 3), **d)
      assert (
          str(s) == "cartesian line: re(cos(x)) for x over (-4.0, 3.0)"
      )
  
      d = {"return": "imag"}
      s = LineOver1DRangeSeries(cos(x), (x, -4, 3), **d)
      assert (
          str(s) == "cartesian line: im(cos(x)) for x over (-4.0, 3.0)"
      )
  
      d = {"return": "abs"}
      s = LineOver1DRangeSeries(cos(x), (x, -4, 3), **d)
      assert (
          str(s) == "cartesian line: abs(cos(x)) for x over (-4.0, 3.0)"
      )
  
      d = {"return": "arg"}
      s = LineOver1DRangeSeries(cos(x), (x, -4, 3), **d)
      assert (
          str(s) == "cartesian line: arg(cos(x)) for x over (-4.0, 3.0)"
      )
  
      s = LineOver1DRangeSeries(cos(u * x), (x, -4, 3), params={u: 1})
      assert (
          str(s)
          == "interactive cartesian line: cos(u*x) for x over (-4.0, 3.0) and parameters (u,)"
      )
  
      s = LineOver1DRangeSeries(
          cos(u * x), (x, -u, 3 * y), params={u: 1, y: 1}
      )
      assert (
          str(s)
          == "interactive cartesian line: cos(u*x) for x over (-u, 3*y) and parameters (u, y)"
      )
  
      s = Parametric2DLineSeries(cos(x), sin(x), (x, -4, 3))
      assert (
          str(s)
          == "parametric cartesian line: (cos(x), sin(x)) for x over (-4.0, 3.0)"
      )
  
      s = Parametric2DLineSeries(
          cos(u * x), sin(x), (x, -4, 3), params={u: 1}
      )
      assert (
          str(s)
          == "interactive parametric cartesian line: (cos(u*x), sin(x)) for x over (-4.0, 3.0) and parameters (u,)"
      )
  
      s = Parametric2DLineSeries(
          cos(u * x), sin(x), (x, -u, 3 * y), params={u: 1, y: 1}
      )
      assert (
          str(s)
          == "interactive parametric cartesian line: (cos(u*x), sin(x)) for x over (-u, 3*y) and parameters (u, y)"
      )
  
      s = Parametric3DLineSeries(cos(x), sin(x), x, (x, -4, 3))
      assert (
          str(s)
          == "3D parametric cartesian line: (cos(x), sin(x), x) for x over (-4.0, 3.0)"
      )
  
      s = Parametric3DLineSeries(
          cos(u * x), sin(x), x, (x, -4, 3), params={u: 1}
      )
      assert (
          str(s)
          == "interactive 3D parametric cartesian line: (cos(u*x), sin(x), x) for x over (-4.0, 3.0) and parameters (u,)"
      )
  
      s = Parametric3DLineSeries(
          cos(u * x), sin(x), x, (x, -u, 3 * y), params={u: 1, y: 1}
      )
      assert (
          str(s)
          == "interactive 3D parametric cartesian line: (cos(u*x), sin(x), x) for x over (-u, 3*y) and parameters (u, y)"
      )
  
      s = SurfaceOver2DRangeSeries(cos(x * y), (x, -4, 3), (y, -2, 5))
      assert (
          str(s)
          == "cartesian surface: cos(x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0)"
      )
  
      s = SurfaceOver2DRangeSeries(
          cos(u * x * y), (x, -4, 3), (y, -2, 5), params={u: 1}
      )
      assert (
          str(s)
          == "interactive cartesian surface: cos(u*x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0) and parameters (u,)"
      )
  
      s = SurfaceOver2DRangeSeries(
          cos(u * x * y), (x, -4 * u, 3), (y, -2, 5 * u), params={u: 1}
      )
      assert (
          str(s)
          == "interactive cartesian surface: cos(u*x*y) for x over (-4*u, 3.0) and y over (-2.0, 5*u) and parameters (u,)"
      )
  
      s = ContourSeries(cos(x * y), (x, -4, 3), (y, -2, 5))
      assert (
          str(s)
          == "contour: cos(x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0)"
      )
  
      s = ContourSeries(
          cos(u * x * y), (x, -4, 3), (y, -2, 5), params={u: 1}
      )
      assert (
          str(s)
          == "interactive contour: cos(u*x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0) and parameters (u,)"
      )
  
      s = ParametricSurfaceSeries(
          cos(x * y), sin(x * y), x * y, (x, -4, 3), (y, -2, 5)
      )
      assert (
          str(s)
          == "parametric cartesian surface: (cos(x*y), sin(x*y), x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0)"
      )
  
      s = ParametricSurfaceSeries(
          cos(u * x * y),
          sin(x * y),
          x * y,
          (x, -4, 3),
          (y, -2, 5),
          params={u: 1},
      )
      assert (
          str(s)
          == "interactive parametric cartesian surface: (cos(u*x*y), sin(x*y), x*y) for x over (-4.0, 3.0) and y over (-2.0, 5.0) and parameters (u,)"
      )
  
      s = ImplicitSeries(x < y, (x, -5, 4), (y, -3, 2))
      assert (
          str(s)
          == "Implicit expression: x < y for x over (-5.0, 4.0) and y over (-3.0, 2.0)"
      )
  
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 16 for calling a global function with example usage: test_str() without return types