def test_get_slice (self):
for bpp in (8, 16, 24, 32):
sf = pygame.Surface ((10, 20), 0, bpp)
sf.fill ((0, 0, 0))
ar = pygame.PixelArray (sf)
if PY3:
self.assertEqual (len (ar[0:2]), 2)
self.assertEqual (len (ar[3:7][3]), 20)
self.assertEqual (ar[0:0], None)
self.assertEqual (ar[5:5], None)
self.assertEqual (ar[9:9], None)
else:
self.assertEqual (len (ar.__getslice__ (0, 2)), 2)
self.assertEqual (len (ar.__getslice__ (3, 7)[3]), 20)
self.assertEqual (ar.__getslice__ (0, 0), None)
self.assertEqual (ar.__getslice__ (5, 5), None)
self.assertEqual (ar.__getslice__ (9, 9), None)
# Has to resolve to ar[7:8]
self.assertEqual (len (ar[-3:-2]), 20)
# Try assignments.
# 2D assignment.
if PY3:
ar[2:5] = (255, 255, 255)
else:
ar.__setslice__ (2, 5, (255, 255, 255))
self.assertEqual (ar[3][3], sf.map_rgb ((255, 255, 255)))
# 1D assignment
if PY3:
ar[3][3:7] = (10, 10, 10)
else:
ar[3].__setslice__ (3, 7, (10, 10, 10))
self.assertEqual (ar[3][5], sf.map_rgb ((10, 10, 10)))
self.assertEqual (ar[3][6], sf.map_rgb ((10, 10, 10)))
评论列表
文章目录