88 个测试覆盖配置继承、注册表、GPU 守卫、YOLO 格式解析、数据集、模型形状、 标签模式、聚类原语与 SimCLR 损失,以及 train.py / eval.py / 聚类脚本的入口接线。 含两条回归测试: - PCA 白化放大噪声方向导致簇塌陷(默认 whiten=False 的依据) - classes 写成 data.yaml 路径时 num_classes 必须是类别数而非路径字符串长度 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
30 lines
767 B
Python
30 lines
767 B
Python
import pytest
|
|
|
|
from utils.registry import Registry
|
|
|
|
|
|
def test_register_and_build():
|
|
registry = Registry("demo")
|
|
|
|
@registry.register("adder")
|
|
class Adder:
|
|
def __init__(self, base: int = 0):
|
|
self.base = base
|
|
|
|
assert "adder" in registry
|
|
assert len(registry) == 1
|
|
assert registry.build({"name": "adder", "base": 3}).base == 3
|
|
assert registry.build({"name": "adder"}, base=5).base == 5
|
|
|
|
|
|
def test_duplicate_and_missing():
|
|
registry = Registry("demo")
|
|
registry.register("x")(lambda: None)
|
|
|
|
with pytest.raises(KeyError):
|
|
registry.register("x")(lambda: None)
|
|
with pytest.raises(KeyError, match="找不到"):
|
|
registry.get("y")
|
|
with pytest.raises(KeyError):
|
|
registry.build({"base": 1})
|