def construct(p0: Point, p1: Point, p2: Point) -> Circle:
    try:
        assert (not Geometry.colinear(p0, p1, p2))
    except AssertionError:
        raise AssertionError('Circle can not be constructed from three points that are colinear')
    l1 = Geometry.perpendicular_bisector(p0, p1)
    l2 = Geometry.perpendicular_bisector(p1, p2)
    center = l1.intersection(l2)
    radius = Geometry.distance(center, p0)
    return Circle(center, radius)
def construct(p0: Point, p1: Point, p2: Point) -> Circle:
    try:
        assert (not Geometry.colinear(p0, p1, p2))
    except AssertionError:
        raise AssertionError('Circle can not be constructed from three points that are colinear')
    l1 = Geometry.perpendicular_bisector(p0, p1)
    l2 = Geometry.perpendicular_bisector(p1, p2)
    center = l1.intersection(l2)
    radius = Geometry.distance(center, p0)
    return Circle(center, radius)