def testUnion(self): ra = Rect(0, 0, 10, 10) rb = Rect(-10, -10, 1, 1) x, y, w, h = ra.union(rb).extent() self.assertEquals(x, -10) self.assertEquals(y, -10) self.assertEquals(w, 20) self.assertEquals(h, 20) for i in range(1000): a, b = G.rect(), G.rect() u = a.union(b) self.assertTrue(a.intersect(u).area() > 0) self.assertTrue(u.intersect(a).area() > 0) self.assertTrue(b.intersect(u).area() > 0) self.assertTrue(u.intersect(b).area() > 0) self.assertTrue( u.area() >= (max(a.area(), b.area())), "union area (iter %d) fail %f >= %f" % (i, u.area(), (max(a.area(), b.area())))) c, d = G.disjointPair() u2 = c.union(d) self.assertTrue(c.intersect(u2).area() > 0) self.assertTrue(u2.intersect(c).area() > 0) self.assertTrue(d.intersect(u2).area() > 0) self.assertTrue(u2.intersect(d).area() > 0) self.assertTrue(u2.area() > c.area()) self.assertTrue(u2.area() > d.area()) self.assertTrue(u2.area() >= (c.area() + d.area()))
def testUnion(self): ra = Rect(0,0,10,10) rb = Rect(-10,-10,1,1) x,y,w,h = ra.union(rb).extent() self.assertEquals(x,-10) self.assertEquals(y,-10) self.assertEquals(w,20) self.assertEquals(h,20) for i in range(1000): a,b = G.rect(),G.rect() u = a.union(b) self.assertTrue(a.intersect(u).area() > 0) self.assertTrue(u.intersect(a).area() > 0) self.assertTrue(b.intersect(u).area() > 0) self.assertTrue(u.intersect(b).area() > 0) self.assertTrue(u.area() >= (max(a.area(),b.area())), "union area (iter %d) fail %f >= %f" % (i,u.area(),(max(a.area(),b.area())))) c,d = G.disjointPair() u2 = c.union(d) self.assertTrue(c.intersect(u2).area() > 0) self.assertTrue(u2.intersect(c).area() > 0) self.assertTrue(d.intersect(u2).area() > 0) self.assertTrue(u2.intersect(d).area() > 0) self.assertTrue(u2.area() > c.area()) self.assertTrue(u2.area() > d.area()) self.assertTrue(u2.area() >= (c.area() + d.area()))