1b76683704f969ae6fbc2c316804cf5817556437
把第五轮复验用的取证探针固化入库。两者都不枚举「我想到的场景」,而是把 design 的规则整条转写成参考实现再与代码大面积对拍,专治手写用例覆盖不到 的欠约束分支: - test_calc.js:§7 算子全量对拍。参考实现逐字转写自 §7.1/§7.2/§7.3 判定表, 比对 2 种算子模式 × 14 个叫分档 × grade 0~260 共 7308 格(每格比 base/Q/判定倍率/最终子数),另按 design 的 17 张表逐格抽查 141 个写死的 最终子数。断言按档位分组,失败可直接定位。 - test_followdiff.js:§5.2 跟牌强制层级穷举差分。对每手牌枚举全部 C 张出牌 组合,逐个比对参考裁定与 can_followcard,约 11 万组。 两组均通过变异检验:关掉 follow_tractor_cover_ok → followdiff 三种拖拉机 首出全红;大光倍率 3→4 / 常规55档 base 4→5 / 爬坡40·35档 Q 20→40 → calc 精确指出档位与 grade。 过程中的教训已写进 test/README 与 compliance:差分测试的强度取决于造牌器。 第一版纯随机抽牌跑 7.8 万组全绿,但关掉覆盖度校验依然全绿——「同花色三组 互不相邻的两连对」这种唯一能区分「只出零散对子」与「先凑最长拖拉机」的 12 张结构随机抽不出来;掺牌又一度把它撑过枚举上限被静默跳过。故随机源改用 固定种子 PRNG,关键结构用确定性 structHands() 钉死。 全套单测 401 → 462 项全绿,总耗时 < 1.5s。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Description
No description provided
11 MiB
Languages
JavaScript
99%
HTML
0.8%
PHP
0.1%