示例#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
文件: screen_rpc.py 项目: kztd/pgz
 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 )