code: def test_create_ranges():
      x, y = symbols("x, y")
  
      # user don't provide any range -> return a default range
      r = _create_ranges({x}, [], 1)
      assert isinstance(r, (list, tuple, Tuple)) and len(r) == 1
      assert isinstance(r[0], (Tuple, tuple))
      assert r[0] == (x, -10, 10)
  
      r = _create_ranges({x, y}, [], 2)
      assert isinstance(r, (list, tuple, Tuple)) and len(r) == 2
      assert isinstance(r[0], (Tuple, tuple))
      assert isinstance(r[1], (Tuple, tuple))
      assert r[0] == (x, -10, 10) or (y, -10, 10)
      assert r[1] == (y, -10, 10) or (x, -10, 10)
      assert r[0] != r[1]
  
      # not enough ranges provided by the user -> create default ranges
      r = _create_ranges(
          {x, y},
          [
              (x, 0, 1),
          ],
          2,
      )
      assert isinstance(r, (list, tuple, Tuple)) and len(r) == 2
      assert isinstance(r[0], (Tuple, tuple))
      assert isinstance(r[1], (Tuple, tuple))
      assert r[0] == (x, 0, 1) or (y, -10, 10)
      assert r[1] == (y, -10, 10) or (x, 0, 1)
      assert r[0] != r[1]
  
      # too many free symbols
      raises(ValueError, lambda: _create_ranges({x, y}, [], 1))
      raises(
          ValueError,
          lambda: _create_ranges({x, y}, [(x, 0, 5), (y, 0, 1)], 1),
      )
  
file_path: sympy/sympy/plotting/tests/test_utils.py
imports: from pytest import raises
  from sympy import symbols, Expr, Tuple, Integer, cos, solveset, FiniteSet, ImageSet
  from sympy.plotting.utils import _create_ranges, _plot_sympify, extract_solution
  from sympy.physics.mechanics import ReferenceFrame, Vector
  from sympy.vector import CoordSys3D, Vector
label_desc: Use image node_id 2 for calling a global function with example usage: test_create_ranges() without return types