1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 __docformat__ = 'reStructuredText'
20
21 from unittest import TestCase
22 import unittest
23
24 from pytilities.geometry import Vector, BoundVector, ImmutableVector, VerboseVector
30
32
33 self.assertEqual(self.p.x, 0)
34 self.assertEqual(self.p.y, 5)
35 self.assertEqual(self.p.xy, (0, 5))
36
38 self.p.x = 2
39 self.assertEqual(self.p.xy, (2, 5))
40
42 self.p.y = 4
43 self.assertEqual(self.p.xy, (0, 4))
44
46 self.p.move_to(4, 7)
47 self.assertEqual(self.p.xy, (4, 7))
48
50 self.p.move_by(-1, 2)
51 self.assertEqual(self.p.xy, (-1, 7))
52
54 p2 = Vector(2.0, 5.0)
55
56 v = -self.p
57 self.assert_(isinstance(v, Vector))
58 self.assertEqual(v.xy, (0, -5))
59
60 v = self.p + p2
61 self.assert_(isinstance(v, Vector))
62 self.assertEqual(v.xy, (2, 10))
63
64 v = self.p - p2
65 self.assert_(isinstance(v, Vector))
66 self.assertEqual(v.xy, (-2, 0))
67
68 v = self.p * 2
69 self.assert_(isinstance(v, Vector))
70 self.assertEqual(v.xy, (0, 10))
71
72 v = self.p / 2
73 self.assert_(isinstance(v, Vector))
74 self.assertEqual(v.xy, (0, 2))
75
76 v = p2 / 2
77 self.assert_(isinstance(v, Vector))
78 self.assertEqual(v.xy, (1, 2.5))
79
81 if isinstance(self.p, BoundVector):
82 pass
83
84 self.p += self.p2
85 self.assertEqual(self.p.xy, (2, 10))
86
88 self.p -= self.p2
89 self.assertEqual(self.p.xy, (-2, 0))
90
92 self.p *= 2
93 self.assertEqual(self.p.xy, (0, 10))
94
96 self.p /= 2
97 self.assertEqual(self.p.xy, (0, 2))
98
100 clone = self.p.copy()
101 self.assert_(self.p is not clone)
102 self.assert_(isinstance(clone, Vector))
103 self.assertEqual(clone.xy, self.p.xy)
104 self.assertEqual(clone, self.p)
105
107 v = Vector(2, 7)
108 self.p.assign(v)
109 self.assertEqual(self.p.xy, (2, 7))
110
113 @property
116
117 @x.setter
118 - def x(self, value):
120
121 @property
124
125 @y.setter
126 - def y(self, value):
128
130 self.__x = 0
131 self.__y = 5
132 self.p = BoundVector(self, "x", "y")
133
141
143
144 self.p.x = 3
145 self.assertEqual(self.p.xy, (3, 5))
146 self.assertEqual(self.vholder.x, 3)
147
151 a = VHolder()
152 b = VHolder()
153
154 self.assert_(isinstance(a.p, BoundVector))
155 self.assertFalse(a.p is b.p)
156 self.assertEquals(a.p.xy, (0, 5))
157 self.assertEquals(b.p.xy, (0, 5))
158
159 b.p.y = 3
160 self.assertEquals(a.p.xy, (0, 5))
161 self.assertEquals(b.p.xy, (0, 3))
162
163 b.p.assign(Vector(3, 8))
164 self.assertEquals(a.p.xy, (0, 5))
165 self.assertEquals(b.p.xy, (3, 8))
166
172
176
180
184
188
192
196
200
204
208
214