二七王测试:完成 P2 用例,达成测试计划 DoD
- test_deal.js(新):§2 发牌构成——92张/去3-4共16/三家各28+底8/分值(§6.1) - test_arith.js:§3 编码排序(order_cards 降序=设计顺序、is_continuous 相邻链逐段+反例)、 §7 每档小光/过庄分界+升3级补齐 - test_paiju.js:§8.2 亮牌更多边界(6个7仅qi、固定主9→null、固定主10仅zhu) - test_config.js:§10 直接调 export.get_asetcount/get_needroomcard(_joinroom) - test_rpc.js/_rpc.js:§12 端到端(真实驱动 叫分→上庄→选主→埋牌→出牌ready)、 §9 maipai 亮牌门控 + get_deskinfo PushCards 门控 - 02-测试计划.md/README:P2 与 DoD 标记达成 全部单测 204 项断言全绿(node server/games/erqiwang/test/run.js) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -121,4 +121,31 @@ t.eq('跟牌 主牌最大化(有主用尽)', ffo([K1, Q1, fA, fB], [K1, Q1, fA],
|
||||
t.eq('跟牌 留主牌垫副→拒', ffo([K1, Q1, fA, fB], [K1, fA, fB], { tractors: [], pairs: 1, singles: 1 }), false);
|
||||
t.eq('跟牌 无主全垫副', ffo([fA, fB, fC, fD], [fA, fB, fC], { tractors: [], pairs: 1, singles: 1 }), true);
|
||||
|
||||
// ============ §3 主牌顺序 / 相邻链 ============
|
||||
// order_cards 结果应为 design §3 从大到小:大王>小王>正7>副7>正2>副2>主A>主K…主5>副牌
|
||||
const big1 = big(1), small1 = small(1), Z7 = id(1, 1, 7), F7 = id(1, 2, 7), Z2 = id(1, 1, 2), F2 = id(1, 2, 2), zA = id(1, 1, 1), zK = id(1, 1, 13), z5 = id(1, 1, 5);
|
||||
t.eq('排序 主牌降序=设计顺序', A.order_cards(MF, [z5, F2, Z2, big1, F7, Z7, small1, zA, zK]), [big1, small1, Z7, F7, Z2, F2, zA, zK, z5]);
|
||||
// is_continuous 相邻链逐段(design §3/§5.3)
|
||||
const cont = (a, b) => A.is_continuous(A.id_to_code(MF, a), A.id_to_code(MF, b));
|
||||
t.eq('相邻 大王-小王', cont(big(1), small(1)), true);
|
||||
t.eq('相邻 小王-正7', cont(small(1), Z7), true);
|
||||
t.eq('相邻 正7-副7', cont(Z7, F7), true);
|
||||
t.eq('相邻 副7-正2', cont(F7, Z2), true);
|
||||
t.eq('相邻 正2-副2', cont(Z2, F2), true);
|
||||
t.eq('相邻 副2-主A', cont(F2, zA), true);
|
||||
t.eq('相邻 主A-主K', cont(zA, zK), true);
|
||||
t.eq('相邻 主8-主6(6/8可连)', cont(id(1, 1, 8), id(1, 1, 6)), true);
|
||||
t.eq('相邻 主6-主5', cont(id(1, 1, 6), z5), true);
|
||||
t.eq('相邻 正7-主6 不连(7不入普通序)', cont(Z7, id(1, 1, 6)), false);
|
||||
t.eq('相邻 主8-正7 不连', cont(id(1, 1, 8), Z7), false);
|
||||
|
||||
// ============ §7 算子:每档小光/过庄分界 + 升3级(补强)============
|
||||
t.eq('常规65 g39小光', judge(65, 39, false), '小光/4');
|
||||
t.eq('常规65 g40过庄(分界)', judge(65, 40, false), '过庄/2');
|
||||
t.eq('常规65 g64过庄', judge(65, 64, false), '过庄/2');
|
||||
t.eq('常规65 g65升1', judge(65, 65, false), '升1级/2');
|
||||
t.eq('常规65 g104升1', judge(65, 104, false), '升1级/2');
|
||||
t.eq('常规65 g105升2', judge(65, 105, false), '升2级/4');
|
||||
t.eq('常规65 g145升3', judge(65, 145, false), '升3级/6');
|
||||
|
||||
process.exit(t.done('arith') ? 0 : 1);
|
||||
|
||||
Reference in New Issue
Block a user