132 typename TestFixture::CRect a(0, 0, 10, 10), a2(a), b(-5, -5, 5, 5);
133 typename TestFixture::OptCRect empty, oa = a;
135 EXPECT_TRUE (a == a);
136 EXPECT_FALSE(a != a);
137 EXPECT_TRUE (a == a2);
138 EXPECT_FALSE(a != a2);
139 EXPECT_TRUE (empty == empty);
140 EXPECT_FALSE(empty != empty);
141 EXPECT_FALSE(a == empty);
142 EXPECT_TRUE (a != empty);
143 EXPECT_FALSE(empty == a);
144 EXPECT_TRUE (empty != a);
145 EXPECT_FALSE(a == b);
146 EXPECT_TRUE (a != b);
147 EXPECT_TRUE (a == oa);
148 EXPECT_FALSE(a != oa);
152 typename TestFixture::CRect a(0, 0, 10, 10), b(-5, -5, 5, 5),
c(-10, -10, -1, -1), d(1, 1, 9, 9);
153 typename TestFixture::OptCRect empty, oa(a), oc(
c), od(d);
154 EXPECT_TRUE(a.intersects(a));
155 EXPECT_TRUE(a.intersects(b));
156 EXPECT_TRUE(b.intersects(a));
157 EXPECT_TRUE(b.intersects(
c));
158 EXPECT_TRUE(
c.intersects(b));
159 EXPECT_TRUE(a.intersects(d));
160 EXPECT_TRUE(d.intersects(a));
161 EXPECT_FALSE(a.intersects(
c));
162 EXPECT_FALSE(
c.intersects(a));
163 EXPECT_FALSE(
c.intersects(d));
164 EXPECT_FALSE(empty.intersects(empty));
165 EXPECT_FALSE(empty.intersects(oa));
166 EXPECT_FALSE(oa.intersects(empty));
167 EXPECT_TRUE(oa.intersects(od));
168 EXPECT_FALSE(oa.intersects(oc));
176 typename TestFixture::CRect a(10, 20, 55, 30), b(45, 20, 100,30);
177 typename TestFixture::OptCRect empty, oa(a), ob(b);
178 EXPECT_TRUE(a.intersects(a));
179 EXPECT_TRUE(a.intersects(b));
180 EXPECT_TRUE(b.intersects(a));
181 EXPECT_TRUE(oa.intersects(oa));
182 EXPECT_TRUE(oa.intersects(ob));
183 EXPECT_TRUE(ob.intersects(oa));
187 typename TestFixture::CRect a(0, 0, 10, 10), b(-5, -5, 5, 5),
c(-10, -10, -1, -1), d(1, 1, 9, 9);
188 typename TestFixture::CRect int_ab(0, 0, 5, 5), int_bc(-5, -5, -1, -1);
189 typename TestFixture::OptCRect empty, oa(a), ob(b);
192 EXPECT_EQ(a & b, int_ab);
193 EXPECT_EQ(b &
c, int_bc);
196 EXPECT_EQ(a &
c, empty);
198 EXPECT_EQ(a & empty, empty);
199 EXPECT_EQ(empty & empty, empty);
202 EXPECT_EQ(oa, int_ab);
205 EXPECT_EQ(oa, int_ab);
208 EXPECT_EQ(oa, empty);
212 typename TestFixture::CRect a(0, 0, 10, 10), b(-5, -5, 5, 5),
c(-10, -10, -1, -1), d(1, 1, 9, 9);
213 typename TestFixture::CRect int_ab(0, 0, 5, 5), int_bc(-5, -5, -1, -1);
214 typename TestFixture::OptCRect empty, oa(a), od(d);
215 EXPECT_TRUE(a.contains(a));
216 EXPECT_FALSE(a.contains(b));
217 EXPECT_FALSE(b.contains(a));
218 EXPECT_FALSE(a.contains(
c));
219 EXPECT_FALSE(
c.contains(a));
220 EXPECT_TRUE(a.contains(d));
221 EXPECT_FALSE(d.contains(a));
222 EXPECT_TRUE(a.contains(int_ab));
223 EXPECT_TRUE(b.contains(int_ab));
224 EXPECT_TRUE(b.contains(int_bc));
225 EXPECT_TRUE(
c.contains(int_bc));
226 EXPECT_FALSE(int_ab.contains(a));
227 EXPECT_FALSE(int_ab.contains(b));
228 EXPECT_FALSE(int_bc.contains(b));
229 EXPECT_FALSE(int_bc.contains(
c));
230 EXPECT_FALSE(empty.contains(empty));
231 EXPECT_FALSE(empty.contains(od));
232 EXPECT_TRUE(oa.contains(empty));
233 EXPECT_TRUE(oa.contains(od));
234 EXPECT_FALSE(od.contains(oa));
238 typename TestFixture::CRect a(0, 0, 10, 10), old_a(a), b(-5, -5, 5, 5),
c(-10, -10, -1, -1), d(1, 1, 9, 9);
239 typename TestFixture::CRect int_ab(0, 0, 5, 5), int_bc(-5, -5, -1, -1);
240 typename TestFixture::CRect uni_ab(-5, -5, 10, 10), uni_bc(-10, -10, 5, 5);
241 typename TestFixture::OptCRect empty, oa(a), ob(b);
242 EXPECT_EQ(a | b, uni_ab);
243 EXPECT_EQ(b |
c, uni_bc);
246 EXPECT_EQ(a | int_ab, a);
247 EXPECT_EQ(b | int_ab, b);
248 EXPECT_EQ(uni_ab | a, uni_ab);
249 EXPECT_EQ(uni_bc |
c, uni_bc);
250 EXPECT_EQ(a | empty, a);
251 EXPECT_EQ(empty | empty, empty);
254 EXPECT_EQ(a, uni_ab);
257 EXPECT_EQ(a, uni_ab);
262 EXPECT_EQ(oa, uni_ab);
265 EXPECT_EQ(oa, uni_ab);
269 typename TestFixture::CRect a(0, 0, 10, 10), b(-5, -5, 5, 5),
c(-10, -10, -1, -1), d(1, 1, 9, 9);
270 typename TestFixture::CRect zero(0,0,0,0);
271 EXPECT_EQ(a.area(), 100);
272 EXPECT_EQ(a.area(), a.width() * a.height());
273 EXPECT_EQ(b.area(), 100);
274 EXPECT_EQ(
c.area(), 81);
275 EXPECT_EQ(d.area(), 64);
276 EXPECT_FALSE(a.hasZeroArea());
277 EXPECT_TRUE(zero.hasZeroArea());
281 typename TestFixture::OptCRect empty, oa(0, 0, 10, 10);
282 EXPECT_TRUE(empty.empty());
285 EXPECT_FALSE(oa.empty());
291 typedef typename TestFixture::CPoint CPoint;
292 typename TestFixture::CRect a(-10, -20, 10, 20), b(-15, 30, 45, 90);
293 EXPECT_EQ(a.width(), 20);
294 EXPECT_EQ(a.height(), 40);
295 EXPECT_EQ(a.left(), -10);
296 EXPECT_EQ(a.top(), -20);
297 EXPECT_EQ(a.right(), 10);
298 EXPECT_EQ(a.bottom(), 20);
299 EXPECT_EQ(a.min(), CPoint(-10, -20));
300 EXPECT_EQ(a.max(), CPoint(10, 20));
301 EXPECT_EQ(a.minExtent(), a.width());
302 EXPECT_EQ(a.maxExtent(), a.height());
303 EXPECT_EQ(a.dimensions(), CPoint(20, 40));
304 EXPECT_EQ(a.midpoint(), CPoint(0, 0));
306 EXPECT_EQ(b.width(), 60);
307 EXPECT_EQ(b.height(), 60);
308 EXPECT_EQ(b.left(), -15);
309 EXPECT_EQ(b.top(), 30);
310 EXPECT_EQ(b.right(), 45);
311 EXPECT_EQ(b.bottom(), 90);
312 EXPECT_EQ(b.min(), CPoint(-15, 30));
313 EXPECT_EQ(b.max(), CPoint(45, 90));
314 EXPECT_EQ(b.minExtent(), b.maxExtent());
315 EXPECT_EQ(b.dimensions(), CPoint(60, 60));
316 EXPECT_EQ(b.midpoint(), CPoint(15, 60));
320 typedef typename TestFixture::CRect CRect;
321 typedef typename TestFixture::OptCRect OptCRect;
322 typedef typename TestFixture::CPoint CPoint;
323 CRect a(-1, -1, 1, 1);
325 EXPECT_EQ(a, CRect(-10, -10, 10, 10));
326 a.setMin(CPoint(0, 0));
327 EXPECT_EQ(a, CRect(0, 0, 10, 10));
328 a.setMax(CPoint(20, 30));
329 EXPECT_EQ(a, CRect(0, 0, 20, 30));
330 a.setMax(CPoint(-5, -5));
331 EXPECT_EQ(a, CRect(-5, -5, -5, -5));
332 a.expandTo(CPoint(5, 5));
333 EXPECT_EQ(a, CRect(-5, -5, 5, 5));
334 a.expandTo(CPoint(0, 0));
335 EXPECT_EQ(a, CRect(-5, -5, 5, 5));
336 a.expandTo(CPoint(0, 15));
337 EXPECT_EQ(a, CRect(-5, -5, 5, 15));
339 EXPECT_EQ(a, CRect(0, 5, 0, 5));
340 EXPECT_EQ(a.midpoint(), CPoint(0, 5));
341 a.unionWith(CRect(-20, 0, -10, 20));
342 EXPECT_EQ(a, CRect(-20, 0, 0, 20));
344 oa.intersectWith(CRect(-10, -5, 5, 15));
345 EXPECT_EQ(oa, OptCRect(-10, 0, 0, 15));
357 typename TestFixture::CRect a(0, 0, 5, 5), old_a(a), app1(-5, 0, 0, 5), amp1(5, 0, 10, 5),
358 app2(5, -10, 10, -5), amp2(-5, 10, 0, 15);
359 typename TestFixture::CPoint p1(-5, 0), p2(5, -10);
360 EXPECT_EQ(a + p1, app1);
361 EXPECT_EQ(a + p2, app2);
362 EXPECT_EQ(a - p1, amp1);
363 EXPECT_EQ(a - p2, amp2);
379 typename TestFixture::CRect a(0, 0, 10, 10);
380 typename TestFixture::CPoint p1(-5, 5), p2(15, 17), p3(6, 5), p4(3, 9);
381 typename TestFixture::CPoint r1(0, 5), r2(10, 10), r3(10, 5), r4(3, 10);
383 EXPECT_EQ(a.nearestEdgePoint(p1), r1);
384 EXPECT_EQ(a.nearestEdgePoint(p2), r2);
385 EXPECT_EQ(a.nearestEdgePoint(p3), r3);
386 EXPECT_EQ(a.nearestEdgePoint(p4), r4);