视觉审核完成30%
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from PIL import Image, ImageDraw
|
||||
|
||||
SCRIPTS = Path(__file__).resolve().parents[1] / "scripts"
|
||||
sys.path.insert(0, str(SCRIPTS))
|
||||
|
||||
from rebuild_a01_buttons import rebuild_button
|
||||
|
||||
|
||||
class RebuildA01ButtonTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.directory = tempfile.TemporaryDirectory()
|
||||
self.addCleanup(self.directory.cleanup)
|
||||
self.root = Path(self.directory.name)
|
||||
|
||||
def make_source(self):
|
||||
image = Image.new("RGBA", (60, 30), (0, 255, 0, 255))
|
||||
draw = ImageDraw.Draw(image)
|
||||
draw.rectangle((4, 4, 55, 25), fill=(150, 20, 12, 255))
|
||||
draw.rectangle((4, 4, 13, 25), fill=(210, 160, 40, 255))
|
||||
draw.rectangle((46, 4, 55, 25), fill=(210, 160, 40, 255))
|
||||
return image
|
||||
|
||||
def test_rebuilds_three_slice_into_clean_transparent_canvas(self):
|
||||
source = self.root / "source.png"
|
||||
output = self.root / "output.png"
|
||||
self.make_source().save(source)
|
||||
|
||||
rebuild_button(source, output, output_size=(180, 60), trim=4, padding=6, cap_width=10)
|
||||
|
||||
with Image.open(output) as image:
|
||||
self.assertEqual("RGBA", image.mode)
|
||||
self.assertEqual((180, 60), image.size)
|
||||
self.assertEqual((0, 0, 0, 0), image.getpixel((0, 0)))
|
||||
self.assertEqual((0, 0, 0, 0), image.getpixel((179, 59)))
|
||||
visible_pixels = [pixel for pixel in image.get_flattened_data() if pixel[3] > 8]
|
||||
self.assertFalse(
|
||||
any(green > 120 and green - max(red, blue) > 80 for red, green, blue, green_alpha in visible_pixels)
|
||||
)
|
||||
self.assertGreater(image.getpixel((7, 30))[0], image.getpixel((90, 30))[0])
|
||||
self.assertGreater(image.getpixel((172, 30))[0], image.getpixel((90, 30))[0])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user