def test_intersect_circles_numerical(): assert_equal( intersect_circles( (-27.073924841728974, 65.92689560740814), -1.25, (0.5, 0.5), -72.25000000000001, ), [(-27.55938126499886, 67.07877757232733)], )
def test_intersect_circles(): # Coincident circles, no single intersection point. assert_equal( intersect_circles( (0, 0), 1, (0, 0), 1, ), [], ) # No intersection, separated circles. assert_equal( intersect_circles( (0, 0), 1, (5, 0), 1, ), [], ) # No intersection, concentric circles. assert_equal( intersect_circles( (0, 0), 1, (0, 0), 2, ), [], ) # One point, exterior tangent. assert_equal( intersect_circles( (0, 0), 1, (2, 0), 1, ), [(1, 0)], ) # One point, interior tangent. assert_equal( intersect_circles( (0, 0), 2, (1, 0), 1, ), [(2, 0)], ) assert_equal( intersect_circles( (0, 1), 1.5, (0, 0), 2.5, ), [(0, 2.5)], ) # Two points, same size circles. assert_equal( intersect_circles( (-1, 0), sqrt2, (1, 0), sqrt2, ), [(0, 1), (0, -1)], ) # Two points, different size circles. p1, p2 = intersect_circles( (0, 0), sqrt2, (1, 0), 1, ) assert_points_equal(p1, (1, 1)) assert_points_equal(p2, (1, -1))