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

---

# BENCHMARK_RESULT

BENCH-RUN T04 R01

## 题面（逐字）

> # T04：日期区间边界修复
>
> 修复 `ledger.query.filter_by_date(transactions, start_date=None, end_date=None)`。日期边界格式固定为 ISO `YYYY-MM-DD`，开始与结束日期都包含在结果中；缺省某一边界时该方向不设限。按日期语义比较，不能用字符串排序代替日期解析。格式错误或无效日历日期必须抛出 `ValueError`。
>
> 保持函数签名、其他过滤行为和公开接口兼容。可新增测试，不得删改已有测试或增加运行时依赖。确保 CLI 对非法日期按现有错误风格以非零状态退出。运行 `python3 -m unittest discover -s tests -v`，报告实际结果。

## 状态：PASS

## 实际改动

1. `ledger/query.py` `filter_by_date`（唯一生产改动，函数签名不变）：
   - 删除基线注释 `# Intentionally exclusive at the frozen baseline for T04.`
   - 排除条件由 `transaction.date <= start` 改为 `< start`、`transaction.date >= end` 改为 `> end`——开始与结束日期均包含在结果内（闭区间）。
   - 比较仍在 `_parse_date_bound` 解析出的 `datetime.date` 对象上进行（日期语义，非字符串排序）；缺省边界返回 `None`、该方向不设限，均未变。
   - `_parse_date_bound`（query.py:4）保持不变：`date.fromisoformat` + isoformat 回环校验，格式错误/无效日历日期/非字符串类型统一抛 `ValueError("{field} must use YYYY-MM-DD")`。
2. `tests/test_date_bounds.py`（新增，9 个测试方法）：双边界含端点、单日区间、开放边界、默认 fixture 边界日（2025-01-01 的 A-01/A-02 与 2025-01-31 的 C-01 均入选）、非法格式（`01/01/2025`、`2025-1-1`、`20250101`、带时间）、无效日历日（2025-02-30、2025-13-01）、非字符串边界抛 `ValueError`、CLI 非法日期非零退出且保持 `ledger: error:` 风格、CLI 路径闭区间输出。
3. 未删改已有测试；未增加运行时依赖；CLI 校验路径（`ledger/cli.py` `_parse_cli_date`）与错误风格未动。

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

```
$ 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_both_bounds_inclusive (test_date_bounds.FilterByDateBoundsTests) ... ok
test_cli_inclusive_boundary_output (test_date_bounds.FilterByDateBoundsTests) ... ok
test_cli_rejects_invalid_date_nonzero (test_date_bounds.FilterByDateBoundsTests) ... ok
test_default_fixture_boundary_days (test_date_bounds.FilterByDateBoundsTests) ... ok
test_invalid_calendar_date_raises (test_date_bounds.FilterByDateBoundsTests) ... ok
test_invalid_format_raises (test_date_bounds.FilterByDateBoundsTests) ... ok
test_non_string_bound_raises_valueerror (test_date_bounds.FilterByDateBoundsTests) ... ok
test_open_bounds (test_date_bounds.FilterByDateBoundsTests) ... ok
test_same_day_range_keeps_that_day (test_date_bounds.FilterByDateBoundsTests) ... ok
----------------------------------------------------------------------
Ran 13 tests in 0.002s
OK
```

CLI 手工验证：

```
$ python3 -m ledger list --start-date 2025-01-01 --end-date 2025-01-31
A-02 | 2025-01-01 | Food | $12.00
A-01 | 2025-01-01 | Food | $-1.95
B-01 | 2025-01-02 | Travel | $100.10
C-01 | 2025-01-31 | food | $0.01      ← 结束边界日已包含
exit=0

$ python3 -m ledger list --start-date 2025-13-40
ledger: error: start_date must use YYYY-MM-DD
exit=2                              ← 非零状态，错误风格不变
```

## 尚未完成的要求

无。

## 会话隔离状态

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

## 耗时

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