def test_rect(self): P = Rect(0.298, 2, 4, 5) self.interval_basic(P[0], P[1]) G = Rect(sqrt(2), sqrt(2), sqrt(3), sqrt(3)) H = Rect.from_xywh(3.43232, 9.23214, 21.523, -0.31232) self.rect_basic(P, G) self.rect_basic(G, H) lst = [Point(randint(-100, 100), randint(-100, 100)) for i in range(10)] R = Rect.from_list(lst) for p in lst: self.assertTrue(R.contains(p)) self.assertAlmostEqual(min(lst).y, R.min().y) self.assertAlmostEqual(max(lst).y, R.max().y)
def test_optRect(self): P = OptRect(0.298, 2, 4, 5) self.interval_basic(P.Rect[0], P.Rect[1]) G = Rect(sqrt(2), sqrt(2), sqrt(3), sqrt(3)) H = OptRect.from_rect(G) self.rect_basic(P.Rect, G) lst = [Point(randint(-100, 100), randint(-100, 100)) for i in range(10)] R = OptRect.from_list(lst) for p in lst: self.assertTrue(R.Rect.contains(p)) self.assertAlmostEqual(min(lst).y, R.Rect.min().y) self.assertAlmostEqual(max(lst).y, R.Rect.max().y) Q = OptRect() self.assertFalse(Q) self.assertTrue(P) self.assertTrue(Q.is_empty()) self.assertFalse(P.is_empty()) self.assertTrue(P.contains_rect( P )) self.assertTrue(P.contains_rect(Q)) self.assertFalse(Q.contains_rect(P)) self.assertFalse(P.intersects(Q)) self.assertTrue(P.contains_rect(P.Rect)) self.assertTrue(P.contains(P.Rect.midpoint())) self.assertEqual(P, OptRect.from_rect(P)) P.union_with(G) P.union_with(H) self.assertTrue(P.contains_rect(H)) P.intersect_with(G) self.assertEqual(P, G) self.assertEqual( P|H, G ) self.assertEqual( (P|R).Rect.min().x , min( P.Rect.min().x, R.Rect.min().x )) self.assertFalse(P & Q) self.assertEqual(P, P&P) self.assertEqual( P & (R | H), (P & R) | (P & H) )