docs: def contains (self, p):
      """Returns True if point is contained inside this Polygon, False
      otherwise.
  
      This method uses the Ray Casting algorithm.
  
      Examples:
      
      >>> p = Polygon()
      >>> p.vertices = [Point(1, 1), Point(1, -1), Point(-1, -1), Point(-1, 1)]
  
      >>> p.contains( Point(0, 0) )
      True
  
      >>> p.contains( Point(2, 3) )
      False
  
      """
      inside = False
  
      if p in self.bounds():
        for s in self.segments():
          if ((s.p.y > p.y) != (s.q.y > p.y) and
              (p.x < (s.q.x - s.p.x) * (p.y - s.p.y) / (s.q.y - s.p.y) + s.p.x)):
            inside = not inside
  
      return inside