# findings.md · 对拍记录（lab 0015）

这份记录是这一课的产物之一：**对拍到的东西要留证据**。判分第 4 层会读它。

下面是空的，等 `py stress.py` 跑出结果之后照着填。三样东西都要填，
填完把 `TBD` 这个记号从每一行里删掉（判分见到 `TBD` 就认定这三样还没填）。

## 1 · 原始反例

对拍抓到的那一组（`stress` 交回来的那一组，没缩过）：

    原始反例: a = TBD, x = TBD

`py stress.py` 第 4 步打出的那一行就是它，照抄。

## 2 · 最小反例

`shrink` 缩到底之后的那一组：

    最小反例: a = TBD, x = TBD

判分自己也会跑一遍 `shrink`，把它的结果和这里写的对照——两边必须一致。
（它还会查这一组**再删一个元素就缩不动了**：缩不到底会被判成「还没缩到最小」。）

## 3 · 出错的行

`buggy.py` 里是哪一行导致的：

    出错的行: buggy.py 第 TBD 行

`py stress.py` 最后一段会把行号与那一行的原文一起打出来（`tools.load_buggy()` 数的行，
从 1 起）。填了行号之后，把这一行为什么错也用一句话写清：

    为什么错: TBD

（提示：区间用的是闭区间 `[lo, hi]`，退出循环之后那一格再也没有被检查过——
第 14 课那三种错法里的第一种。别把 `buggy.py` 改掉，改完就对拍不出东西了。）

## 4 · 一句话

这次对拍里，是哪一个数据形态让 `buggy.py` 暴露出来的？

    TBD

（四个候选：空数组 / 单元素数组 / 全相同 / 答案在两端。`py stress.py` 第 4 步打出的
`a=…  x=…` 那一组就是答案；它属于哪一种，想清楚再写。）
