剥离内容: 个人密钥(Vidu/ARTC/TRTC)、B站Cookie、个人绝对路径、作者素材(形象/音色/人设/动作库)、 内部笔记与真实弹幕报告。开箱可用, 素材需自备。
46 lines
1.6 KiB
Python
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)
|