Download tests/test_discovery.py from InternsProgressUpdate/Venket: direct link, hf CLI and curl.
- Browser
- Download file 3.4 kB
-
https://huggingface.co/InternsProgressUpdate/Venket/resolve/main/tests/test_discovery.py
- Command line
-
hf download hf://InternsProgressUpdate/Venket/tests/test_discovery.py
-
curl -L -o test_discovery.py https://huggingface.co/InternsProgressUpdate/Venket/resolve/main/tests/test_discovery.py
3.4 kB
| """Integration tests for template and signature dataset discovery against the real bundled assets.""" | |
| from __future__ import annotations | |
| from src.signatures.signature_dataset import SignatureDataset | |
| from src.templates.template_loader import TemplateLoader | |
| import numpy as np | |
| def test_template_loader_discovers_all_nine_templates(image_dir, annotations_dir): | |
| loader = TemplateLoader(image_dir, annotations_dir) | |
| templates = loader.discover() | |
| assert len(templates) == 9 | |
| assert set(templates.keys()) == {f"bank_doc_{i:02d}" for i in range(1, 10)} | |
| def test_every_template_has_at_least_one_valid_signature_box(image_dir, annotations_dir): | |
| loader = TemplateLoader(image_dir, annotations_dir) | |
| for template_id in loader.list_ids(): | |
| template = loader.get(template_id) | |
| page = template.annotation.pages[0] | |
| assert len(page.signature_boxes) >= 1 | |
| for box in page.signature_boxes: | |
| assert box.x2 > box.x1 | |
| assert box.y2 > box.y1 | |
| # Box must lie within the annotated page bounds. | |
| assert 0 <= box.x1 and box.x2 <= page.page_size[0] | |
| assert 0 <= box.y1 and box.y2 <= page.page_size[1] | |
| def test_template_loader_random_template_is_deterministic(image_dir, annotations_dir): | |
| loader = TemplateLoader(image_dir, annotations_dir) | |
| t1 = loader.random_template(np.random.default_rng(123)) | |
| t2 = loader.random_template(np.random.default_rng(123)) | |
| assert t1.template_id == t2.template_id | |
| def test_signature_dataset_discovers_bundled_dataset(dataset_dir): | |
| ds = SignatureDataset(dataset_dir) | |
| records = ds.discover() | |
| assert len(records) > 0 | |
| assert any(r.source_type == "genuine" for r in records) | |
| assert any(r.source_type == "forged" for r in records) | |
| def test_signature_dataset_source_filter(dataset_dir): | |
| ds = SignatureDataset(dataset_dir) | |
| rng = np.random.default_rng(0) | |
| for _ in range(20): | |
| record = ds.sample(rng, source_filter="genuine") | |
| assert record.source_type == "genuine" | |
| def test_signature_dataset_sample_is_deterministic(dataset_dir): | |
| ds = SignatureDataset(dataset_dir) | |
| r1 = ds.sample(np.random.default_rng(55), source_filter="any") | |
| r2 = ds.sample(np.random.default_rng(55), source_filter="any") | |
| assert r1.signature_id == r2.signature_id | |
| def test_signature_dataset_discovers_multi_script_named_signers(dataset_dir): | |
| """dataset/metadata.csv associates dataset/hindi_bengali/*.png with real named, | |
| scripted identities (see dataset/hindi_bengali/) alongside the anonymous CEDAR pool.""" | |
| ds = SignatureDataset(dataset_dir) | |
| by_group = {} | |
| for r in ds.discover(): | |
| if "hindi_bengali" in r.path.as_posix(): | |
| by_group.setdefault(r.signer_group, set()).add(r.script) | |
| expected = { | |
| "Priya Sharma": {"hindi"}, "Raj Malhotra": {"hindi"}, "Vikram Singh": {"hindi"}, | |
| "Suman Das": {"bengali"}, "Anika Roy": {"bengali"}, | |
| "Carol Wong": {"latin"}, "Henry Ooi": {"latin"}, | |
| } | |
| assert by_group == expected | |
| for name in expected: | |
| assert ds.script_for_group(name) == next(iter(expected[name])) | |
| def test_default_script_for_unlabeled_records_is_latin(dataset_dir): | |
| ds = SignatureDataset(dataset_dir) | |
| cedar_records = [r for r in ds.discover() if "hindi_bengali" not in r.path.as_posix()] | |
| assert all(r.script == "latin" for r in cedar_records) | |