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 as V, Rectangle as R, VerboseRectangle
25
28 r = R(V(2, 3), V(3, 4))
29 self.assertEqual(r.bounds, (2, 3, 3, 4))
30
31 r = R(V(-2, -3), V(3, 4))
32 self.assertEqual(r.bounds, (-2, -3, 3, 4))
33
35 r = R(2, 3, 4, 4)
36 self.assertEqual(r.bounds, (2, 3, 4, 4))
37
38 r = R(-5, -5, 2, 2)
39 self.assertEqual(r.bounds, (-5, -5, 2, 2))
40
41
43
45
46 self.r = R(-3, 2, 6, 7)
47
49
50 self.assertEqual(self.r.left, -3)
51 self.assertEqual(self.r.top, 2)
52 self.assertEqual(self.r.right, 6)
53 self.assertEqual(self.r.bottom, 7)
54
55 self.r.left = 2
56 self.r.top = 1
57 self.r.right = 3
58 self.r.bottom = 4
59
60 self.assertEqual(self.r.left, 2)
61 self.assertEqual(self.r.top, 1)
62 self.assertEqual(self.r.right, 3)
63 self.assertEqual(self.r.bottom, 4)
64
66
67 self.assertEqual(self.r.top_left.xy, (-3, 2))
68 self.assertEqual(self.r.top_right.xy, (6, 2))
69 self.assertEqual(self.r.bottom_left.xy, (-3, 7))
70 self.assertEqual(self.r.bottom_right.xy, (6, 7))
71
83
95
97
98 self.r.top_left = V(1, 2)
99 self.r.bottom_right = V(4, 3)
100
101 self.assertEqual(self.r.top_left.xy, (1, 2))
102 self.assertEqual(self.r.top_right.xy, (4, 2))
103 self.assertEqual(self.r.bottom_left.xy, (1, 3))
104 self.assertEqual(self.r.bottom_right.xy, (4, 3))
105
107
108 self.r.top_right = V(4, 2)
109 self.r.bottom_left = V(1, 3)
110
111 self.assertEqual(self.r.top_left.xy, (1, 2))
112 self.assertEqual(self.r.top_right.xy, (4, 2))
113 self.assertEqual(self.r.bottom_left.xy, (1, 3))
114 self.assertEqual(self.r.bottom_right.xy, (4, 3))
115
117
118 self.assertEqual(self.r.center.xy, (1, 4))
119
120 size = self.r.size.copy()
121 pos = self.r.top_left.copy()
122
123 self.r.center = self.r.center
124 self.assertEqual(pos, self.r.top_left)
125 self.assertEqual(size, self.r.size)
126
127 self.r.center = V(0, 0)
128
129 self.assertEqual(self.r.bounds, (-4, -2, 5, 3))
130 self.assertEqual(size, self.r.size)
131
142
153
155
156 self.assertEqual(self.r.bounds, (-3, 2, 6, 7))
157
158 self.r.bounds = (-5, -5, 2, 2)
159 self.assertEqual(self.r.bounds, (-5, -5, 2, 2))
160
161 self.r.bounds = (V(-2, -3), V(3, 4))
162 self.assertEqual(self.r.bounds, (-2, -3, 3, 4))
163
165
166 self.assertTrue(self.r.contains(V(0,3)))
167 self.assertTrue(self.r.contains(V(-3,2)))
168 self.assertFalse(self.r.contains(V(-4,0)))
169 self.assertFalse(self.r.contains(V(0,8)))
170
172
173 self.assertTrue(self.r.overlaps(R(0, 0, 8, 8)))
174
175
176 self.assertFalse(self.r.overlaps(R(-4, 1, -3, 2)))
177
179
180 bounds = self.r.bounds
181
182 self.r.inflate(2)
183 self.assertEqual(self.r.bounds, (-5, 0, 8, 9))
184
185 self.r.inflate(-2)
186 self.assertEqual(self.r.bounds, bounds)
187
188 self.r.inflate(V(2, 1))
189 self.assertEqual(self.r.bounds, (-5, 1, 8, 8))
190
192
193 self.r.move_to(V(5, 8))
194 self.assertEqual(self.r.bounds, (5, 8, 14, 13))
195
197
198 self.r.move_by(V(4, -1))
199 self.assertEqual(self.r.bounds, (1, 1, 10, 6))
200
202
203
204 r2 = R(1, 1, 50, 50)
205 self.r.move_to(V(4, -1))
206 self.assertEqual(r2.bounds, (1, 1, 50, 50))
207
208
214
215
216
217