Files
AI少女宇宙计划组 af1cfd52ee 开源分享版初始化: 赛博小雅直播版(组件版数字人) · AGPL-3.0
剥离内容: 个人密钥(Vidu/ARTC/TRTC)、B站Cookie、个人绝对路径、作者素材(形象/音色/人设/动作库)、
内部笔记与真实弹幕报告。开箱可用, 素材需自备。
2026-10-25 00:40:23 +08:00

46 lines
1.6 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
r"""test_dm_t0.py — dm_router T0 离线冒烟(不起桥不联网): 归一化+别名命中断言。"""
import pathlib
import sys
ROOT = pathlib.Path(__file__).resolve().parent.parent
sys.path.insert(0, str(ROOT / "src"))
import dm_router # noqa: E402
NAMES = ["对镜头比心", "眨单眼", "飞吻", "轻轻地跳舞", "转一圈", "拿出一只猫", "拿出麦克风唱歌",
"吃西瓜", "举杯奶茶", "照镜子补口红", "双手合十拜托", "傲娇扭头哼", "委屈瘪嘴", "点关注"]
r = dm_router.DanmakuRouter()
r.init(engine=None, fetch_names=None, conf_get=lambda: {"enabled": True, "mode": "confirm"})
r._names = set(NAMES)
r._rebuild_dict()
CASES = [
("小雅,我要看比个心", "对镜头比心"),
("小雅给我飞吻一个", "飞吻"),
("可以亲我一个吗", "凑近亲镜头"),
("吃个西瓜呗", "吃西瓜"),
("猫", "拿出一只猫"),
("来只猫", "拿出一只猫"),
("跳个舞吧", "轻轻地跳舞"),
("唱首歌", "拿出麦克风唱歌"),
("求个关注", "点关注"),
("比心", "对镜头比心"),
("今天天气怎么样", None),
("你多大了", None),
("主播你好好笑哈哈哈哈", None),
]
fails = 0
for raw, want in CASES:
got = r.match(raw)
mark = "✓" if got == want else "✗"
if got != want:
fails += 1
print(f"{mark} {raw!r:28} → {got!r} (期望 {want!r})")
print(f"\n归一化样例: '可以亲我一个吗' → {r._normalize('可以亲我一个吗')!r}")
print(f"{'T0 冒烟通过 ✓' if fails == 0 else f'T0 冒烟失败 {fails} 例 ✗'}")
sys.exit(1 if fails else 0)