code: def test_list2dseries_interactive():
      if not np:
          skip("numpy not installed.")
  
      x, y, u = symbols("x, y, u")
  
      s = List2DSeries([1, 2, 3], [1, 2, 3])
      assert not s.is_interactive
  
      # symbolic expressions as coordinates, but no ``params``
      raises(ValueError, lambda: List2DSeries([cos(x)], [sin(x)]))
  
      # too few parameters
      raises(
          ValueError,
          lambda: List2DSeries([cos(x), y], [sin(x), 2], params={u: 1}),
      )
  
      s = List2DSeries([cos(x)], [sin(x)], params={x: 1})
      assert s.is_interactive
  
      s = List2DSeries([x, 2, 3, 4], [4, 3, 2, x], params={x: 3})
      xx, yy = s.get_data()
      assert np.allclose(xx, [3, 2, 3, 4])
      assert np.allclose(yy, [4, 3, 2, 3])
      assert not s.is_parametric
  
      # numeric lists + params is present -> interactive series and
      # lists are converted to Tuple.
      s = List2DSeries([1, 2, 3], [1, 2, 3], params={x: 1})
      assert s.is_interactive
      assert isinstance(s.list_x, Tuple)
      assert isinstance(s.list_y, Tuple)
  
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 14 for calling a global function with example usage: test_list2dseries_interactive() without return types