def test_sprite_flip_method(self): surfaces = [load_image("assets/buttons/button1.png"), load_image("assets/buttons/button2.png")] sprite_list = Sprite() sprite_list.images = [item for item in surfaces] sprite_dict = Sprite() sprite_dict.images = {key: surfaces[key] for key in range(len(surfaces))} sprite_list.flip(1, 0) for image, rect in sprite_list.images: index = sprite_list.images.index((image, rect)) self.assertEqual(rect, surfaces[index][1]) width, height = image.get_size() pixel_array_base = pygame.PixelArray(surfaces[index][0]) pixel_array_flip = pygame.PixelArray(image) for column in range(width - 1, -1, -1): for row in range(height): self.assertEqual(pixel_array_base[column, row], pixel_array_flip[width - 1 - column, row]) sprite_dict = Sprite() sprite_dict.images = {key: surfaces[key] for key in range(len(surfaces))} sprite_dict.flip(0, 1) for key in sprite_dict.images: image, rect = sprite_dict.images[key] self.assertEqual(rect, surfaces[key][1]) width, height = image.get_size() pixel_array_base = pygame.PixelArray(surfaces[key][0]) pixel_array_flip = pygame.PixelArray(image) for column in range(width): for row in range(height - 1, -1, -1): self.assertEqual(pixel_array_base[column, row], pixel_array_flip[column, height - 1 - row]) sprite_with_image = Sprite() sprite_with_image.image, sprite_with_image.rect = surfaces[0] sprite_with_image.flip(1, 1) self.assertEqual(sprite_with_image.rect, surfaces[0][1]) width, height = sprite_with_image.image.get_size() pixel_array_base = pygame.PixelArray(surfaces[0][0]) pixel_array_flip = pygame.PixelArray(sprite_with_image.image) for column in range(width - 1, -1, -1): for row in range(height - 1, -1, -1): self.assertEqual(pixel_array_base[column, row], pixel_array_flip[width - 1 - column, height - 1 - row])