Align task API and add FunCaptcha support
This commit is contained in:
@@ -9,7 +9,14 @@ import re
|
||||
import pytest
|
||||
from PIL import Image
|
||||
|
||||
from config import GENERATE_CONFIG, NORMAL_CHARS, MATH_CHARS, THREED_CHARS, SOLVER_CONFIG
|
||||
from config import (
|
||||
GENERATE_CONFIG,
|
||||
NORMAL_CHARS,
|
||||
MATH_CHARS,
|
||||
THREED_CHARS,
|
||||
SOLVER_CONFIG,
|
||||
SOLVER_REGRESSION_RANGE,
|
||||
)
|
||||
from generators import (
|
||||
NormalCaptchaGenerator,
|
||||
MathCaptchaGenerator,
|
||||
@@ -67,6 +74,10 @@ class TestMathCaptchaGenerator:
|
||||
img, label = self.gen.generate()
|
||||
assert re.match(r"^\d+[+\-×÷]\d+$", label), f"unexpected label format: {label!r}"
|
||||
|
||||
def test_generate_with_division_text(self):
|
||||
img, label = self.gen.generate(text="20÷4")
|
||||
assert label == "20÷4"
|
||||
|
||||
|
||||
class TestThreeDCaptchaGenerator:
|
||||
def setup_method(self):
|
||||
@@ -150,7 +161,25 @@ class TestSlideDataGenerator:
|
||||
def test_label_is_numeric(self):
|
||||
img, label = self.gen.generate()
|
||||
val = int(label)
|
||||
assert val >= 0
|
||||
gs = self.gen.gap_size
|
||||
margin = gs + 10
|
||||
assert margin + gs // 2 <= val <= self.gen.width - margin + gs // 2
|
||||
|
||||
def test_labels_normalize_inside_solver_range(self, tmp_path):
|
||||
for idx in range(3):
|
||||
img, label = self.gen.generate()
|
||||
img.save(tmp_path / f"{label}_{idx:06d}.png")
|
||||
|
||||
from training.dataset import RegressionDataset
|
||||
|
||||
ds = RegressionDataset(
|
||||
dirs=[tmp_path],
|
||||
label_range=SOLVER_REGRESSION_RANGE["slide"],
|
||||
transform=None,
|
||||
)
|
||||
assert len(ds.samples) == 3
|
||||
for _, norm in ds.samples:
|
||||
assert 0.0 < norm < 1.0
|
||||
|
||||
|
||||
class TestRotateSolverDataGenerator:
|
||||
|
||||
Reference in New Issue
Block a user