'Return True if p is enclosed by (is inside of) self.
Notes
Being on the border of self is considered False.
Parameters
p : Point
Returns
encloses_point : True, False or None
See Also
sympy.geometry.point.Point
Examples
>>> from sympy import Ellipse, S
>>> from sympy.abc import t
>>> e = Ellipse((0, 0), 3, 2)
>>> e.encloses_point((0, 0))
True
>>> e.encloses_point(e.arbitrary_point(t).subs(t, S.Half))
False
>>> e.encloses_point((4, 0))
False'

def encloses_point(self, p):

    p = Point(p, dim=2)
    if (p in self):
        return False
    if (len(self.foci) == 2):
        (h1, h2) = [f.distance(p) for f in self.foci]
        test = ((2 * self.major) - (h1 + h2))
    else:
        test = (self.radius - self.center.distance(p))
    return fuzzy_bool(test.is_positive)
