docforensics / tests /unit /test_ai_generated.py
Suryakarthik-1
Deploy DocForensics to Hugging Face Spaces
70520f0
Raw
History Blame Contribute Delete
903 Bytes
import numpy as np
from detectors.ai_generated import frequency_analysis, check_exif_absence
def test_frequency_score_in_range(clean_image):
score = frequency_analysis(clean_image)
assert 0.0 <= score <= 1.0
def test_frequency_score_is_float(tampered_image):
score = frequency_analysis(tampered_image)
assert isinstance(score, float)
def test_exif_absence_on_missing_file():
# a non-existent path must fail safe to (0.0, '')
score, msg = check_exif_absence('/tmp/does_not_exist_xyz.jpg')
assert score == 0.0
assert msg == ''
def test_exif_absence_on_image_without_camera_tags(tmp_path):
import cv2
p = tmp_path / 'plain.jpg'
cv2.imwrite(str(p), (np.ones((32, 32, 3)) * 128).astype(np.uint8))
score, msg = check_exif_absence(str(p))
# synthetic jpg has no camera EXIF → mild suspicion
assert score >= 0.0
assert isinstance(msg, str)