def test_find_LGR_Image(self): lgr = LGR() lgr.images.append(LGR_Image('aAa')) lgr.images.append(LGR_Image('bBb')) lgr.images.append(LGR_Image('cCc')) lgr.images.append(LGR_Image('dDd')) lgr.images.append(LGR_Image('eEe')) index = lgr.find_LGR_Image("DdD") self.assertEqual(index, 3) self.assertRaises(ValueError, lambda: lgr.find_LGR_Image("does not exist"))
def test_error_image_invalid_palette(self): imgt = Image.new('RGB', (1, 1), 0) self.lgr.images.append(LGR_Image( 'x', imgt, LGR_Image.MASK, 999, LGR_Image.CLIPPING_G, LGR_Image.TRANSPARENCY_PAL_ZERO)) self.assertEqual(check_LGR_error(self.lgr)[0][0], elma.error.ERR_IMAGE_INVALID_PALETTE)
def test_error_too_many_masks(self): for i in range(200): imgt = Image.new('P', (1, 1), 0) imgt.putpalette(self.lgr.palette) self.lgr.images.append(LGR_Image( 'pic%s' % i, imgt, LGR_Image.MASK, 999, LGR_Image.CLIPPING_G, LGR_Image.TRANSPARENCY_PAL_ZERO)) self.assertEqual(check_LGR_error(self.lgr)[0][0], elma.error.ERR_TOO_MANY_MASKS)
def test_error_too_many_grass(self): for i in range(30, 80): # skip the already-present qups and qdowns # keep height of grass to avoid warning imgt = Image.new('P', (1, 41), 0) imgt.putpalette(self.lgr.palette) self.lgr.images.append(LGR_Image( 'qUp_%s' % i, imgt, LGR_Image.PICTURE, 999, LGR_Image.CLIPPING_G, LGR_Image.TRANSPARENCY_PAL_ZERO)) for i in range(30, 80): imgt = Image.new('P', (1, 41), 0) imgt.putpalette(self.lgr.palette) self.lgr.images.append(LGR_Image( 'qDowN_%s' % i, imgt, LGR_Image.PICTURE, 999, LGR_Image.CLIPPING_G, LGR_Image.TRANSPARENCY_PAL_ZERO)) self.assertEqual(check_LGR_error(self.lgr)[0][0], elma.error.ERR_TOO_MANY_GRASS)
def test_convert_palette_image(self): with Image.open('tests/files/barrelrgb.png') as f: lgrimg = LGR_Image('barrel', img=f) lgrimg.convert_palette_image( palette_info=LGR_DEFAULT_PALETTE, dither=False) lgrimg.save_PCX("tests/files/result/barrelrgb2pal.pcx") with Image.open('tests/files/barrel.pcx') as g: self.assertEqual(lgrimg.img.mode, g.mode) self.assertEqual(lgrimg.img.size, g.size) self.assertEqual(lgrimg.img.getpalette(), g.getpalette()) self.assertEqual(lgrimg.img.tobytes(), g.tobytes()) with Image.open('tests/files/woman.png') as f: lgrimg = LGR_Image('woman', img=f) lgrimg.convert_palette_image( LGR_DEFAULT_PALETTE, True) lgrimg.save_PCX('tests/files/result/woman.pcx') self.assertEqual(lgrimg.img.getpalette(), LGR_DEFAULT_PALETTE) with Image.open('tests/files/barrel_partial_palette.pcx') as f: lgrimg = LGR_Image('barrel', img=f) lgrimg.convert_palette_image( palette_info=LGR_DEFAULT_PALETTE, dither=False) lgrimg.save_PCX( "tests/files/result/barrel_partial_to_full_palette.pcx") with Image.open('tests/files/barrel.pcx') as g: self.assertEqual(lgrimg.img.mode, g.mode) self.assertEqual(lgrimg.img.size, g.size) self.assertEqual(lgrimg.img.getpalette(), g.getpalette()) self.assertEqual(lgrimg.img.tobytes(), g.tobytes())
def test_is_valid_palette_image(self): with Image.open('tests/files/barrel.pcx') as f: lgrimg = LGR_Image('barrel', img=f) self.assertEqual(lgrimg.is_valid_palette_image(), True) with Image.open('tests/files/barrel.bmp') as f: lgrimg = LGR_Image('barrel', img=f) self.assertEqual(lgrimg.is_valid_palette_image(), True) with Image.open('tests/files/barrelgrayscale.bmp') as f: lgrimg = LGR_Image('barrel', img=f) self.assertEqual(lgrimg.is_valid_palette_image(), False) with Image.open('tests/files/barrelrgb.png') as f: lgrimg = LGR_Image('barrel', img=f) self.assertEqual(lgrimg.is_valid_palette_image(), False) with Image.open('tests/files/barrel_partial_palette.pcx') as f: lgrimg = LGR_Image('barrel', img=f) self.assertEqual(lgrimg.is_valid_palette_image(), True)
def test_is_methods(self): lgrimg = LGR_Image('barrel') self.assertEqual(lgrimg.is_in_pictures_lst(), True) self.assertEqual(lgrimg.is_qup_qdown(), False) self.assertEqual(lgrimg.is_food(), False) self.assertEqual(lgrimg.is_object(), False) self.assertEqual(lgrimg.is_special(), False) lgrimg = LGR_Image('q1body') self.assertEqual(lgrimg.is_in_pictures_lst(), False) self.assertEqual(lgrimg.is_qup_qdown(), False) self.assertEqual(lgrimg.is_food(), False) self.assertEqual(lgrimg.is_object(), False) self.assertEqual(lgrimg.is_special(), True) lgrimg = LGR_Image('Q1BODY') self.assertEqual(lgrimg.is_in_pictures_lst(), False) self.assertEqual(lgrimg.is_qup_qdown(), False) self.assertEqual(lgrimg.is_food(), False) self.assertEqual(lgrimg.is_object(), False) self.assertEqual(lgrimg.is_special(), True) lgrimg = LGR_Image('qFoOd5') self.assertEqual(lgrimg.is_in_pictures_lst(), True) self.assertEqual(lgrimg.is_qup_qdown(), False) self.assertEqual(lgrimg.is_food(), True) self.assertEqual(lgrimg.is_object(), True) self.assertEqual(lgrimg.is_special(), True) lgrimg.name = "qEXit" self.assertEqual(lgrimg.is_in_pictures_lst(), False) self.assertEqual(lgrimg.is_qup_qdown(), False) self.assertEqual(lgrimg.is_food(), False) self.assertEqual(lgrimg.is_object(), True) self.assertEqual(lgrimg.is_special(), True) lgrimg = LGR_Image('qUp_xS') self.assertEqual(lgrimg.is_in_pictures_lst(), True) self.assertEqual(lgrimg.is_qup_qdown(), True) self.assertEqual(lgrimg.is_food(), False) self.assertEqual(lgrimg.is_object(), False) self.assertEqual(lgrimg.is_special(), True)
def test_warning_unused_qfood(self): imgt = Image.new('P', (40, 40), 0) imgt.putpalette(self.lgr.palette) self.lgr.images.append(LGR_Image('qfOod4', imgt)) self.assertEqual(check_LGR_error(self.lgr)[0][0], elma.error.WARN_UNUSED_QFOOD)
def test_get_palette(self): with Image.open('tests/files/barrel.pcx') as image: barrel = LGR_Image('barrel', img=image) self.assertEqual(barrel.get_palette(), LGR_DEFAULT_PALETTE)