2 if sys
.path
[0] != "../..":
3 sys
.path
.insert(0, "../..")
12 return abs(unit
.topt(l1
-l2
))<epsilon
15 class NormpathTestCase(unittest
.TestCase
):
17 p
= path(moveto(0,0), lineto(1,0), moveto(2,0), lineto(3,0))
22 assert len(sp
)==2 and sp
[0] is None and isEqual(sp
[1].arclen(), 2)
25 assert len(sp
)==2 and isEqual(sp
[0].arclen(), 0.5) and isEqual(sp
[1].arclen(), 1.5)
28 assert len(sp
)==2 and isEqual(sp
[0].arclen(), 1) and isEqual(sp
[1].arclen(), 1)
31 assert len(sp
)==2 and isEqual(sp
[0].arclen(), 1.5) and isEqual(sp
[1].arclen(), 0.5)
34 assert len(sp
)==2 and isEqual(sp
[0].arclen(), 2) and sp
[1] is None
36 # two split parameters
37 sp
= np
.split([0, 0.5])
38 assert len(sp
)==3 and sp
[0] is None and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 1.5)
41 assert len(sp
)==3 and sp
[0] is None and isEqual(sp
[1].arclen(), 1) and isEqual(sp
[2].arclen(), 1)
43 sp
= np
.split([0, 1.5])
44 assert len(sp
)==3 and sp
[0] is None and isEqual(sp
[1].arclen(), 1.5) and isEqual(sp
[2].arclen(), 0.5)
47 assert len(sp
)==3 and sp
[0] is None and isEqual(sp
[1].arclen(), 2) and sp
[2] is None
49 sp
= np
.split([0.5, 1])
50 assert len(sp
)==3 and isEqual(sp
[0].arclen(), 0.5) and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 1)
52 sp
= np
.split([0.5, 1.5])
53 assert len(sp
)==3 and isEqual(sp
[0].arclen(), 0.5) and isEqual(sp
[1].arclen(), 1) and isEqual(sp
[2].arclen(), 0.5)
55 sp
= np
.split([0.5, 2])
56 assert len(sp
)==3 and isEqual(sp
[0].arclen(), 0.5) and isEqual(sp
[1].arclen(), 1.5) and sp
[2] is None
58 sp
= np
.split([1, 1.5])
59 assert len(sp
)==3 and isEqual(sp
[0].arclen(), 1) and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 0.5)
62 assert len(sp
)==3 and isEqual(sp
[0].arclen(), 1) and isEqual(sp
[1].arclen(), 1) and sp
[2] is None
64 sp
= np
.split([1.5, 2])
65 assert len(sp
)==3 and isEqual(sp
[0].arclen(), 1.5) and isEqual(sp
[1].arclen(), 0.5) and sp
[2] is None
67 # three split parameters
68 sp
= np
.split([0, 0.5, 1])
69 assert len(sp
)==4 and sp
[0] is None and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 0.5) and isEqual(sp
[3].arclen(), 1)
71 sp
= np
.split([0, 0.5, 1.5])
72 assert len(sp
)==4 and sp
[0] is None and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 1) and isEqual(sp
[3].arclen(), 0.5)
74 sp
= np
.split([0, 0.5, 2])
75 assert len(sp
)==4 and sp
[0] is None and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 1.5) and sp
[3] is None
77 sp
= np
.split([0, 1, 1.5])
78 assert len(sp
)==4 and sp
[0] is None and isEqual(sp
[1].arclen(), 1) and isEqual(sp
[2].arclen(), 0.5) and isEqual(sp
[3].arclen(), 0.5)
80 sp
= np
.split([0, 1, 2])
81 assert len(sp
)==4 and sp
[0] is None and isEqual(sp
[1].arclen(), 1) and isEqual(sp
[2].arclen(), 1) and sp
[3] is None
84 sp
= np
.split([0, 1.5, 2])
85 assert len(sp
)==4 and sp
[0] is None and isEqual(sp
[1].arclen(), 1.5) and isEqual(sp
[2].arclen(), 0.5) and sp
[3] is None
87 sp
= np
.split([0.5, 1, 1.5])
88 assert len(sp
)==4 and isEqual(sp
[0].arclen(), 0.5) and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 0.5) and isEqual(sp
[3].arclen(), 0.5)
90 sp
= np
.split([0.5, 1.5, 2])
91 assert len(sp
)==4 and isEqual(sp
[0].arclen(), 0.5) and isEqual(sp
[1].arclen(), 1) and isEqual(sp
[2].arclen(), 0.5) and sp
[3] is None
93 sp
= np
.split([1, 1.5, 2])
94 assert len(sp
)==4 and isEqual(sp
[0].arclen(), 1) and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 0.5) and sp
[3] is None
97 # four split parameters
98 sp
= np
.split([0, 0.5, 1, 1.5])
99 assert len(sp
)==5 and sp
[0] is None and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 0.5) and isEqual(sp
[3].arclen(), 0.5) and isEqual(sp
[4].arclen(), 0.5)
101 sp
= np
.split([0, 0.5, 1, 2])
102 assert len(sp
)==5 and sp
[0] is None and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 0.5) and isEqual(sp
[3].arclen(), 1) and sp
[4] is None
104 sp
= np
.split([0, 0.5, 1.5, 2])
105 assert len(sp
)==5 and sp
[0] is None and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 1) and isEqual(sp
[3].arclen(), 0.5) and sp
[4] is None
107 sp
= np
.split([0, 1, 1.5, 2])
108 assert len(sp
)==5 and sp
[0] is None and isEqual(sp
[1].arclen(), 1) and isEqual(sp
[2].arclen(), 0.5) and isEqual(sp
[3].arclen(), 0.5) and sp
[4] is None
110 sp
= np
.split([0.5, 1, 1.5, 2])
111 assert len(sp
)==5 and isEqual(sp
[0].arclen(), 0.5) and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 0.5) and isEqual(sp
[3].arclen(), 0.5) and sp
[4] is None
114 # five split parameters
115 sp
= np
.split([0, 0.5, 1, 1.5, 2])
116 assert len(sp
)==6 and sp
[0] is None and isEqual(sp
[1].arclen(), 0.5) and isEqual(sp
[2].arclen(), 0.5) and isEqual(sp
[3].arclen(), 0.5) and isEqual(sp
[4].arclen(), 0.5) and sp
[5] is None
119 if __name__
== "__main__":