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 ..vector import Vector as V
25 from ..rectangle import Rectangle as R
26 from ..verboserectangle import VerboseRectangle
27
30 r = R(V(2, 3), V(3, 4))
31 self.assertEqual(r.bounds, (2, 3, 3, 4))
32
33 r = R(V(-2, -3), V(3, 4))
34 self.assertEqual(r.bounds, (-2, -3, 3, 4))
35
37 r = R(2, 3, 4, 4)
38 self.assertEqual(r.bounds, (2, 3, 4, 4))
39
40 r = R(-5, -5, 2, 2)
41 self.assertEqual(r.bounds, (-5, -5, 2, 2))
42
43
45
47
48 self.r = R(-3, 2, 6, 7)
49
51
52 self.assertEqual(self.r.left, -3)
53 self.assertEqual(self.r.top, 2)
54 self.assertEqual(self.r.right, 6)
55 self.assertEqual(self.r.bottom, 7)
56
57 self.r.left = 2
58 self.r.top = 1
59 self.r.right = 3
60 self.r.bottom = 4
61
62 self.assertEqual(self.r.left, 2)
63 self.assertEqual(self.r.top, 1)
64 self.assertEqual(self.r.right, 3)
65 self.assertEqual(self.r.bottom, 4)
66
68
69 self.assertEqual(self.r.top_left.xy, (-3, 2))
70 self.assertEqual(self.r.top_right.xy, (6, 2))
71 self.assertEqual(self.r.bottom_left.xy, (-3, 7))
72 self.assertEqual(self.r.bottom_right.xy, (6, 7))
73
85
97
99
100 self.r.top_left = V(1, 2)
101 self.r.bottom_right = V(4, 3)
102
103 self.assertEqual(self.r.top_left.xy, (1, 2))
104 self.assertEqual(self.r.top_right.xy, (4, 2))
105 self.assertEqual(self.r.bottom_left.xy, (1, 3))
106 self.assertEqual(self.r.bottom_right.xy, (4, 3))
107
109
110 self.r.top_right = V(4, 2)
111 self.r.bottom_left = V(1, 3)
112
113 self.assertEqual(self.r.top_left.xy, (1, 2))
114 self.assertEqual(self.r.top_right.xy, (4, 2))
115 self.assertEqual(self.r.bottom_left.xy, (1, 3))
116 self.assertEqual(self.r.bottom_right.xy, (4, 3))
117
119
120 self.assertEqual(self.r.center.xy, (1, 4))
121
122 size = self.r.size.copy()
123 pos = self.r.top_left.copy()
124
125 self.r.center = self.r.center
126 self.assertEqual(pos, self.r.top_left)
127 self.assertEqual(size, self.r.size)
128
129 self.r.center = V(0, 0)
130
131 self.assertEqual(self.r.bounds, (-4, -2, 5, 3))
132 self.assertEqual(size, self.r.size)
133
144
155
157
158 self.assertEqual(self.r.bounds, (-3, 2, 6, 7))
159
160 self.r.bounds = (-5, -5, 2, 2)
161 self.assertEqual(self.r.bounds, (-5, -5, 2, 2))
162
163 self.r.bounds = (V(-2, -3), V(3, 4))
164 self.assertEqual(self.r.bounds, (-2, -3, 3, 4))
165
167
168 self.assertTrue(self.r.contains(V(0,3)))
169 self.assertTrue(self.r.contains(V(-3,2)))
170 self.assertFalse(self.r.contains(V(-4,0)))
171 self.assertFalse(self.r.contains(V(0,8)))
172
174
175 self.assertTrue(self.r.overlaps(R(0, 0, 8, 8)))
176
177
178 self.assertFalse(self.r.overlaps(R(-4, 1, -3, 2)))
179
181
182 bounds = self.r.bounds
183
184 self.r.inflate(2)
185 self.assertEqual(self.r.bounds, (-5, 0, 8, 9))
186
187 self.r.inflate(-2)
188 self.assertEqual(self.r.bounds, bounds)
189
190 self.r.inflate(V(2, 1))
191 self.assertEqual(self.r.bounds, (-5, 1, 8, 8))
192
194
195 self.r.move_to(V(5, 8))
196 self.assertEqual(self.r.bounds, (5, 8, 14, 13))
197
199
200 self.r.move_by(V(4, -1))
201 self.assertEqual(self.r.bounds, (1, 1, 10, 6))
202
204
205
206 r2 = R(1, 1, 50, 50)
207 self.r.move_to(V(4, -1))
208 self.assertEqual(r2.bounds, (1, 1, 50, 50))
209
210
216
217
218
219
220
222 unittest.main(__name__)
223