FA-86531 / Procedural level generation constraints / Open access
BSP dungeon partition: Square regions always split vertically · case 01
BSP layouts are biased to vertical slices.
ROOT CAUSE
Squares always split vertically instead of alternating by depth.
THE FAILURE
Squares always split vertically instead of alternating by depth.
Unsuccessful approach: Flipping the parity alternates in the wrong phase.
Case contract
Recursively split the rectangle while depth remains. An axis can be split when that side is >= 2*min_size; if neither can, it is a leaf. Split vertically when w > h, or when w == h at even remaining depth; if the chosen axis cannot be split use the other. The first child gets floor(side/2). Returns leaves [x, y, w, h] in left/top-first order.
Why this case matters
Procedural generators silently emit unplayable or unfair levels when a single constraint check uses the wrong boundary, axis, neighborhood or update order; the defect is visible in exact generated geometry.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x, y, w, h, min_size, depth):
out = []
def split(x, y, w, h, d):
can_v = w >= 2 * min_size
can_h = h >= 2 * min_size
if d == 0 or not (can_v or can_h):
out.append([x, y, w, h])
return
vertical = w >= h
if vertical and not can_v:
vertical = False
elif not vertical and not can_h:
vertical = True
if vertical:
half = w // 2
split(x, y, half, h, d - 1)
split(x + half, y, w - half, h, d - 1)
else:
half = h // 2
split(x, y, w, half, d - 1)
split(x, y + half, w, h - half, d - 1)
split(x, y, w, h, depth)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[0, 5, 7, 25, 3, 3],
[[0, 5, 3, 6],
[3, 5, 4, 6],
[0, 11, 3, 6],
[3, 11, 4, 6],
[0, 17, 3, 6],
[3, 17, 4, 6],
[0, 23, 7, 3],
[0, 26, 7, 4]]),
('regression orientation choice #2',
[0, 3, 15, 30, 3, 4],
[[0, 3, 7, 3],
[0, 6, 7, 4],
[7, 3, 4, 7],
[11, 3, 4, 7],
[0, 10, 7, 4],
[0, 14, 7, 4],
[7, 10, 8, 4],
[7, 14, 8, 4],
[0, 18, 7, 3],
[0, 21, 7, 4],
[7, 18, 4, 7],
[11, 18, 4, 7],
[0, 25, 7, 4],
[0, 29, 7, 4],
[7, 25, 8, 4],
[7, 29, 8, 4]]),
('partial repair boundary #1',
[3, 0, 25, 12, 2, 3],
[[3, 0, 6, 6],
[3, 6, 6, 6],
[9, 0, 6, 6],
[9, 6, 6, 6],
[15, 0, 6, 6],
[15, 6, 6, 6],
[21, 0, 7, 6],
[21, 6, 7, 6]]),
('partial repair boundary #2',
[1, 0, 6, 24, 3, 4],
[[1, 0, 3, 3],
[1, 3, 3, 3],
[4, 0, 3, 3],
[4, 3, 3, 3],
[1, 6, 3, 3],
[1, 9, 3, 3],
[4, 6, 3, 3],
[4, 9, 3, 3],
[1, 12, 3, 3],
[1, 15, 3, 3],
[4, 12, 3, 3],
[4, 15, 3, 3],
[1, 18, 3, 3],
[1, 21, 3, 3],
[4, 18, 3, 3],
[4, 21, 3, 3]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [2, 3, 16, 10, 5, 1], [[2, 3, 8, 10], [10, 3, 8, 10]])],
[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[5, 0, 25, 13, 4, 4],
[[5, 0, 6, 6],
[11, 0, 6, 6],
[5, 6, 6, 7],
[11, 6, 6, 7],
[17, 0, 6, 6],
[23, 0, 7, 6],
[17, 6, 6, 7],
[23, 6, 7, 7]]),
('regression orientation choice #2',
[5, 4, 13, 27, 4, 4],
[[5, 4, 6, 6],
[11, 4, 7, 6],
[5, 10, 6, 7],
[11, 10, 7, 7],
[5, 17, 6, 7],
[11, 17, 7, 7],
[5, 24, 6, 7],
[11, 24, 7, 7]]),
('partial repair boundary #1',
[1, 0, 6, 24, 3, 4],
[[1, 0, 3, 3],
[1, 3, 3, 3],
[4, 0, 3, 3],
[4, 3, 3, 3],
[1, 6, 3, 3],
[1, 9, 3, 3],
[4, 6, 3, 3],
[4, 9, 3, 3],
[1, 12, 3, 3],
[1, 15, 3, 3],
[4, 12, 3, 3],
[4, 15, 3, 3],
[1, 18, 3, 3],
[1, 21, 3, 3],
[4, 18, 3, 3],
[4, 21, 3, 3]]),
('partial repair boundary #2',
[0, 0, 29, 27, 6, 4],
[[0, 0, 7, 6],
[0, 6, 7, 7],
[7, 0, 7, 6],
[7, 6, 7, 7],
[0, 13, 7, 7],
[0, 20, 7, 7],
[7, 13, 7, 7],
[7, 20, 7, 7],
[14, 0, 7, 6],
[14, 6, 7, 7],
[21, 0, 8, 6],
[21, 6, 8, 7],
[14, 13, 7, 7],
[14, 20, 7, 7],
[21, 13, 8, 7],
[21, 20, 8, 7]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [2, 3, 16, 10, 5, 1], [[2, 3, 8, 10], [10, 3, 8, 10]])],
[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[5, 4, 8, 15, 2, 4],
[[5, 4, 2, 3],
[7, 4, 2, 3],
[5, 7, 4, 2],
[5, 9, 4, 2],
[9, 4, 2, 3],
[11, 4, 2, 3],
[9, 7, 4, 2],
[9, 9, 4, 2],
[5, 11, 4, 2],
[5, 13, 4, 2],
[9, 11, 4, 2],
[9, 13, 4, 2],
[5, 15, 4, 2],
[5, 17, 4, 2],
[9, 15, 4, 2],
[9, 17, 4, 2]]),
('regression orientation choice #2',
[2, 5, 28, 28, 2, 3],
[[2, 5, 14, 7],
[2, 12, 14, 7],
[16, 5, 14, 7],
[16, 12, 14, 7],
[2, 19, 14, 7],
[2, 26, 14, 7],
[16, 19, 14, 7],
[16, 26, 14, 7]]),
('partial repair boundary #1',
[3, 2, 19, 20, 5, 4],
[[3, 2, 9, 5],
[3, 7, 9, 5],
[12, 2, 5, 5],
[12, 7, 5, 5],
[17, 2, 5, 5],
[17, 7, 5, 5],
[3, 12, 9, 5],
[3, 17, 9, 5],
[12, 12, 5, 5],
[12, 17, 5, 5],
[17, 12, 5, 5],
[17, 17, 5, 5]]),
('partial repair boundary #2',
[2, 1, 6, 21, 3, 4],
[[2, 1, 3, 5],
[5, 1, 3, 5],
[2, 6, 3, 5],
[5, 6, 3, 5],
[2, 11, 3, 5],
[5, 11, 3, 5],
[2, 16, 3, 3],
[2, 19, 3, 3],
[5, 16, 3, 3],
[5, 19, 3, 3]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [2, 3, 16, 10, 5, 1], [[2, 3, 8, 10], [10, 3, 8, 10]])],
[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[3, 1, 26, 4, 2, 4],
[[3, 1, 3, 2],
[3, 3, 3, 2],
[6, 1, 3, 2],
[6, 3, 3, 2],
[9, 1, 3, 2],
[9, 3, 3, 2],
[12, 1, 4, 2],
[12, 3, 4, 2],
[16, 1, 3, 2],
[16, 3, 3, 2],
[19, 1, 3, 2],
[19, 3, 3, 2],
[22, 1, 3, 2],
[22, 3, 3, 2],
[25, 1, 4, 2],
[25, 3, 4, 2]]),
('regression orientation choice #2',
[3, 0, 28, 29, 5, 3],
[[3, 0, 14, 7],
[3, 7, 14, 7],
[17, 0, 14, 7],
[17, 7, 14, 7],
[3, 14, 14, 7],
[3, 21, 14, 8],
[17, 14, 14, 7],
[17, 21, 14, 8]]),
('regression orientation choice #3',
[0, 5, 7, 25, 3, 3],
[[0, 5, 3, 6],
[3, 5, 4, 6],
[0, 11, 3, 6],
[3, 11, 4, 6],
[0, 17, 3, 6],
[3, 17, 4, 6],
[0, 23, 7, 3],
[0, 26, 7, 4]]),
('partial repair boundary #1',
[0, 1, 29, 28, 6, 4],
[[0, 1, 7, 7],
[0, 8, 7, 7],
[7, 1, 7, 7],
[7, 8, 7, 7],
[0, 15, 7, 7],
[0, 22, 7, 7],
[7, 15, 7, 7],
[7, 22, 7, 7],
[14, 1, 7, 7],
[14, 8, 7, 7],
[21, 1, 8, 7],
[21, 8, 8, 7],
[14, 15, 7, 7],
[14, 22, 7, 7],
[21, 15, 8, 7],
[21, 22, 8, 7]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [3, 0, 14, 28, 4, 1], [[3, 0, 14, 14], [3, 14, 14, 14]])],
[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[2, 4, 23, 21, 3, 3],
[[2, 4, 5, 10],
[7, 4, 6, 10],
[2, 14, 11, 5],
[2, 19, 11, 6],
[13, 4, 6, 10],
[19, 4, 6, 10],
[13, 14, 6, 11],
[19, 14, 6, 11]]),
('regression orientation choice #2',
[4, 4, 19, 20, 2, 3],
[[4, 4, 9, 5],
[4, 9, 9, 5],
[13, 4, 10, 5],
[13, 9, 10, 5],
[4, 14, 9, 5],
[4, 19, 9, 5],
[13, 14, 10, 5],
[13, 19, 10, 5]]),
('partial repair boundary #1',
[5, 4, 13, 25, 6, 3],
[[5, 4, 6, 6],
[5, 10, 6, 6],
[11, 4, 7, 6],
[11, 10, 7, 6],
[5, 16, 6, 6],
[5, 22, 6, 7],
[11, 16, 7, 6],
[11, 22, 7, 7]]),
('partial repair boundary #2',
[1, 3, 22, 11, 4, 3],
[[1, 3, 5, 5],
[1, 8, 5, 6],
[6, 3, 6, 5],
[6, 8, 6, 6],
[12, 3, 5, 5],
[12, 8, 5, 6],
[17, 3, 6, 5],
[17, 8, 6, 6]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [5, 1, 1, 10, 4, 2], [[5, 1, 1, 5], [5, 6, 1, 5]])]]
for label, args, expected in cases[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| square at even depth #1 | [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]] | [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]] | Passed |
| regression orientation choice #1 | [[0, 5, 3, 6], [3, 5, 4, 6], [0, 11, 3, 6], [3, 11, 4, 6], [0, 17, 3, 6], [3, 17, 4, 6], [0, 23, 3, 7], [3, 23, 4, 7]] | [[0, 5, 3, 6], [3, 5, 4, 6], [0, 11, 3, 6], [3, 11, 4, 6], [0, 17, 3, 6], [3, 17, 4, 6], [0, 23, 7, 3], [0, 26, 7, 4]] | Failed |
| regression orientation choice #2 | [[0, 3, 3, 7], [3, 3, 4, 7], [0, 10, 7, 4], [0, 14, 7, 4], [7, 3, 4, 7], [11, 3, 4, 7], [7, 10, 4, 8], [11, 10, 4, 8], [0, 18, 3, 7], [3, 18, 4, 7], [0, 25, 7, 4], [0, 29, 7, 4], [7, 18, 4, 7], [11, 18, 4, 7], [7, 25, 4, 8], [11, 25, 4, 8]] | [[0, 3, 7, 3], [0, 6, 7, 4], [7, 3, 4, 7], [11, 3, 4, 7], [0, 10, 7, 4], [0, 14, 7, 4], [7, 10, 8, 4], [7, 14, 8, 4], [0, 18, 7, 3], [0, 21, 7, 4], [7, 18, 4, 7], [11, 18, 4, 7], [0, 25, 7, 4], [0, 29, 7, 4], [7, 25, 8, 4], [7, 29, 8, 4]] | Failed |
| partial repair boundary #1 | [[3, 0, 6, 6], [3, 6, 6, 6], [9, 0, 6, 6], [9, 6, 6, 6], [15, 0, 6, 6], [15, 6, 6, 6], [21, 0, 7, 6], [21, 6, 7, 6]] | [[3, 0, 6, 6], [3, 6, 6, 6], [9, 0, 6, 6], [9, 6, 6, 6], [15, 0, 6, 6], [15, 6, 6, 6], [21, 0, 7, 6], [21, 6, 7, 6]] | Passed |
| partial repair boundary #2 | [[1, 0, 3, 3], [1, 3, 3, 3], [4, 0, 3, 3], [4, 3, 3, 3], [1, 6, 3, 3], [1, 9, 3, 3], [4, 6, 3, 3], [4, 9, 3, 3], [1, 12, 3, 3], [1, 15, 3, 3], [4, 12, 3, 3], [4, 15, 3, 3], [1, 18, 3, 3], [1, 21, 3, 3], [4, 18, 3, 3], [4, 21, 3, 3]] | [[1, 0, 3, 3], [1, 3, 3, 3], [4, 0, 3, 3], [4, 3, 3, 3], [1, 6, 3, 3], [1, 9, 3, 3], [4, 6, 3, 3], [4, 9, 3, 3], [1, 12, 3, 3], [1, 15, 3, 3], [4, 12, 3, 3], [4, 15, 3, 3], [1, 18, 3, 3], [1, 21, 3, 3], [4, 18, 3, 3], [4, 21, 3, 3]] | Passed |
| exactly splittable #1 | [[0, 0, 4, 3], [4, 0, 4, 3]] | [[0, 0, 4, 3], [4, 0, 4, 3]] | Passed |
| odd width #1 | [[1, 1, 4, 4], [5, 1, 5, 4]] | [[1, 1, 4, 4], [5, 1, 5, 4]] | Passed |
| control #1 | [[2, 3, 8, 10], [10, 3, 8, 10]] | [[2, 3, 8, 10], [10, 3, 8, 10]] | Passed |
SHA-256 / c823dcf1a70ed2baa4685105d5d65edc19fa33fe1068da174016f5c90aec4f3a
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x, y, w, h, min_size, depth):
out = []
def split(x, y, w, h, d):
can_v = w >= 2 * min_size
can_h = h >= 2 * min_size
if d == 0 or not (can_v or can_h):
out.append([x, y, w, h])
return
vertical = w > h or (w == h and d % 2 == 1)
if vertical and not can_v:
vertical = False
elif not vertical and not can_h:
vertical = True
if vertical:
half = w // 2
split(x, y, half, h, d - 1)
split(x + half, y, w - half, h, d - 1)
else:
half = h // 2
split(x, y, w, half, d - 1)
split(x, y + half, w, h - half, d - 1)
split(x, y, w, h, depth)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = [[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[0, 5, 7, 25, 3, 3],
[[0, 5, 3, 6],
[3, 5, 4, 6],
[0, 11, 3, 6],
[3, 11, 4, 6],
[0, 17, 3, 6],
[3, 17, 4, 6],
[0, 23, 7, 3],
[0, 26, 7, 4]]),
('regression orientation choice #2',
[0, 3, 15, 30, 3, 4],
[[0, 3, 7, 3],
[0, 6, 7, 4],
[7, 3, 4, 7],
[11, 3, 4, 7],
[0, 10, 7, 4],
[0, 14, 7, 4],
[7, 10, 8, 4],
[7, 14, 8, 4],
[0, 18, 7, 3],
[0, 21, 7, 4],
[7, 18, 4, 7],
[11, 18, 4, 7],
[0, 25, 7, 4],
[0, 29, 7, 4],
[7, 25, 8, 4],
[7, 29, 8, 4]]),
('partial repair boundary #1',
[3, 0, 25, 12, 2, 3],
[[3, 0, 6, 6],
[3, 6, 6, 6],
[9, 0, 6, 6],
[9, 6, 6, 6],
[15, 0, 6, 6],
[15, 6, 6, 6],
[21, 0, 7, 6],
[21, 6, 7, 6]]),
('partial repair boundary #2',
[1, 0, 6, 24, 3, 4],
[[1, 0, 3, 3],
[1, 3, 3, 3],
[4, 0, 3, 3],
[4, 3, 3, 3],
[1, 6, 3, 3],
[1, 9, 3, 3],
[4, 6, 3, 3],
[4, 9, 3, 3],
[1, 12, 3, 3],
[1, 15, 3, 3],
[4, 12, 3, 3],
[4, 15, 3, 3],
[1, 18, 3, 3],
[1, 21, 3, 3],
[4, 18, 3, 3],
[4, 21, 3, 3]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [2, 3, 16, 10, 5, 1], [[2, 3, 8, 10], [10, 3, 8, 10]])],
[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[5, 0, 25, 13, 4, 4],
[[5, 0, 6, 6],
[11, 0, 6, 6],
[5, 6, 6, 7],
[11, 6, 6, 7],
[17, 0, 6, 6],
[23, 0, 7, 6],
[17, 6, 6, 7],
[23, 6, 7, 7]]),
('regression orientation choice #2',
[5, 4, 13, 27, 4, 4],
[[5, 4, 6, 6],
[11, 4, 7, 6],
[5, 10, 6, 7],
[11, 10, 7, 7],
[5, 17, 6, 7],
[11, 17, 7, 7],
[5, 24, 6, 7],
[11, 24, 7, 7]]),
('partial repair boundary #1',
[1, 0, 6, 24, 3, 4],
[[1, 0, 3, 3],
[1, 3, 3, 3],
[4, 0, 3, 3],
[4, 3, 3, 3],
[1, 6, 3, 3],
[1, 9, 3, 3],
[4, 6, 3, 3],
[4, 9, 3, 3],
[1, 12, 3, 3],
[1, 15, 3, 3],
[4, 12, 3, 3],
[4, 15, 3, 3],
[1, 18, 3, 3],
[1, 21, 3, 3],
[4, 18, 3, 3],
[4, 21, 3, 3]]),
('partial repair boundary #2',
[0, 0, 29, 27, 6, 4],
[[0, 0, 7, 6],
[0, 6, 7, 7],
[7, 0, 7, 6],
[7, 6, 7, 7],
[0, 13, 7, 7],
[0, 20, 7, 7],
[7, 13, 7, 7],
[7, 20, 7, 7],
[14, 0, 7, 6],
[14, 6, 7, 7],
[21, 0, 8, 6],
[21, 6, 8, 7],
[14, 13, 7, 7],
[14, 20, 7, 7],
[21, 13, 8, 7],
[21, 20, 8, 7]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [2, 3, 16, 10, 5, 1], [[2, 3, 8, 10], [10, 3, 8, 10]])],
[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[5, 4, 8, 15, 2, 4],
[[5, 4, 2, 3],
[7, 4, 2, 3],
[5, 7, 4, 2],
[5, 9, 4, 2],
[9, 4, 2, 3],
[11, 4, 2, 3],
[9, 7, 4, 2],
[9, 9, 4, 2],
[5, 11, 4, 2],
[5, 13, 4, 2],
[9, 11, 4, 2],
[9, 13, 4, 2],
[5, 15, 4, 2],
[5, 17, 4, 2],
[9, 15, 4, 2],
[9, 17, 4, 2]]),
('regression orientation choice #2',
[2, 5, 28, 28, 2, 3],
[[2, 5, 14, 7],
[2, 12, 14, 7],
[16, 5, 14, 7],
[16, 12, 14, 7],
[2, 19, 14, 7],
[2, 26, 14, 7],
[16, 19, 14, 7],
[16, 26, 14, 7]]),
('partial repair boundary #1',
[3, 2, 19, 20, 5, 4],
[[3, 2, 9, 5],
[3, 7, 9, 5],
[12, 2, 5, 5],
[12, 7, 5, 5],
[17, 2, 5, 5],
[17, 7, 5, 5],
[3, 12, 9, 5],
[3, 17, 9, 5],
[12, 12, 5, 5],
[12, 17, 5, 5],
[17, 12, 5, 5],
[17, 17, 5, 5]]),
('partial repair boundary #2',
[2, 1, 6, 21, 3, 4],
[[2, 1, 3, 5],
[5, 1, 3, 5],
[2, 6, 3, 5],
[5, 6, 3, 5],
[2, 11, 3, 5],
[5, 11, 3, 5],
[2, 16, 3, 3],
[2, 19, 3, 3],
[5, 16, 3, 3],
[5, 19, 3, 3]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [2, 3, 16, 10, 5, 1], [[2, 3, 8, 10], [10, 3, 8, 10]])],
[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[3, 1, 26, 4, 2, 4],
[[3, 1, 3, 2],
[3, 3, 3, 2],
[6, 1, 3, 2],
[6, 3, 3, 2],
[9, 1, 3, 2],
[9, 3, 3, 2],
[12, 1, 4, 2],
[12, 3, 4, 2],
[16, 1, 3, 2],
[16, 3, 3, 2],
[19, 1, 3, 2],
[19, 3, 3, 2],
[22, 1, 3, 2],
[22, 3, 3, 2],
[25, 1, 4, 2],
[25, 3, 4, 2]]),
('regression orientation choice #2',
[3, 0, 28, 29, 5, 3],
[[3, 0, 14, 7],
[3, 7, 14, 7],
[17, 0, 14, 7],
[17, 7, 14, 7],
[3, 14, 14, 7],
[3, 21, 14, 8],
[17, 14, 14, 7],
[17, 21, 14, 8]]),
('regression orientation choice #3',
[0, 5, 7, 25, 3, 3],
[[0, 5, 3, 6],
[3, 5, 4, 6],
[0, 11, 3, 6],
[3, 11, 4, 6],
[0, 17, 3, 6],
[3, 17, 4, 6],
[0, 23, 7, 3],
[0, 26, 7, 4]]),
('partial repair boundary #1',
[0, 1, 29, 28, 6, 4],
[[0, 1, 7, 7],
[0, 8, 7, 7],
[7, 1, 7, 7],
[7, 8, 7, 7],
[0, 15, 7, 7],
[0, 22, 7, 7],
[7, 15, 7, 7],
[7, 22, 7, 7],
[14, 1, 7, 7],
[14, 8, 7, 7],
[21, 1, 8, 7],
[21, 8, 8, 7],
[14, 15, 7, 7],
[14, 22, 7, 7],
[21, 15, 8, 7],
[21, 22, 8, 7]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [3, 0, 14, 28, 4, 1], [[3, 0, 14, 14], [3, 14, 14, 14]])],
[('square at even depth #1', [0, 0, 10, 10, 2, 2], [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]]),
('regression orientation choice #1',
[2, 4, 23, 21, 3, 3],
[[2, 4, 5, 10],
[7, 4, 6, 10],
[2, 14, 11, 5],
[2, 19, 11, 6],
[13, 4, 6, 10],
[19, 4, 6, 10],
[13, 14, 6, 11],
[19, 14, 6, 11]]),
('regression orientation choice #2',
[4, 4, 19, 20, 2, 3],
[[4, 4, 9, 5],
[4, 9, 9, 5],
[13, 4, 10, 5],
[13, 9, 10, 5],
[4, 14, 9, 5],
[4, 19, 9, 5],
[13, 14, 10, 5],
[13, 19, 10, 5]]),
('partial repair boundary #1',
[5, 4, 13, 25, 6, 3],
[[5, 4, 6, 6],
[5, 10, 6, 6],
[11, 4, 7, 6],
[11, 10, 7, 6],
[5, 16, 6, 6],
[5, 22, 6, 7],
[11, 16, 7, 6],
[11, 22, 7, 7]]),
('partial repair boundary #2',
[1, 3, 22, 11, 4, 3],
[[1, 3, 5, 5],
[1, 8, 5, 6],
[6, 3, 6, 5],
[6, 8, 6, 6],
[12, 3, 5, 5],
[12, 8, 5, 6],
[17, 3, 6, 5],
[17, 8, 6, 6]]),
('exactly splittable #1', [0, 0, 8, 3, 4, 1], [[0, 0, 4, 3], [4, 0, 4, 3]]),
('odd width #1', [1, 1, 9, 4, 2, 1], [[1, 1, 4, 4], [5, 1, 5, 4]]),
('control #1', [5, 1, 1, 10, 4, 2], [[5, 1, 1, 5], [5, 6, 1, 5]])]]
for label, args, expected in cases[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| square at even depth #1 | [[0, 0, 5, 5], [5, 0, 5, 5], [0, 5, 5, 5], [5, 5, 5, 5]] | [[0, 0, 5, 5], [0, 5, 5, 5], [5, 0, 5, 5], [5, 5, 5, 5]] | Failed |
| regression orientation choice #1 | [[0, 5, 3, 6], [3, 5, 4, 6], [0, 11, 3, 6], [3, 11, 4, 6], [0, 17, 3, 6], [3, 17, 4, 6], [0, 23, 3, 7], [3, 23, 4, 7]] | [[0, 5, 3, 6], [3, 5, 4, 6], [0, 11, 3, 6], [3, 11, 4, 6], [0, 17, 3, 6], [3, 17, 4, 6], [0, 23, 7, 3], [0, 26, 7, 4]] | Failed |
| regression orientation choice #2 | [[0, 3, 3, 7], [3, 3, 4, 7], [0, 10, 7, 4], [0, 14, 7, 4], [7, 3, 4, 7], [11, 3, 4, 7], [7, 10, 4, 8], [11, 10, 4, 8], [0, 18, 3, 7], [3, 18, 4, 7], [0, 25, 7, 4], [0, 29, 7, 4], [7, 18, 4, 7], [11, 18, 4, 7], [7, 25, 4, 8], [11, 25, 4, 8]] | [[0, 3, 7, 3], [0, 6, 7, 4], [7, 3, 4, 7], [11, 3, 4, 7], [0, 10, 7, 4], [0, 14, 7, 4], [7, 10, 8, 4], [7, 14, 8, 4], [0, 18, 7, 3], [0, 21, 7, 4], [7, 18, 4, 7], [11, 18, 4, 7], [0, 25, 7, 4], [0, 29, 7, 4], [7, 25, 8, 4], [7, 29, 8, 4]] | Failed |
| partial repair boundary #1 | [[3, 0, 6, 6], [9, 0, 6, 6], [3, 6, 6, 6], [9, 6, 6, 6], [15, 0, 6, 6], [15, 6, 6, 6], [21, 0, 7, 6], [21, 6, 7, 6]] | [[3, 0, 6, 6], [3, 6, 6, 6], [9, 0, 6, 6], [9, 6, 6, 6], [15, 0, 6, 6], [15, 6, 6, 6], [21, 0, 7, 6], [21, 6, 7, 6]] | Failed |
| partial repair boundary #2 | [[1, 0, 3, 3], [4, 0, 3, 3], [1, 3, 3, 3], [4, 3, 3, 3], [1, 6, 3, 3], [4, 6, 3, 3], [1, 9, 3, 3], [4, 9, 3, 3], [1, 12, 3, 3], [4, 12, 3, 3], [1, 15, 3, 3], [4, 15, 3, 3], [1, 18, 3, 3], [4, 18, 3, 3], [1, 21, 3, 3], [4, 21, 3, 3]] | [[1, 0, 3, 3], [1, 3, 3, 3], [4, 0, 3, 3], [4, 3, 3, 3], [1, 6, 3, 3], [1, 9, 3, 3], [4, 6, 3, 3], [4, 9, 3, 3], [1, 12, 3, 3], [1, 15, 3, 3], [4, 12, 3, 3], [4, 15, 3, 3], [1, 18, 3, 3], [1, 21, 3, 3], [4, 18, 3, 3], [4, 21, 3, 3]] | Failed |
| exactly splittable #1 | [[0, 0, 4, 3], [4, 0, 4, 3]] | [[0, 0, 4, 3], [4, 0, 4, 3]] | Passed |
| odd width #1 | [[1, 1, 4, 4], [5, 1, 5, 4]] | [[1, 1, 4, 4], [5, 1, 5, 4]] | Passed |
| control #1 | [[2, 3, 8, 10], [10, 3, 8, 10]] | [[2, 3, 8, 10], [10, 3, 8, 10]] | Passed |
SHA-256 / 69da4917356635f2aa43dcb29caf6b39ede5c353233c860d2e9c9dba6d6af71f
HELD IN THE MEMBER ARCHIVE
The verified repair and its recorded checks are member-only.
This mechanism has 8 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.
Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.
Member access is invitation-based. Sign in with your invited account to inspect the repair.
Sign in to the archive ↗Verification & scope
Deterministic toy contract stipulated for this model; integer or exact arithmetic only, not a reproduction of any specific game engine. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:50:50.476702+00:00.
Case digest / c600c136aa44d661fd929b6bfdd550713f077bbcd4930d48799dbf4402fe333f