code: def test_contains():
      p1 = Point(0, 0)
  
      r = Ray(p1, Point(4, 4))
      r1 = Ray3D(p1, Point3D(0, 0, -1))
      r2 = Ray3D(p1, Point3D(0, 1, 0))
      r3 = Ray3D(p1, Point3D(0, 0, 1))
  
      l = Line(Point(0, 1), Point(3, 4))
      # Segment contains
      assert Point(0, (a + b) / 2) in Segment((0, a), (0, b))
      assert Point((a + b) / 2, 0) in Segment((a, 0), (b, 0))
      assert Point3D(0, 1, 0) in Segment3D((0, 1, 0), (0, 1, 0))
      assert Point3D(1, 0, 0) in Segment3D((1, 0, 0), (1, 0, 0))
      assert (
          Segment3D(Point3D(0, 0, 0), Point3D(1, 0, 0)).contains([])
          is True
      )
      assert (
          Segment3D(Point3D(0, 0, 0), Point3D(1, 0, 0)).contains(
              Segment3D(Point3D(2, 2, 2), Point3D(3, 2, 2))
          )
          is False
      )
      # Line contains
      assert l.contains(Point(0, 1)) is True
      assert l.contains((0, 1)) is True
      assert l.contains((0, 0)) is False
      # Ray contains
      assert r.contains(p1) is True
      assert r.contains((1, 1)) is True
      assert r.contains((1, 3)) is False
      assert r.contains(Segment((1, 1), (2, 2))) is True
      assert r.contains(Segment((1, 2), (2, 5))) is False
      assert r.contains(Ray((2, 2), (3, 3))) is True
      assert r.contains(Ray((2, 2), (3, 5))) is False
      assert r1.contains(Segment3D(p1, Point3D(0, 0, -10))) is True
      assert (
          r1.contains(Segment3D(Point3D(1, 1, 1), Point3D(2, 2, 2)))
          is False
      )
      assert r2.contains(Point3D(0, 0, 0)) is True
      assert r3.contains(Point3D(0, 0, 0)) is True
      assert (
          Ray3D(Point3D(1, 1, 1), Point3D(1, 0, 0)).contains([])
          is False
      )
      assert Line3D((0, 0, 0), (x, y, z)).contains(
          (2 * x, 2 * y, 2 * z)
      )
      with warns(UserWarning, test_stacklevel=False):
          assert (
              Line3D(p1, Point3D(0, 1, 0)).contains(Point(1.0, 1.0))
              is False
          )
  
      with warns(UserWarning, test_stacklevel=False):
          assert r3.contains(Point(1.0, 1.0)) is False
  
imports: from sympy.core.numbers import Float, Rational, oo, pi
  from sympy.core.relational import Eq
  from sympy.core.singleton import S
  from sympy.core.symbol import Symbol, symbols
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.functions.elementary.trigonometric import acos, cos, sin
  from sympy.sets import EmptySet
  from sympy.simplify.simplify import simplify
  from sympy.functions.elementary.trigonometric import tan
  from sympy.geometry import Circle, GeometryError, Line, Point, Ray, Segment, Triangle, intersection, Point3D, Line3D, Ray3D, Segment3D, Point2D, Line2D, Plane
  from sympy.geometry.line import Undecidable
  from sympy.geometry.polygon import _asa
  from sympy.utilities.iterables import cartes
  from sympy.testing.pytest import raises, warns
label_desc: Use image node_id 13 for calling a global function with example usage: test_contains() without return types