File: test_quadratic.py

package info (click to toggle)
python-beziers 0.5.0%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 652 kB
  • sloc: python: 2,850; makefile: 20
file content (55 lines) | stat: -rw-r--r-- 1,690 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import unittest
from beziers.quadraticbezier import QuadraticBezier
from beziers.point import Point

class QuadraticMethods(unittest.TestCase):
  def test_split(self):
    # console.log((new Bezier(150,40,80,30,105,150)).split(0.2))
    q = QuadraticBezier(
      Point(150,40), Point(80,30), Point(105,150))
    left, right = q.splitAtTime(0.2)
    self.assertEqual(left[1],Point(136,38))
    self.assertEqual(right[1],Point(85,54))

  def test_extremes(self):
    q = QuadraticBezier(
      Point(70,250), Point(13,187), Point(209,58))
    r = q.findExtremes()
    self.assertEqual(len(r), 1)
    self.assertAlmostEqual(r[0], 0.22529644268774704)

  def test_extremes2(self):
    # console.log((new Bezier(127,242,71,150,210,60)).extrema())
    q = QuadraticBezier(
      Point(127,242), Point(71,150), Point(210,60))
    r = q.findExtremes()
    self.assertEqual(len(r), 1)
    self.assertAlmostEqual(r[0], 0.28717948717948716)

  def test_extremes3(self):
    # console.log((new Bezier(127,242,27,5,210,60)).extrema())
    q = QuadraticBezier(
      Point(127,242), Point(27,5), Point(210,60))
    r = q.findExtremes()
    self.assertEqual(len(r), 2)
    self.assertAlmostEqual(r[0], 0.35335689045936397)
    self.assertAlmostEqual(r[1], 0.8116438356164384)
    # from beziers.path import BezierPath
    # import matplotlib.pyplot as plt
    # path = BezierPath.fromSegments([q])
    # fig, ax = plt.subplots()
    # path.closed = False
    # path.addExtremes()
    # path.plot(ax)
    # plt.show()


  def test_extremes4(self):
    q = QuadraticBezier(
      Point(664,1075),
      Point(732,1167),
      Point(800,1239)
    )
    r = q.findExtremes()
    self.assertEqual(len(r), 0)