|
@@ -33,7 +33,19 @@ func TestNestingInvariants_ValidFixtureIsClean(t *testing.T) {
|
|
|
//
|
|
//
|
|
|
// 这条测试存在的唯一理由:**它能红**。如果实现改成全表作用域,它必须失败。
|
|
// 这条测试存在的唯一理由:**它能红**。如果实现改成全表作用域,它必须失败。
|
|
|
//
|
|
//
|
|
|
-// 变异探针的实测结果(本轮真跑过,改 `nestKey` 去掉 root 后):
|
|
|
|
|
|
|
+// **真实数据上的症状(26 棵树 / 86 行,spdump 实测)—— 这才是这条不变量真正的检出力证明**:
|
|
|
|
|
+//
|
|
|
|
|
+// 全表作用域(错):
|
|
|
|
|
+// I4 left 侧:10 个重复组、超额 65 行,其中 left_val=1 出现 **26 次**(26 棵树各一个根)
|
|
|
|
|
+// I4 right 侧:11 个重复组、超额 57 行
|
|
|
|
|
+// I5 :整表树宽 42 ≠ 2×86=172(差 **−130**)
|
|
|
|
|
+// 按 root 分组(对):
|
|
|
|
|
+// 26 棵树里 `width <> 2n` 的棵数 = **0**
|
|
|
|
|
+//
|
|
|
|
|
+// ⇒ 只要作用域丢了 root,I4 会一次报 100+ 条、I5 差 −130。**这个量级不可能是实现错**,
|
|
|
|
|
+// 一眼就能定位到"作用域"。这组数字比合成 fixture 更能说明问题,所以写在这里。
|
|
|
|
|
+//
|
|
|
|
|
+// 合成 fixture(两棵树同形)上的变异探针(本轮真跑过,改 `nestKey` 去掉 root 后):
|
|
|
//
|
|
//
|
|
|
// I4 报 1 条:left_val=1 重复(a1 与 b1)
|
|
// I4 报 1 条:left_val=1 重复(a1 与 b1)
|
|
|
// I5 报 1 条:root=A|B 合并后 Σ(right−left+1)/2 = 5 ≠ 节点数 4(差 1)
|
|
// I5 报 1 条:root=A|B 合并后 Σ(right−left+1)/2 = 5 ≠ 节点数 4(差 1)
|