Spaces:
Running
Running
| import numpy as np | |
| import pytest | |
| from core.types import BBox, TextRegion | |
| from detectors.base import Context | |
| def clean_image(): | |
| rng = np.random.default_rng(42) | |
| img = rng.uniform(0.8, 1.0, (128, 128, 3)).astype(np.float32) | |
| return img | |
| def tampered_image(): | |
| rng = np.random.default_rng(42) | |
| img = rng.uniform(0.8, 1.0, (128, 128, 3)).astype(np.float32) | |
| img[50:80, 50:80] = 0.1 # dark patch = simulated edit | |
| return img | |
| def sample_regions(): | |
| return [ | |
| TextRegion(bbox=BBox(10, 10, 60, 20), text='Invoice', confidence=0.95), | |
| TextRegion(bbox=BBox(10, 40, 60, 20), text='Total', confidence=0.92), | |
| TextRegion(bbox=BBox(10, 70, 40, 20), text='1000', confidence=0.90), | |
| ] | |
| def base_context(clean_image): | |
| return Context(file_path='test.jpg', text_regions=[], original_img=clean_image) | |
| def regions_context(clean_image, sample_regions): | |
| return Context(file_path='test.jpg', text_regions=sample_regions, original_img=clean_image) | |
| def bgr_uint8(): | |
| """A small 3-channel uint8 image suitable for cv2-based forgery functions.""" | |
| rng = np.random.default_rng(7) | |
| return (rng.uniform(0, 255, (96, 96, 3))).astype(np.uint8) |