Пример #1
0
    def test_arraystruct(self):
        import platform
        IS_PYPY = 'PyPy' == platform.python_implementation()
        if IS_PYPY:
            return

        import pygame.tests.test_utils.arrinter as ai
        import ctypes as ct

        c_byte_p = ct.POINTER(ct.c_byte)
        c = pygame.Color(5, 7, 13, 23)
        flags = (ai.PAI_CONTIGUOUS | ai.PAI_FORTRAN |
                 ai.PAI_ALIGNED | ai.PAI_NOTSWAPPED)
        for i in range(1, 5):
            c.set_length(i)
            inter = ai.ArrayInterface(c)
            self.assertEqual(inter.two, 2)
            self.assertEqual(inter.nd, 1)
            self.assertEqual(inter.typekind, 'u')
            self.assertEqual(inter.itemsize, 1)
            self.assertEqual(inter.flags, flags)
            self.assertEqual(inter.shape[0], i)
            self.assertEqual(inter.strides[0], 1)
            data = ct.cast(inter.data, c_byte_p)
            for j in range(i):
                self.assertEqual(data[j], c[j])
Пример #2
0
 def test_itemsize(self):
     for bytes_per_pixel in range(1, 5):
         bits_per_pixel = 8 * bytes_per_pixel
         sf = pygame.Surface((2, 2), 0, bits_per_pixel)
         ar = pygame.PixelArray(sf)
         ai = arrinter.ArrayInterface(ar)
         self.assertEqual(ai.itemsize, bytes_per_pixel)
Пример #3
0
 def test_shape(self):
     for shape in [[4, 16], [5, 13]]:
         w, h = shape
         sf = pygame.Surface(shape, 0, 32)
         ar = pygame.PixelArray(sf)
         ai = arrinter.ArrayInterface(ar)
         ai_shape = [ai.shape[i] for i in range(ai.nd)]
         self.assertEqual(ai_shape, shape)
         ar2 = ar[::2, :]
         ai2 = arrinter.ArrayInterface(ar2)
         w2 = len(([0] * w)[::2])
         ai_shape = [ai2.shape[i] for i in range(ai2.nd)]
         self.assertEqual(ai_shape, [w2, h])
         ar2 = ar[:, ::2]
         ai2 = arrinter.ArrayInterface(ar2)
         h2 = len(([0] * h)[::2])
         ai_shape = [ai2.shape[i] for i in range(ai2.nd)]
         self.assertEqual(ai_shape, [w, h2])
Пример #4
0
 def test_basic(self):
     # Check unchanging fields.
     sf = pygame.Surface((2, 2), 0, 32)
     ar = pygame.PixelArray(sf)
     ai = arrinter.ArrayInterface(ar)
     self.assertEqual(ai.two, 2)
     self.assertEqual(ai.typekind, 'u')
     self.assertEqual(ai.nd, 2)
     self.assertEqual(ai.data, ar._pixels_address)