> **发布元数据**：MiniMax Code · Kimi K3（评测者确认）· R01
> **来源**：`minimax-code/输出/minimax-code/T03/R01/BENCHMARK_RESULT.md`
> **原始文件 SHA-256**：`ba862e2ced3805a5c2de276a64cd9f04218a34a666d9c82487f5863e0d3cd391`
> **规程说明**：本工具报告记载 12 题在单个批量会话中执行；与冻结会话隔离规程不符，本轮暂不进入严格排名。
> 本公开副本已将评测机绝对路径归一化；下文 PASS/FAIL/BLOCKED 是执行报告自述状态，不等同于独立验收结论。

---

# BENCHMARK_RESULT

BENCH-RUN T03 R01

## 题面（逐字）

> # T03：金额精度修复
>
> 修复 `ledger.money.parse_money(value)`，保持函数名、参数和正常调用方式兼容。
>
> 要求：
> 1. 返回整数分；整数 `12` 和字符串 `"12"` 都表示 12 个主要货币单位并返回 `1200`；`"12.3"` 返回 `1230`，`"-0.01"` 返回 `-1`。
> 2. 只接受整数（不含布尔值）或符合 `^-?\d+(\.\d{1,2})?$` 的字符串。
> 3. 浮点数、布尔值、空字符串、首尾空白、非数字、前导加号及超过两位小数均抛出 `ValueError`；不能静默截断或四舍五入。
> 4. 不改变与金额解析无关的公开行为，不增加运行时依赖；可新增测试，不得删改已有测试。
>
> 运行 `python3 -m unittest discover -s tests -v`，并报告实际命令和结果。

## 状态：PASS

## 实际改动

1. `ledger/money.py`（整体重写 `parse_money`，函数名与参数不变）：
   - 布尔值先判（`isinstance(value, bool)`）抛 `ValueError`（bool 是 int 子类，必须先排除）。
   - 整数（不含 bool）返回 `value * 100`。
   - 字符串必须完整匹配 `re.compile(r"^-?\d+(\.\d{1,2})?$")`（用 `fullmatch`，避免 `$` 容忍尾部换行），否则抛 `ValueError`；浮点数及其他类型同样落入 `ValueError`。
   - 匹配后按纯十进制字符串算术转分：拆符号、整数部分 ×100、小数部分补零取两位相加，再施加符号——不经过 `float`，不存在截断或四舍五入。
   - 结果：`12→1200`、`"12"→1200`、`"12.3"→1230`、`"-0.01"→-1`，符合题面。
2. `tests/test_money_precision.py`（新增）：整数/合法字符串/全部拒收类别（浮点、布尔、None、空串、首尾空白、尾部换行、非数字、前导加号、超两位小数、残缺格式）及"不静默截断"共 4 个测试方法。
3. 未删改任何已有测试；未增加运行时依赖（仅用标准库 `re`）；`ledger/storage.py` 等其他模块未动。

## 实际运行的命令与原始结果

```
$ PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests -v
test_default_fixture_loads (test_baseline.BaselineSmokeTests) ... ok
test_default_summary_shape (test_baseline.BaselineSmokeTests) ... ok
test_list_command_runs (test_baseline.BaselineSmokeTests) ... ok
test_valid_money_inputs (test_baseline.BaselineSmokeTests) ... ok
test_integer_inputs (test_money_precision.ParseMoneyPrecisionTests) ... ok
test_no_silent_truncation (test_money_precision.ParseMoneyPrecisionTests) ... ok
test_rejected_inputs (test_money_precision.ParseMoneyPrecisionTests) ... ok
test_valid_strings (test_money_precision.ParseMoneyPrecisionTests) ... ok
----------------------------------------------------------------------
Ran 8 tests in 0.001s
OK
```

修复前基线（同命令）：`Ran 4 tests ... OK`（4 个既有测试）。修复后 8 个测试全部通过。

CLI 冒烟（确认无关公开行为不变）：

```
$ python3 -m ledger summary
Transactions: 6
Total: $117.56
$ python3 -m ledger list | head -2
A-02 | 2025-01-01 | Food | $12.00
A-01 | 2025-01-01 | Food | $-1.95   ← 负数显示为基线既有行为（T10 范围），本题未触碰
```

## 尚未完成的要求

无。

## 会话隔离状态

本题改动只发生在 `输出/minimax-code/T03/R01/workspace/` 独立副本内。实际执行为单个批量会话内按题隔离的独立 workspace，未复用其他题目工作区。其余会话级隔离元数据：UNKNOWN。

## 耗时

约 2 分钟（秒级精确耗时 UNKNOWN）。
