test_step6_pricing_tier_gap.py
1.45 KB
"""Step 6 源码守卫:成本建模的两个新 pathology 必须有 reason code。
来源:Claude Haiku 5.5 定价/能力锚点吸收(learn_queue #1359, 2026-10-12)。
WHY(病理):
① 提示词长度分档定价崖——同一模型 ≤100k 与 >100k 价差 5x,单 cost_per_call 无法表达。
② effort 档位放大——路由只比标称单价,忽略 Max 档输出 token 可达 High 档数倍。
WHERE(环节):① 成本建模(DEFAULT_BUDGETS.cost_per_call / _check_budget);② 模型路由决策。
"""
from pathlib import Path
SRC = Path(__file__).with_name("app.py").read_text(encoding="utf-8")
checks = [
# ① 分档定价崖
("分档定价崖 reason code 定义", 'BUDGET_TIER_CLIFF_UNMODELED = "BUDGET_TIER_CLIFF_UNMODELED"' in SRC),
("分档定价崖 reason code 注册", "VerifyReason.BUDGET_TIER_CLIFF_UNMODELED:" in SRC),
("分档定价崖描述含 100k 悬崖", "100k" in SRC and "BUDGET_TIER_CLIFF_UNMODELED" in SRC),
# ② effort 档位
("effort 档位 reason code 定义", 'ROUTER_EFFORT_TIER_BLIND = "ROUTER_EFFORT_TIER_BLIND"' in SRC),
("effort 档位 reason code 注册", "VerifyReason.ROUTER_EFFORT_TIER_BLIND:" in SRC),
]
failed = [label for label, ok in checks if not ok]
for label, ok in checks:
print(("PASS " if ok else "FAIL ") + label)
if failed:
print(f"\n{len(failed)}/{len(checks)} 检查未通过")
raise SystemExit(1)
print(f"\n{len(checks)}/{len(checks)} 检查通过")