# 自研游戏机器人策略测试用例

本文用于验证《自研游戏机器人策略与档位奖池产品文档》和《自研游戏机器人策略与档位奖池技术方案》里的核心策略，不覆盖语音房 `room-rps`。

## 测试范围

- 自研 `dice`。
- 自研 `rock`。
- 机器人补位局。
- 真人对战局对用户连赢连输统计的影响。
- 档位独立奖池。
- 新用户保护、连输保护、成熟用户正常随机、奖池水位、风控准入、策略日志。

## P0 用例

| 编号 | 场景 | 输入 | 预期 |
| --- | --- | --- | --- |
| TC-P0-001 | 旧固定胜率不可用 | 后台保存自研游戏配置 | 请求和返回都不包含旧固定胜率字段 |
| TC-P0-002 | 档位奖池隔离 | dice 1000 和 dice 100000 同时下注 | 两个档位奖池余额、流水、健康状态互不影响 |
| TC-P0-003 | 黑色水位熔断 | 当前档位可用余额小于真人赢机器人最大净支出 | 不抽机器人，不写入机器人座位，策略日志记录 `POOL_BLACK` |
| TC-P0-004 | 红色水位回到基础随机 | 当前档位余额进入红色但仍能覆盖本局最大支出 | 不输出新用户保护强制结果，也不强制用户输 |
| TC-P0-005 | 策略日志完整 | 任意机器人补位尝试 | 记录用户阶段、风险分层、水位、策略、原因码、奖池快照 |
| TC-P0-006 | 奖池账务差异 | 大量机器人局结算后对账 | 初始余额 + 入池 - 出池 - 期末余额 = 0 |

## 新用户保护用例

| 编号 | 场景 | 输入 | 预期 |
| --- | --- | --- | --- |
| TC-NEW-001 | 低档新用户正反馈 | 新用户、低风险、1000 或 5000 档、绿色水位 | 根据阶段概率输出正反馈，命中后 `force_human_win` |
| TC-NEW-002 | 新用户连输保护 | 新用户最近连续 2 局非平局失败，失败来自真人局或机器人局 | 下一次机器人补位局跳过普通概率，直接 `NEW_USER_LOSE_STREAK_PROTECTION` |
| TC-NEW-003 | 真人局不消耗保护局数 | 新用户真人对战胜负 | 更新连赢连输和净输赢，但不增加有效机器人局和保护消耗 |
| TC-NEW-004 | rock 平局不消耗 | rock 机器人局平局 | 不增加有效机器人局，不增加保护局数，不增加补贴额度 |
| TC-NEW-005 | 生命周期额度不足 | 本局所需补贴超过剩余生命周期额度 | 降级正常随机，不输出保护强制结果 |
| TC-NEW-006 | 首日额度不足 | 本局所需补贴超过首日剩余额度 | 降级正常随机，不输出保护强制结果 |
| TC-NEW-007 | 单局保护上限不足 | 本局所需补贴超过单局保护上限 | 降级正常随机，不输出保护强制结果 |
| TC-NEW-008 | 高档位保护禁用 | 40000 或 100000 档新用户 | 新用户保护命中率为 0 |

## 成熟用户自然期目标胜率用例

| 编号 | 场景 | 输入 | 预期 |
| --- | --- | --- | --- |
| TC-OLD-001 | 50% 基线 | 成熟用户，后台自然期目标胜率配置 50 | 不输出强制结果，完全自然随机 |
| TC-OLD-002 | 默认 53% 命中 | 成熟用户，后台自然期目标胜率配置 53，随机命中补正 | 输出用户赢，但不消耗新手保护额度 |
| TC-OLD-003 | 默认 53% 未命中 | 成熟用户，后台自然期目标胜率配置 53，随机未命中补正 | 不输出强制结果，继续自然随机 |
| TC-OLD-004 | 红色水位正常随机 | 成熟用户所在档位进入红色水位但仍能覆盖支出 | 输出 `POOL_RED_NORMAL_RANDOM`，不输出 `force_human_lose` |
| TC-OLD-005 | 黑色水位熔断 | 成熟用户所在档位可用余额不足 | 不抽机器人，不结算为用户必输 |
| TC-OLD-006 | 连赢后不强制输 | 成熟用户连续赢达到任意阈值 | 不输出 `force_human_lose` |

## 风控用例

| 编号 | 场景 | 输入 | 预期 |
| --- | --- | --- | --- |
| TC-RISK-001 | 正常用户 | `risk_score` 0-29 | 可按水位和预算享受完整保护 |
| TC-RISK-002 | 轻度异常 | `risk_score` 30-49 | 保护强度降低 |
| TC-RISK-003 | 中度异常 | `risk_score` 50-69 | 保护强度明显降低 |
| TC-RISK-004 | 高风险 | `risk_score` 70+ | 新用户保护命中率 0，但用户仍能正常随机游戏 |

## 随机模拟验收

随机模拟每次必须满足：

- 不固定 seed。
- 随机源来自系统随机数。
- 至少 1000 个用户。
- 用户下注档位、游戏、真人/机器人局、风险分层、初始状态都随机生成。
- 输出每个用户的完整轨迹。
- 输出汇总指标和失败项。
- 若出现高档位保护命中、高风险用户保护命中、rock 平局消耗保护、强制用户输、账务差异非 0，则模拟不通过。
