Пример #1
0
 def test_move(self):
     r = Rect(1, 2, 3, 4)
     move_x = 10
     move_y = 20
     r2 = r.move(move_x, move_y)
     expected_r2 = Rect(r.left + move_x, r.top + move_y, r.width, r.height)
     self.assertEqual(expected_r2, r2)
Пример #2
0
 def test_unionall_ip( self ):
     r1 = Rect( 0, 0, 1, 1 )
     r2 = Rect( -2, -2, 1, 1 )
     r3 = Rect( 2, 2, 1, 1 )
     
     r1.unionall_ip( [r2,r3] )
     self.assertEqual( Rect(-2, -2, 5, 5), r1 )
Пример #3
0
 def test_move( self ):
     r = Rect( 1, 2, 3, 4 )
     move_x = 10
     move_y = 20
     r2 = r.move( move_x, move_y )
     expected_r2 = Rect(r.left+move_x,r.top+move_y,r.width,r.height)
     self.assertEqual( expected_r2, r2 )
Пример #4
0
    def test_unionall_ip(self):
        r1 = Rect(0, 0, 1, 1)
        r2 = Rect(-2, -2, 1, 1)
        r3 = Rect(2, 2, 1, 1)

        r1.unionall_ip([r2, r3])
        self.assertEqual(Rect(-2, -2, 5, 5), r1)
Пример #5
0
    def test_collidedictall(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.collidedictall:

        # Rect.collidedictall(dict): return [(key, value), ...]
        # test if all rectangles in a dictionary intersect
        #
        # Returns a list of all the key and value pairs that intersect with
        # the Rect. If no collisions are found an empty dictionary is
        # returned.
        #
        # Rect objects are not hashable and cannot be used as keys in a
        # dictionary, only as values.

        r = Rect(1, 1, 10, 10)

        r2 = Rect(1, 1, 10, 10)
        r3 = Rect(5, 5, 10, 10)
        r4 = Rect(10, 10, 10, 10)
        r5 = Rect(50, 50, 10, 10)

        rects_values = 1
        d = {2: r2}
        l = r.collidedictall(d, rects_values)
        self.assertEqual(l, [(2, r2)])

        d2 = {2: r2, 3: r3, 4: r4, 5: r5}
        l2 = r.collidedictall(d2, rects_values)
        self.assertEqual(l2, [(2, r2), (3, r3), (4, r4)])
Пример #6
0
    def test_collidedictall(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.collidedictall:

          # Rect.collidedictall(dict): return [(key, value), ...]
          # test if all rectangles in a dictionary intersect
          # 
          # Returns a list of all the key and value pairs that intersect with
          # the Rect. If no collisions are found an empty dictionary is
          # returned.
          # 
          # Rect objects are not hashable and cannot be used as keys in a
          # dictionary, only as values.

        r = Rect(1, 1, 10, 10)

        r2 = Rect(1, 1, 10, 10)
        r3 = Rect(5, 5, 10, 10)
        r4 = Rect(10, 10, 10, 10)
        r5 = Rect(50, 50, 10, 10)

        rects_values = 1
        d = {2: r2}
        l = r.collidedictall(d, rects_values)
        self.assertEqual(l, [(2, r2)])

        d2 = {2: r2, 3: r3, 4: r4, 5: r5}
        l2 = r.collidedictall(d2, rects_values)
        self.assertEqual(l2, [(2, r2), (3, r3), (4, r4)])
Пример #7
0
 def test_normalize( self ):
     r = Rect( 1, 2, -3, -6 )
     r2 = Rect(r)
     r2.normalize()
     self.assertTrue( r2.width >= 0 )
     self.assertTrue( r2.height >= 0 )
     self.assertEqual( (abs(r.width),abs(r.height)), r2.size )
     self.assertEqual( (-2,-4), r2.topleft )
Пример #8
0
 def test_normalize(self):
     r = Rect(1, 2, -3, -6)
     r2 = Rect(r)
     r2.normalize()
     self.assertTrue(r2.width >= 0)
     self.assertTrue(r2.height >= 0)
     self.assertEqual((abs(r.width), abs(r.height)), r2.size)
     self.assertEqual((-2, -4), r2.topleft)
Пример #9
0
    def test_size(self):
        "Changing the size resizes the rect from the top-left corner"
        r = Rect(1, 2, 3, 4)
        new_size = (10, 20)
        old_topleft = r.topleft

        r.size = new_size
        self.assertEqual(new_size, r.size)
        self.assertEqual(old_topleft, r.topleft)
Пример #10
0
 def test_size( self ):
     "Changing the size resizes the rect from the top-left corner"
     r = Rect( 1, 2, 3, 4 )
     new_size = (10,20)
     old_topleft = r.topleft
     
     r.size = new_size
     self.assertEqual( new_size, r.size )
     self.assertEqual( old_topleft, r.topleft )
Пример #11
0
 def test_left( self ):
     """Changing the left attribute moves the rect and does not change
        the rect's width
     """
     r = Rect( 1, 2, 3, 4 )
     new_left = 10
     
     r.left = new_left
     self.assertEqual( new_left, r.left )
     self.assertEqual( Rect(new_left,2,3,4), r )
Пример #12
0
 def test_top( self ):
     """Changing the top attribute moves the rect and does not change
        the rect's width
     """
     r = Rect( 1, 2, 3, 4 )
     new_top = 10
     
     r.top = new_top
     self.assertEqual( Rect(1,new_top,3,4), r )
     self.assertEqual( new_top, r.top )
Пример #13
0
    def test_top(self):
        """Changing the top attribute moves the rect and does not change
           the rect's width
        """
        r = Rect(1, 2, 3, 4)
        new_top = 10

        r.top = new_top
        self.assertEqual(Rect(1, new_top, 3, 4), r)
        self.assertEqual(new_top, r.top)
Пример #14
0
    def test_left(self):
        """Changing the left attribute moves the rect and does not change
           the rect's width
        """
        r = Rect(1, 2, 3, 4)
        new_left = 10

        r.left = new_left
        self.assertEqual(new_left, r.left)
        self.assertEqual(Rect(new_left, 2, 3, 4), r)
Пример #15
0
    def test_topleft(self):
        """Changing the topleft attribute moves the rect and does not change
           the rect's size
        """
        r = Rect(1, 2, 3, 4)
        new_topleft = (r.left + 20, r.top + 30)
        old_size = r.size

        r.topleft = new_topleft
        self.assertEqual(new_topleft, r.topleft)
        self.assertEqual(old_size, r.size)
Пример #16
0
 def test_height( self ):
     "Changing the height resizes the rect from the top-left corner"
     r = Rect( 1, 2, 3, 4 )
     new_height = 10
     old_topleft = r.topleft
     old_width = r.width
     
     r.height = new_height
     self.assertEqual( new_height, r.height )
     self.assertEqual( old_width, r.width )
     self.assertEqual( old_topleft, r.topleft )
Пример #17
0
    def test_height(self):
        "Changing the height resizes the rect from the top-left corner"
        r = Rect(1, 2, 3, 4)
        new_height = 10
        old_topleft = r.topleft
        old_width = r.width

        r.height = new_height
        self.assertEqual(new_height, r.height)
        self.assertEqual(old_width, r.width)
        self.assertEqual(old_topleft, r.topleft)
Пример #18
0
 def test_topleft( self ):
     """Changing the topleft attribute moves the rect and does not change
        the rect's size
     """
     r = Rect( 1, 2, 3, 4 )
     new_topleft = (r.left+20,r.top+30)
     old_size = r.size
     
     r.topleft = new_topleft
     self.assertEqual( new_topleft, r.topleft )
     self.assertEqual( old_size, r.size )
Пример #19
0
    def test_inflate__larger( self ):
        "The inflate method inflates around the center of the rectangle"
        r = Rect( 2, 4, 6, 8 )
        r2 = r.inflate( 4, 6 )

        self.assertEqual( r.center, r2.center )        
        self.assertEqual( r.left-2, r2.left )
        self.assertEqual( r.top-3, r2.top )
        self.assertEqual( r.right+2, r2.right )
        self.assertEqual( r.bottom+3, r2.bottom )
        self.assertEqual( r.width+4, r2.width )
        self.assertEqual( r.height+6, r2.height )
Пример #20
0
    def test_inflate__larger(self):
        "The inflate method inflates around the center of the rectangle"
        r = Rect(2, 4, 6, 8)
        r2 = r.inflate(4, 6)

        self.assertEqual(r.center, r2.center)
        self.assertEqual(r.left - 2, r2.left)
        self.assertEqual(r.top - 3, r2.top)
        self.assertEqual(r.right + 2, r2.right)
        self.assertEqual(r.bottom + 3, r2.bottom)
        self.assertEqual(r.width + 4, r2.width)
        self.assertEqual(r.height + 6, r2.height)
Пример #21
0
    def test_inflate__smaller(self):
        "The inflate method inflates around the center of the rectangle"
        r = Rect(2, 4, 6, 8)
        r2 = r.inflate(-4, -6)

        self.assertEqual(r.center, r2.center)
        self.assertEqual(r.left + 2, r2.left)
        self.assertEqual(r.top + 3, r2.top)
        self.assertEqual(r.right - 2, r2.right)
        self.assertEqual(r.bottom - 3, r2.bottom)
        self.assertEqual(r.width - 4, r2.width)
        self.assertEqual(r.height - 6, r2.height)
Пример #22
0
    def test_inflate__smaller( self ):
        "The inflate method inflates around the center of the rectangle"
        r = Rect( 2, 4, 6, 8 )
        r2 = r.inflate( -4, -6 )

        self.assertEqual( r.center, r2.center )        
        self.assertEqual( r.left+2, r2.left )
        self.assertEqual( r.top+3, r2.top )
        self.assertEqual( r.right-2, r2.right )
        self.assertEqual( r.bottom-3, r2.bottom )
        self.assertEqual( r.width-4, r2.width )
        self.assertEqual( r.height-6, r2.height )
Пример #23
0
 def test_midbottom( self ):
     """Changing the midbottom attribute moves the rect and does not change
        the rect's size
     """
     r = Rect( 1, 2, 3, 4 )
     new_midbottom = (r.centerx+20,r.bottom+30)
     expected_topleft = (r.left+20,r.top+30)
     old_size = r.size
     
     r.midbottom = new_midbottom
     self.assertEqual( new_midbottom, r.midbottom )
     self.assertEqual( expected_topleft, r.topleft )
     self.assertEqual( old_size, r.size )
Пример #24
0
 def test_midright( self ):
     """Changing the midright attribute moves the rect and does not change
        the rect's size
     """
     r = Rect( 1, 2, 3, 4 )
     new_midright= (r.right+20,r.centery+30)
     expected_topleft = (r.left+20,r.top+30)
     old_size = r.size
     
     r.midright = new_midright
     self.assertEqual( new_midright, r.midright )
     self.assertEqual( expected_topleft, r.topleft )
     self.assertEqual( old_size, r.size )
Пример #25
0
 def test_center( self ):
     """Changing the center attribute moves the rect and does not change
        the rect's size
     """
     r = Rect( 1, 2, 3, 4 )
     new_center = (r.centerx+20,r.centery+30)
     expected_topleft = (r.left+20,r.top+30)
     old_size = r.size
     
     r.center = new_center
     self.assertEqual( new_center, r.center )
     self.assertEqual( expected_topleft, r.topleft )
     self.assertEqual( old_size, r.size )
Пример #26
0
 def test_bottom( self ):
     """Changing the bottom attribute moves the rect and does not change
        the rect's height
     """
     r = Rect( 1, 2, 3, 4 )
     new_bottom = r.bottom + 20
     expected_top = r.top + 20
     old_height = r.height
     
     r.bottom = new_bottom
     self.assertEqual( new_bottom, r.bottom )
     self.assertEqual( expected_top, r.top )
     self.assertEqual( old_height, r.height )
Пример #27
0
    def test_centerx(self):
        """Changing the centerx attribute moves the rect and does not change
           the rect's width
        """
        r = Rect(1, 2, 3, 4)
        new_centerx = r.centerx + 20
        expected_left = r.left + 20
        old_width = r.width

        r.centerx = new_centerx
        self.assertEqual(new_centerx, r.centerx)
        self.assertEqual(expected_left, r.left)
        self.assertEqual(old_width, r.width)
Пример #28
0
 def test_centerx( self ):
     """Changing the centerx attribute moves the rect and does not change
        the rect's width
     """
     r = Rect( 1, 2, 3, 4 )
     new_centerx = r.centerx + 20
     expected_left = r.left + 20
     old_width = r.width
     
     r.centerx = new_centerx
     self.assertEqual( new_centerx, r.centerx )
     self.assertEqual( expected_left, r.left )
     self.assertEqual( old_width, r.width )
Пример #29
0
 def test_right( self ):
     """Changing the right attribute moves the rect and does not change
        the rect's width
     """
     r = Rect( 1, 2, 3, 4 )
     new_right = r.right + 20
     expected_left = r.left + 20
     old_width = r.width
     
     r.right = new_right
     self.assertEqual( new_right, r.right )
     self.assertEqual( expected_left, r.left )
     self.assertEqual( old_width, r.width )
Пример #30
0
    def test_bottom(self):
        """Changing the bottom attribute moves the rect and does not change
           the rect's height
        """
        r = Rect(1, 2, 3, 4)
        new_bottom = r.bottom + 20
        expected_top = r.top + 20
        old_height = r.height

        r.bottom = new_bottom
        self.assertEqual(new_bottom, r.bottom)
        self.assertEqual(expected_top, r.top)
        self.assertEqual(old_height, r.height)
Пример #31
0
    def test_midbottom(self):
        """Changing the midbottom attribute moves the rect and does not change
           the rect's size
        """
        r = Rect(1, 2, 3, 4)
        new_midbottom = (r.centerx + 20, r.bottom + 30)
        expected_topleft = (r.left + 20, r.top + 30)
        old_size = r.size

        r.midbottom = new_midbottom
        self.assertEqual(new_midbottom, r.midbottom)
        self.assertEqual(expected_topleft, r.topleft)
        self.assertEqual(old_size, r.size)
Пример #32
0
    def test_centery(self):
        """Changing the centerx attribute moves the rect and does not change
           the rect's width
        """
        r = Rect(1, 2, 3, 4)
        new_centery = r.centery + 20
        expected_top = r.top + 20
        old_height = r.height

        r.centery = new_centery
        self.assertEqual(new_centery, r.centery)
        self.assertEqual(expected_top, r.top)
        self.assertEqual(old_height, r.height)
Пример #33
0
    def test_right(self):
        """Changing the right attribute moves the rect and does not change
           the rect's width
        """
        r = Rect(1, 2, 3, 4)
        new_right = r.right + 20
        expected_left = r.left + 20
        old_width = r.width

        r.right = new_right
        self.assertEqual(new_right, r.right)
        self.assertEqual(expected_left, r.left)
        self.assertEqual(old_width, r.width)
Пример #34
0
    def test_midright(self):
        """Changing the midright attribute moves the rect and does not change
           the rect's size
        """
        r = Rect(1, 2, 3, 4)
        new_midright = (r.right + 20, r.centery + 30)
        expected_topleft = (r.left + 20, r.top + 30)
        old_size = r.size

        r.midright = new_midright
        self.assertEqual(new_midright, r.midright)
        self.assertEqual(expected_topleft, r.topleft)
        self.assertEqual(old_size, r.size)
Пример #35
0
    def test_center(self):
        """Changing the center attribute moves the rect and does not change
           the rect's size
        """
        r = Rect(1, 2, 3, 4)
        new_center = (r.centerx + 20, r.centery + 30)
        expected_topleft = (r.left + 20, r.top + 30)
        old_size = r.size

        r.center = new_center
        self.assertEqual(new_center, r.center)
        self.assertEqual(expected_topleft, r.topleft)
        self.assertEqual(old_size, r.size)
Пример #36
0
 def test_centery( self ):
     """Changing the centerx attribute moves the rect and does not change
        the rect's width
     """
     r = Rect( 1, 2, 3, 4 )
     new_centery = r.centery + 20
     expected_top = r.top + 20
     old_height = r.height
     
     r.centery = new_centery
     self.assertEqual( new_centery, r.centery )
     self.assertEqual( expected_top, r.top )
     self.assertEqual( old_height, r.height )
Пример #37
0
 def test_clamp_ip( self ):
     r = Rect(10, 10, 10, 10)
     c = Rect(19, 12, 5, 5)
     c.clamp_ip(r)
     self.assertEqual(c.right, r.right)
     self.assertEqual(c.top, 12)
     c = Rect(1, 2, 3, 4)
     c.clamp_ip(r)
     self.assertEqual(c.topleft, r.topleft)
     c = Rect(5, 500, 22, 33)
     c.clamp_ip(r)
     self.assertEqual(c.center, r.center)
Пример #38
0
 def test_clamp_ip(self):
     r = Rect(10, 10, 10, 10)
     c = Rect(19, 12, 5, 5)
     c.clamp_ip(r)
     self.assertEqual(c.right, r.right)
     self.assertEqual(c.top, 12)
     c = Rect(1, 2, 3, 4)
     c.clamp_ip(r)
     self.assertEqual(c.topleft, r.topleft)
     c = Rect(5, 500, 22, 33)
     c.clamp_ip(r)
     self.assertEqual(c.center, r.center)
Пример #39
0
    def test_invalid_list_item(self):
        """We can report the index of an unserialisable list item."""
        obj = {'items': [1, 5, ZRect(0, 0, 10, 10)]}

        result = sorted(Storage._get_json_error_keys(obj))
        self.assertEqual(result, [
            ("storage['items'][2]", 'pgzero.rect.ZRect'),
        ])
Пример #40
0
    def test_collidelist(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.collidelist:

          # Rect.collidelist(list): return index
          # test if one rectangle in a list intersects
          # 
          # Test whether the rectangle collides with any in a sequence of
          # rectangles. The index of the first collision found is returned. If
          # no collisions are found an index of -1 is returned.

        r = Rect(1, 1, 10, 10)
        l = [Rect(50, 50, 1, 1), Rect(5, 5, 10, 10), Rect(15, 15, 1, 1)]

        self.assertEqual(r.collidelist(l), 1)

        f = [Rect(50, 50, 1, 1), (100, 100, 4, 4)]
        self.assertEqual(r.collidelist(f), -1)
Пример #41
0
    def test_collidelist(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.collidelist:

        # Rect.collidelist(list): return index
        # test if one rectangle in a list intersects
        #
        # Test whether the rectangle collides with any in a sequence of
        # rectangles. The index of the first collision found is returned. If
        # no collisions are found an index of -1 is returned.

        r = Rect(1, 1, 10, 10)
        l = [Rect(50, 50, 1, 1), Rect(5, 5, 10, 10), Rect(15, 15, 1, 1)]

        self.assertEqual(r.collidelist(l), 1)

        f = [Rect(50, 50, 1, 1), (100, 100, 4, 4)]
        self.assertEqual(r.collidelist(f), -1)
Пример #42
0
 def test_clip(self):
     r1 = Rect(1, 2, 3, 4)
     self.assertEqual(Rect(1, 2, 2, 2), r1.clip(Rect(0, 0, 3, 4)))
     self.assertEqual(Rect(2, 2, 2, 4), r1.clip(Rect(2, 2, 10, 20)))
     self.assertEqual(Rect(2, 3, 1, 2), r1.clip(Rect(2, 3, 1, 2)))
     self.assertEqual((0, 0), r1.clip(20, 30, 5, 6).size)
     self.assertEqual(r1, r1.clip(Rect(r1)),
                      "r1 does not clip an identical rect to itself")
Пример #43
0
 def test_clip( self ):
     r1 = Rect( 1, 2, 3, 4 )
     self.assertEqual( Rect( 1, 2, 2, 2 ), r1.clip( Rect(0,0,3,4) ) )
     self.assertEqual( Rect( 2, 2, 2, 4 ), r1.clip( Rect(2,2,10,20) ) )
     self.assertEqual( Rect(2,3,1,2), r1.clip( Rect(2,3,1,2) ) )
     self.assertEqual( (0,0), r1.clip(20,30,5,6).size )
     self.assertEqual( r1, r1.clip( Rect(r1) ),
                       "r1 does not clip an identical rect to itself" )
Пример #44
0
    def test_collidelistall(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.collidelistall:

        # Rect.collidelistall(list): return indices
        # test if all rectangles in a list intersect
        #
        # Returns a list of all the indices that contain rectangles that
        # collide with the Rect. If no intersecting rectangles are found, an
        # empty list is returned.

        r = Rect(1, 1, 10, 10)

        l = [
            Rect(1, 1, 10, 10),
            Rect(5, 5, 10, 10),
            Rect(15, 15, 1, 1),
            Rect(2, 2, 1, 1),
        ]
        self.assertEqual(r.collidelistall(l), [0, 1, 3])

        f = [Rect(50, 50, 1, 1), Rect(20, 20, 5, 5)]
        self.assertFalse(r.collidelistall(f))
Пример #45
0
    def test_collidelistall(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.collidelistall:

          # Rect.collidelistall(list): return indices
          # test if all rectangles in a list intersect
          # 
          # Returns a list of all the indices that contain rectangles that
          # collide with the Rect. If no intersecting rectangles are found, an
          # empty list is returned.

        r = Rect(1, 1, 10, 10)

        l = [
            Rect(1, 1, 10, 10), 
            Rect(5, 5, 10, 10),
            Rect(15, 15, 1, 1),
            Rect(2, 2, 1, 1),
        ]
        self.assertEqual(r.collidelistall(l), [0, 1, 3])

        f = [Rect(50, 50, 1, 1), Rect(20, 20, 5, 5)]
        self.assertFalse(r.collidelistall(f))
Пример #46
0
    def test_collidedict(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.collidedict:

          # Rect.collidedict(dict): return (key, value)
          # test if one rectangle in a dictionary intersects
          # 
          # Returns the key and value of the first dictionary value that
          # collides with the Rect. If no collisions are found, None is
          # returned.
          # 
          # Rect objects are not hashable and cannot be used as keys in a
          # dictionary, only as values.

        r = Rect(1, 1, 10, 10)
        r1 = Rect(1, 1, 10, 10)
        r2 = Rect(50, 50, 10, 10)
        r3 = Rect(70, 70, 10, 10)
        r4 = Rect(61, 61, 10, 10)

        d = {1: r1, 2: r2, 3: r3}

        rects_values = 1
        val = r.collidedict(d, rects_values)
        self.assertTrue(val)
        self.assertEqual(len(val), 2)
        self.assertEqual(val[0], 1)
        self.assertEqual(val[1], r1)

        none_d = {2: r2, 3: r3}
        none_val = r.collidedict(none_d, rects_values)
        self.assertFalse(none_val)

        barely_d = {1: r1, 2: r2, 3: r3}
        k3, v3 = r4.collidedict(barely_d, rects_values)
        self.assertEqual(k3, 3)
        self.assertEqual(v3, r3)
Пример #47
0
    def test_collidedict(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.collidedict:

        # Rect.collidedict(dict): return (key, value)
        # test if one rectangle in a dictionary intersects
        #
        # Returns the key and value of the first dictionary value that
        # collides with the Rect. If no collisions are found, None is
        # returned.
        #
        # Rect objects are not hashable and cannot be used as keys in a
        # dictionary, only as values.

        r = Rect(1, 1, 10, 10)
        r1 = Rect(1, 1, 10, 10)
        r2 = Rect(50, 50, 10, 10)
        r3 = Rect(70, 70, 10, 10)
        r4 = Rect(61, 61, 10, 10)

        d = {1: r1, 2: r2, 3: r3}

        rects_values = 1
        val = r.collidedict(d, rects_values)
        self.assertTrue(val)
        self.assertEqual(len(val), 2)
        self.assertEqual(val[0], 1)
        self.assertEqual(val[1], r1)

        none_d = {2: r2, 3: r3}
        none_val = r.collidedict(none_d, rects_values)
        self.assertFalse(none_val)

        barely_d = {1: r1, 2: r2, 3: r3}
        k3, v3 = r4.collidedict(barely_d, rects_values)
        self.assertEqual(k3, 3)
        self.assertEqual(v3, r3)
Пример #48
0
    def test_collidepoint(self):
        r = Rect(1, 2, 3, 4)

        self.assertTrue(r.collidepoint(r.left, r.top),
                        "r does not collide with point (left,top)")
        self.assertFalse(r.collidepoint(r.left - 1, r.top),
                         "r collides with point (left-1,top)")
        self.assertFalse(r.collidepoint(r.left, r.top - 1),
                         "r collides with point (left,top-1)")
        self.assertFalse(r.collidepoint(r.left - 1, r.top - 1),
                         "r collides with point (left-1,top-1)")

        self.assertTrue(r.collidepoint(r.right - 1, r.bottom - 1),
                        "r does not collide with point (right-1,bottom-1)")
        self.assertFalse(r.collidepoint(r.right, r.bottom),
                         "r collides with point (right,bottom)")
        self.assertFalse(r.collidepoint(r.right - 1, r.bottom),
                         "r collides with point (right-1,bottom)")
        self.assertFalse(r.collidepoint(r.right, r.bottom - 1),
                         "r collides with point (right,bottom-1)")
Пример #49
0
 def test_collidepoint( self ):
     r = Rect( 1, 2, 3, 4 )
     
     self.assertTrue( r.collidepoint( r.left, r.top ),
                      "r does not collide with point (left,top)" )
     self.assertFalse( r.collidepoint( r.left-1, r.top ),
                  "r collides with point (left-1,top)"  )
     self.assertFalse( r.collidepoint( r.left, r.top-1 ),
                  "r collides with point (left,top-1)"  )
     self.assertFalse( r.collidepoint( r.left-1,r.top-1 ),
                  "r collides with point (left-1,top-1)"  )
     
     self.assertTrue( r.collidepoint( r.right-1, r.bottom-1 ),
                      "r does not collide with point (right-1,bottom-1)")
     self.assertFalse( r.collidepoint( r.right, r.bottom ),
                  "r collides with point (right,bottom)" )
     self.assertFalse( r.collidepoint( r.right-1, r.bottom ),
                  "r collides with point (right-1,bottom)" )
     self.assertFalse( r.collidepoint( r.right, r.bottom-1 ),
                  "r collides with point (right,bottom-1)" )
Пример #50
0
 def test_colliderect( self ):
     r1 = Rect(1,2,3,4)
     self.assertTrue( r1.colliderect( Rect(0,0,2,3) ),
                      "r1 does not collide with Rect(0,0,2,3)" )
     self.assertFalse( r1.colliderect( Rect(0,0,1,2) ),
                  "r1 collides with Rect(0,0,1,2)" )
     self.assertFalse( r1.colliderect( Rect(r1.right,r1.bottom,2,2) ),
                  "r1 collides with Rect(r1.right,r1.bottom,2,2)" )
     self.assertTrue( r1.colliderect( Rect(r1.left+1,r1.top+1,
                                           r1.width-2,r1.height-2) ),
                      "r1 does not collide with Rect(r1.left+1,r1.top+1,"+
                      "r1.width-2,r1.height-2)" )
     self.assertTrue( r1.colliderect( Rect(r1.left-1,r1.top-1,
                                           r1.width+2,r1.height+2) ),
                      "r1 does not collide with Rect(r1.left-1,r1.top-1,"+
                      "r1.width+2,r1.height+2)" )
     self.assertTrue( r1.colliderect( Rect(r1) ),
                      "r1 does not collide with an identical rect" )
     self.assertFalse( r1.colliderect( Rect(r1.right,r1.bottom,0,0) ),
                  "r1 collides with Rect(r1.right,r1.bottom,0,0)" )
     self.assertFalse( r1.colliderect( Rect(r1.right,r1.bottom,1,1) ),
                  "r1 collides with Rect(r1.right,r1.bottom,1,1)" )
Пример #51
0
 def test_colliderect( self ):
     r1 = Rect(1,2,3,4)
     self.assertTrue( r1.colliderect( Rect(0,0,2,3) ),
                      "r1 does not collide with Rect(0,0,2,3)" )
     self.assertFalse( r1.colliderect( Rect(0,0,1,2) ),
                  "r1 collides with Rect(0,0,1,2)" )
     self.assertFalse( r1.colliderect( Rect(r1.right,r1.bottom,2,2) ),
                  "r1 collides with Rect(r1.right,r1.bottom,2,2)" )
     self.assertTrue( r1.colliderect( Rect(r1.left+1,r1.top+1,
                                           r1.width-2,r1.height-2) ),
                      "r1 does not collide with Rect(r1.left+1,r1.top+1,"+
                      "r1.width-2,r1.height-2)" )
     self.assertTrue( r1.colliderect( Rect(r1.left-1,r1.top-1,
                                           r1.width+2,r1.height+2) ),
                      "r1 does not collide with Rect(r1.left-1,r1.top-1,"+
                      "r1.width+2,r1.height+2)" )
     self.assertTrue( r1.colliderect( Rect(r1) ),
                      "r1 does not collide with an identical rect" )
     self.assertFalse( r1.colliderect( Rect(r1.right,r1.bottom,0,0) ),
                  "r1 collides with Rect(r1.right,r1.bottom,0,0)" )
     self.assertFalse( r1.colliderect( Rect(r1.right,r1.bottom,1,1) ),
                  "r1 collides with Rect(r1.right,r1.bottom,1,1)" )
Пример #52
0
    def test_contains(self):
        r = Rect(1, 2, 3, 4)

        self.assertTrue(r.contains(Rect(2, 3, 1, 1)),
                        "r does not contain Rect(2,3,1,1)")
        self.assertTrue(r.contains(Rect(r)),
                        "r does not contain the same rect as itself")
        self.assertTrue(r.contains(Rect(2, 3, 0, 0)),
                        "r does not contain an empty rect within its bounds")
        self.assertFalse(r.contains(Rect(0, 0, 1, 2)),
                         "r contains Rect(0,0,1,2)")
        self.assertFalse(r.contains(Rect(4, 6, 1, 1)),
                         "r contains Rect(4,6,1,1)")
        self.assertFalse(r.contains(Rect(4, 6, 0, 0)),
                         "r contains Rect(4,6,0,0)")
Пример #53
0
 def test_contains( self ):
     r = Rect( 1, 2, 3, 4 )
     
     self.assertTrue( r.contains( Rect( 2, 3, 1, 1 ) ),
                      "r does not contain Rect(2,3,1,1)" )
     self.assertTrue( r.contains( Rect(r) ),
                      "r does not contain the same rect as itself" )
     self.assertTrue( r.contains( Rect(2,3,0,0) ),
                      "r does not contain an empty rect within its bounds" )
     self.assertFalse( r.contains( Rect(0,0,1,2) ),
                  "r contains Rect(0,0,1,2)" )
     self.assertFalse( r.contains( Rect(4,6,1,1) ),
                  "r contains Rect(4,6,1,1)" )
     self.assertFalse( r.contains( Rect(4,6,0,0) ),
                  "r contains Rect(4,6,0,0)" )
Пример #54
0
    def test_fit(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.fit:

        # Rect.fit(Rect): return Rect
        # resize and move a rectangle with aspect ratio
        #
        # Returns a new rectangle that is moved and resized to fit another.
        # The aspect ratio of the original Rect is preserved, so the new
        # rectangle may be smaller than the target in either width or height.

        r = Rect(10, 10, 30, 30)

        r2 = Rect(30, 30, 15, 10)

        f = r.fit(r2)
        self.assertTrue(r2.contains(f))

        f2 = r2.fit(r)
        self.assertTrue(r.contains(f2))
Пример #55
0
    def test_fit(self):

        # __doc__ (as of 2008-08-02) for pygame.rect.Rect.fit:

          # Rect.fit(Rect): return Rect
          # resize and move a rectangle with aspect ratio
          # 
          # Returns a new rectangle that is moved and resized to fit another.
          # The aspect ratio of the original Rect is preserved, so the new
          # rectangle may be smaller than the target in either width or height.

        r = Rect(10, 10, 30, 30)

        r2 = Rect(30, 30, 15, 10)

        f = r.fit(r2)
        self.assertTrue(r2.contains(f))
        
        f2 = r2.fit(r)
        self.assertTrue(r.contains(f2))
Пример #56
0
 def test_bounds(self):
     """We can get a bounding rect for the screen."""
     self.assertEqual(self.screen.bounds(), ZRect(0, 0, 200, 100))
Пример #57
0
 def test_float_inflated(self):
     r = Rect(0, 0, 5, 5)
     self.assertEqual(r.inflate(1.5, 1.5), (-0.75, -0.75, 6.5, 6.5))
Пример #58
0
 def test_copy(self):
     r = Rect(1, 2, 10, 20)
     c = r.copy()
     self.assertEqual(c, r)
Пример #59
0
 def draw_rect(color: Tuple[int, int, int],
               rect: Tuple[int, int, int, int],
               width: int = 1) -> None:
     if self._surf:
         pygame.draw.rect(self._surf.surface, color, ZRect(rect), width)
Пример #60
0
 def test_union_ip( self ):
     r1 = Rect( 1, 1, 1, 2 )
     r2 = Rect( -2, -2, 1, 2 )
     r1.union_ip(r2)
     self.assertEqual( Rect( -2, -2, 4, 5 ), r1 )