class TestBezier(unittest.TestCase): def setUp(self): controlpoints = [[i, random.random()] for i in range(15)] self.bezier = Bezier(controlpoints) def test_get_value(self): val = random.random() self.assertAlmostEqual(self.bezier(val)[0], self.bezier(val)[0]) self.assertAlmostEqual(self.bezier(val)[1], self.bezier(val)[1]) def test_fit(self): num = len(self.bezier.controlpoints) to_fit = self.bezier.get_sequence() bezier2 = Bezier.fit(to_fit, numpoints=num) for p1, p2 in zip(self.bezier.controlpoints, bezier2.controlpoints): self.assertAlmostEqual(p1[0], p2[0], 0) self.assertAlmostEqual(p1[1], p2[1], 0) def test_length(self): self.bezier.controlpoints = [[0, 0], [2, 0]] self.assertAlmostEqual(self.bezier.get_length(10), 2.) def test_get_sequence(self): sequence = self.bezier.get_sequence(100)