def test_add_function_prototype(self):
        """
        Test the prototype method with a new instance method.

        @raise AssertionError: If the test fails.
        """
        point_one = self.__point_class(20, 25)

        def distance_to(this, other):
            return sqrt((this.x - other.x) ** 2 + (this.y - other.y) ** 2)

        point_two = point_one.prototype(distance_to=distance_to)
        point_three = point_two.prototype()

        self.assertFalse(hasattr(point_one, 'distance_to'))
        self.assertTrue(hasattr(point_two, 'distance_to'))
        self.assertEquals(point_two.distance_to(point_one), 0)
        self.assertTrue(hasattr(point_three, 'distance_to'))
        self.assertEquals(point_three.distance_to(point_two), 0)

        Test the prototype method with a new instance method.

        @raise AssertionError: If the test fails.
        
tests/creational_tests/test_prototype.py