Files
Shaun ZhouandClaude Opus 5 d6adea5b05 test: 单元测试与端到端冒烟
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>
2026-09-02 17:55:47 +08:00

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})