import hashlib
import json
from pathlib import Path
from PIL import Image, ImageDraw, ImageFont

root = Path('cases')
root.mkdir(exist_ok=True)
font_path = '/System/Library/Fonts/Supplemental/Arial.ttf'
font_hash = hashlib.sha256(Path(font_path).read_bytes()).hexdigest()
cases = []
for index, (size, answer) in enumerate(
    [(18, 'K7M4P2'), (28, 'R8D3W5'), (42, 'T6N9H2')]
):
    image = Image.new('RGB', (1024, 1024), 'white')
    draw = ImageDraw.Draw(image)
    draw.text((80, 90), 'PYPY QUALITY LAB', fill='black',
              font=ImageFont.truetype(font_path, 48))
    draw.rectangle((60, 430, 964, 590), outline='black', width=2)
    draw.text((100, 480), answer, fill='black',
              font=ImageFont.truetype(font_path, size))
    path = root / f'case-{index}.png'
    image.save(path)
    cases.append(dict(id=path.stem, path=str(path), answer=answer,
                      font_size=size, font_sha256=font_hash,
                      sha256=hashlib.sha256(path.read_bytes()).hexdigest()))
Path('cases.json').write_text(json.dumps(cases, indent=2))
