From 5c9a78029a9548356ea3db617055897f991f135f Mon Sep 17 00:00:00 2001 From: Joywayer Date: Sun, 5 Jul 2026 07:19:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E4=B8=83=E7=8E=8B=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=AE=A1=E5=88=92=EF=BC=9A=E5=90=8C=E6=AD=A5=E8=B7=9F=E7=89=8C?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E5=BA=A6=E4=BF=AE=E5=A4=8D=E5=90=8E=E7=9A=84?= =?UTF-8?q?=E8=AE=A1=E6=95=B0=E4=B8=8E=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit test_follow 由 35→50 例、全套 244→259 项;§5.1/5.2 覆盖状态由"❌重大 缺口"更新为✅(含混合出牌、毙牌完全缺门、降级递归 else 欠约束修复回归)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- server/games/erqiwang/docs/compliance/02-测试计划.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/games/erqiwang/docs/compliance/02-测试计划.md b/server/games/erqiwang/docs/compliance/02-测试计划.md index d5a6d17..b0b6162 100644 --- a/server/games/erqiwang/docs/compliance/02-测试计划.md +++ b/server/games/erqiwang/docs/compliance/02-测试计划.md @@ -49,7 +49,7 @@ ### §5 出牌规则 | 规则 | 被测 | 用例 | 层 | 状态 | | --- | --- | --- | --- | --- | -| **§5.1/5.2 跟牌/毙牌/垫牌/对子/拖拉机必出** | `get_followcard`/`can_followcard` | 正:同花色跟、有对必出对、有拖必出拖、两对不连必出;反:缺牌型被拒;毙牌:副单→主单、副对→主对、副N连→主N连;垫牌:随意副牌 | L1 | ❌ **(重大缺口,仅甩牌 follow 有测)** | +| **§5.1/5.2 跟牌/毙牌/垫牌/混合出牌/拖拉机覆盖度** | `get_followcard`/`can_followcard` | 正:同花色跟、有对必出对、有拖必出拖、两对不连必出、尽量长拖优先;反:缺牌型被拒、放长拖只出散对被拒;毙牌(须完全缺门):副单→主单、副对→主对、副N连→主N连;垫牌/混合出牌:cardvalue=0 不争权 | L1 | ✅(`test_follow` 50 例,含 else 欠约束修复回归) | | §5.3 拖拉机相邻 | `is_continuous`/`get_tuolaji_list` | 见 §3 | L1 | 🟡 | | §5.4 甩牌:副禁甩/最大性/甩错 | `can_playcard`/`opp_can_beat_flush`/`decompose_trump` | 已覆盖(合法/甩错含smallest/副禁甩/单张/对子/拖拉机) | L1 | ✅ | | §5.4.4 跟甩牌强制分量拆解 | `flush_follow_ok` | 已覆盖(有对必打对/有拖必打拖/退化/主牌最大化/无主全垫) | L1 | ✅ | @@ -103,7 +103,7 @@ ## 2. 待补用例清单(按优先级) ### P0 · 规则/金额关键 —— ✅ 已完成 -1. ✅ **§5.1/5.2 正常跟牌/毙牌/垫牌**(`can_followcard`,`test_follow.js` 17 例)——单张/对子/拖拉机的必出、毙牌数量对应(副单→主单/副对→主对/副N连→主N连)、垫牌、"有对/拖却出散张"被拒,正反边界齐全。 +1. ✅ **§5.1/5.2 正常跟牌/毙牌/垫牌/混合出牌/拖拉机覆盖度**(`can_followcard`,`test_follow.js` 50 例)——单张/对子/拖拉机的必出、毙牌数量对应(副单→主单/副对→主对/副N连→主N连、且毙牌须完全缺门)、垫牌与"混合出牌"(有该花色不够+补主牌→`cardvalue=0` 不争权)、缺门/同花色不足/对子不够各分支、多候选拖拉机(D1 崩溃回归)、**降级递归 else 欠约束回归**(三组等长 2 连对时出孤立对→拒),正反边界齐全。 2. ✅ **§7/§8 结算集成扩充**(`get_paiju_account`,`test_paiju.js`)——大光/过庄/升2级、爬坡局、傍王局(庄3王,N=4)、不傍王对照、投降,逐档验证 seatlist 各家 grade。 3. ✅ **§4.2 叫分坐庄**(`do_callgrade`,`test_callgrade.js` 6 例)——叫5立即上庄、两家不叫上庄、后叫更低→最低者上庄、不同首家。 4. ✅ **§6.3 扣底触发**(`get_bottom_account`,`test_paiju.js`)——闲家主对/两连对赢末轮才扣底(×2/×4);副牌赢、庄家赢均不扣。 @@ -146,7 +146,7 @@ ## 5. 当前状态小结 —— ✅ DoD 达成,P0/P1/P2 全部完成 -**共 244 项断言全绿**(`test_arith` 101 / `test_callgrade` 6 / `test_config` 19 / `test_deal` 12 / `test_desk` 6 / `test_follow` 35 / `test_paiju` 31 / `test_rpc` 34)。 +**共 259 项断言全绿**(`test_arith` 101 / `test_callgrade` 6 / `test_config` 19 / `test_deal` 12 / `test_desk` 6 / `test_follow` 50 / `test_paiju` 31 / `test_rpc` 34)。 design 全部服务端可验证章节均有正/反/边界单测: - **§2 构成**:`test_deal` 92张/去3-4/三家28+底8/分值。