Skip to content

Commit 06a0c18

Browse files
authored
Merge pull request #3190 from Borishkof/rect_test
better rect tests using literal values
2 parents ab1e929 + 19cb1a1 commit 06a0c18

File tree

1 file changed

+72
-28
lines changed

1 file changed

+72
-28
lines changed

test/rect_test.py

Lines changed: 72 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,50 @@ def testCalculatedAttributes(self):
5252
self.assertEqual((r.left, r.centery), r.midleft)
5353
self.assertEqual((r.right, r.centery), r.midright)
5454

55+
def testAttributes(self):
56+
"""Checks that all the attributes are initialized correctly."""
57+
r = Rect(1, 2, 3, 4)
58+
59+
self.assertEqual(1, r.left)
60+
self.assertEqual(2, r.top)
61+
self.assertEqual(4, r.right)
62+
self.assertEqual(6, r.bottom)
63+
64+
self.assertEqual(1, r.x)
65+
self.assertEqual(2, r.y)
66+
67+
self.assertEqual(3, r.w)
68+
self.assertEqual(4, r.h)
69+
70+
self.assertEqual((1, 2), r.topleft)
71+
self.assertEqual((4, 2), r.topright)
72+
self.assertEqual((1, 6), r.bottomleft)
73+
self.assertEqual((4, 6), r.bottomright)
74+
75+
self.assertEqual((3, 4), r.size)
76+
self.assertEqual(3, r.width)
77+
self.assertEqual(4, r.height)
78+
79+
if isinstance(r, FRect):
80+
self.assertEqual(2.5, r.centerx)
81+
self.assertEqual(4, r.centery)
82+
self.assertEqual((2.5, 4), r.center)
83+
84+
self.assertEqual((2.5, 2), r.midtop)
85+
self.assertEqual((2.5, 6), r.midbottom)
86+
self.assertEqual((1, 4), r.midleft)
87+
self.assertEqual((4, 4), r.midright)
88+
89+
elif isinstance(r, Rect):
90+
self.assertEqual(2, r.centerx)
91+
self.assertEqual(4, r.centery)
92+
self.assertEqual((2, 4), r.center)
93+
94+
self.assertEqual((2, 2), r.midtop)
95+
self.assertEqual((2, 6), r.midbottom)
96+
self.assertEqual((1, 4), r.midleft)
97+
self.assertEqual((4, 4), r.midright)
98+
5599
def testRepr(self):
56100
rect = Rect(12, 34, 56, 78)
57101
self.assertEqual(repr(rect), "Rect(12, 34, 56, 78)")
@@ -777,27 +821,27 @@ def test_inflate__larger(self):
777821
r = Rect(2, 4, 6, 8)
778822
r2 = r.inflate(4, 6)
779823

780-
self.assertEqual(r.center, r2.center)
781-
self.assertEqual(r.left - 2, r2.left)
782-
self.assertEqual(r.top - 3, r2.top)
783-
self.assertEqual(r.right + 2, r2.right)
784-
self.assertEqual(r.bottom + 3, r2.bottom)
785-
self.assertEqual(r.width + 4, r2.width)
786-
self.assertEqual(r.height + 6, r2.height)
824+
self.assertEqual(r2.center, (5, 8))
825+
self.assertEqual(r2.left, 0)
826+
self.assertEqual(r2.top, 1)
827+
self.assertEqual(r2.right, 10)
828+
self.assertEqual(r2.bottom, 15)
829+
self.assertEqual(r2.width, 10)
830+
self.assertEqual(r2.height, 14)
787831

788832
def test_inflate__smaller(self):
789833
"""Ensures deflating a rect keeps its center the same
790834
and shrinks dimensions by correct values."""
791835
r = Rect(2, 4, 6, 8)
792836
r2 = r.inflate(-4, -6)
793837

794-
self.assertEqual(r.center, r2.center)
795-
self.assertEqual(r.left + 2, r2.left)
796-
self.assertEqual(r.top + 3, r2.top)
797-
self.assertEqual(r.right - 2, r2.right)
798-
self.assertEqual(r.bottom - 3, r2.bottom)
799-
self.assertEqual(r.width - 4, r2.width)
800-
self.assertEqual(r.height - 6, r2.height)
838+
self.assertEqual((5, 8), r2.center)
839+
self.assertEqual(4, r2.left)
840+
self.assertEqual(7, r2.top)
841+
self.assertEqual(6, r2.right)
842+
self.assertEqual(9, r2.bottom)
843+
self.assertEqual(2, r2.width)
844+
self.assertEqual(2, r2.height)
801845

802846
def test_inflate_ip__larger(self):
803847
"""Ensures inflating a rect in place keeps its center the same
@@ -806,13 +850,13 @@ def test_inflate_ip__larger(self):
806850
r2 = Rect(r)
807851
r2.inflate_ip(4, 6)
808852

809-
self.assertEqual(r.center, r2.center)
810-
self.assertEqual(r.left - 2, r2.left)
811-
self.assertEqual(r.top - 3, r2.top)
812-
self.assertEqual(r.right + 2, r2.right)
813-
self.assertEqual(r.bottom + 3, r2.bottom)
814-
self.assertEqual(r.width + 4, r2.width)
815-
self.assertEqual(r.height + 6, r2.height)
853+
self.assertEqual(r2.center, (5, 8))
854+
self.assertEqual(r2.left, 0)
855+
self.assertEqual(r2.top, 1)
856+
self.assertEqual(r2.right, 10)
857+
self.assertEqual(r2.bottom, 15)
858+
self.assertEqual(r2.width, 10)
859+
self.assertEqual(r2.height, 14)
816860

817861
def test_inflate_ip__smaller(self):
818862
"""Ensures deflating a rect in place keeps its center the same
@@ -821,13 +865,13 @@ def test_inflate_ip__smaller(self):
821865
r2 = Rect(r)
822866
r2.inflate_ip(-4, -6)
823867

824-
self.assertEqual(r.center, r2.center)
825-
self.assertEqual(r.left + 2, r2.left)
826-
self.assertEqual(r.top + 3, r2.top)
827-
self.assertEqual(r.right - 2, r2.right)
828-
self.assertEqual(r.bottom - 3, r2.bottom)
829-
self.assertEqual(r.width - 4, r2.width)
830-
self.assertEqual(r.height - 6, r2.height)
868+
self.assertEqual(r2.center, (5, 8))
869+
self.assertEqual(r2.left, 4)
870+
self.assertEqual(r2.top, 7)
871+
self.assertEqual(r2.right, 6)
872+
self.assertEqual(r2.bottom, 9)
873+
self.assertEqual(r2.width, 2)
874+
self.assertEqual(r2.height, 2)
831875

832876
def test_scale_by__larger_single_argument(self):
833877
"""The scale method scales around the center of the rectangle"""

0 commit comments

Comments
 (0)