From deb8c493546fa2f8f89b5bfe8ffa04806939645d Mon Sep 17 00:00:00 2001 From: adienakhmad Date: Wed, 19 Nov 2025 07:25:28 +0000 Subject: [PATCH] Add assert.py --- assert.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 assert.py diff --git a/assert.py b/assert.py new file mode 100644 index 0000000..9d751aa --- /dev/null +++ b/assert.py @@ -0,0 +1,38 @@ +# /// script +# requires-python = ">=3.14" +# dependencies = ["imagehash<5"] +# /// + +import json + +import imagehash +from PIL import Image + +Image.MAX_IMAGE_PIXELS = None + + +def calculate_hash(filename: str) -> imagehash.ImageHash: + im = Image.open(filename) + return imagehash.phash(im) + + +def test_hashes(subtests): + with open("answer.json", "r") as file: + answers = json.load(file) + for test in answers.get("tests", []): + name = test.get("name") + hash = imagehash.hex_to_hash(test.get("p_hash")) + with subtests.test(msg=name): + actual = calculate_hash(name) + assert actual - hash < 3 + + +def test_sizes(subtests): + with open("answer.json", "r") as file: + answers = json.load(file) + for test in answers.get("tests", []): + name = test.get("name") + size = test.get("img_size") + with subtests.test(msg=name): + im = Image.open(name) + assert im.size == tuple(size)