FA-52381 / Raster memory layout / Open access
Bitplane Word Storage: Bitplane word address loses word size or reverses plane scanlines · case 01
The returned physical layout descriptor disagrees with the declared buffer mapping at address.
ROOT CAUSE
Bitplane word address loses word size or reverses plane scanlines The faulty expression is plane_origin+p["y"]*row_bytes+word_column.
VERIFIED REPAIR
Apply the stipulated layout rule at address: plane_origin+p["y"]*row_bytes+word_column*2.
Unsuccessful approach: The attempted repair uses plane_origin+(p["h"]-1-p["y"])*row_bytes+word_column*2 and still violates the layout contract.
Case contract
A four-plane bitmap uses sixteen-bit words, most-significant-bit-first pixels, independent plane headers, and plane-major storage. Each row contains an extra sentinel word. Return word location and update mask without decoding colors. Return the named intermediate layout descriptor and final address fields; all quantities are integer byte offsets unless explicitly stated.
Why this case matters
Offline raster resource, upload, readback, and storage-layout regression model.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(p):
p = dict(p)
words = (p["w"]+15)//16
row_words = words+1
row_bytes = row_words*2
plane_bytes = p["h"]*row_bytes+4
plane_origin = p["base"]+p["plane"]*plane_bytes+4
word_column = p["x"]//16
bit_index = 15-p["x"]%16
mask = 1<<bit_index
address = plane_origin+p["y"]*row_bytes+word_column
last_word_mask = ((1<<(p["w"]%16))-1)<<(16-p["w"]%16) if p["w"]%16 else 65535
return {'words': words, 'row_words': row_words, 'row_bytes': row_bytes, 'plane_bytes': plane_bytes, 'plane_origin': plane_origin, 'word_column': word_column, 'bit_index': bit_index, 'mask': mask, 'address': address, 'last_word_mask': last_word_mask}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'w': 18, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 15, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 15, 'last_word_mask': 49152}), ({'w': 19, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 37, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 43, 'last_word_mask': 57344}), ({'w': 20, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 71, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 83, 'last_word_mask': 61440}), ({'w': 21, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 117, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 137, 'last_word_mask': 63488}), ({'w': 22, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 15, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 41, 'last_word_mask': 64512}), ({'w': 23, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 61, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 93, 'last_word_mask': 65024})], 2: [({'w': 19, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 26, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 26, 'last_word_mask': 57344}), ({'w': 20, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 48, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 54, 'last_word_mask': 61440}), ({'w': 21, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 82, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 94, 'last_word_mask': 63488}), ({'w': 22, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 128, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 148, 'last_word_mask': 64512}), ({'w': 23, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 26, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 52, 'last_word_mask': 65024}), ({'w': 24, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 72, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 104, 'last_word_mask': 65280})], 3: [({'w': 20, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 37, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 37, 'last_word_mask': 61440}), ({'w': 21, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 59, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 65, 'last_word_mask': 63488}), ({'w': 22, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 93, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 105, 'last_word_mask': 64512}), ({'w': 23, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 139, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 159, 'last_word_mask': 65024}), ({'w': 24, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 37, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 63, 'last_word_mask': 65280}), ({'w': 25, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 83, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 115, 'last_word_mask': 65408})], 4: [({'w': 21, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 48, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 48, 'last_word_mask': 63488}), ({'w': 22, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 70, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 76, 'last_word_mask': 64512}), ({'w': 23, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 104, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 116, 'last_word_mask': 65024}), ({'w': 24, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 150, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 170, 'last_word_mask': 65280}), ({'w': 25, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 48, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 74, 'last_word_mask': 65408}), ({'w': 26, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 94, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 126, 'last_word_mask': 65472})], 5: [({'w': 22, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 59, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 59, 'last_word_mask': 64512}), ({'w': 23, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 81, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 87, 'last_word_mask': 65024}), ({'w': 24, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 115, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 127, 'last_word_mask': 65280}), ({'w': 25, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 161, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 181, 'last_word_mask': 65408}), ({'w': 26, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 59, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 85, 'last_word_mask': 65472}), ({'w': 27, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 105, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 137, 'last_word_mask': 65504})]}
for i, (p, expected) in enumerate(cases[N]):
check("layout fixture " + str(i + 1), solve(p), 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 |
|---|---|---|---|
| layout fixture 1 | {'address': 15, 'bit_index': 15, 'last_word_mask': 49152, 'mask': 32768, 'plane_bytes': 16, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 15, 'bit_index': 15, 'last_word_mask': 49152, 'mask': 32768, 'plane_bytes': 16, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Passed |
| layout fixture 2 | {'address': 43, 'bit_index': 14, 'last_word_mask': 57344, 'mask': 16384, 'plane_bytes': 22, 'plane_origin': 37, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 43, 'bit_index': 14, 'last_word_mask': 57344, 'mask': 16384, 'plane_bytes': 22, 'plane_origin': 37, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Passed |
| layout fixture 3 | {'address': 83, 'bit_index': 0, 'last_word_mask': 61440, 'mask': 1, 'plane_bytes': 28, 'plane_origin': 71, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 83, 'bit_index': 0, 'last_word_mask': 61440, 'mask': 1, 'plane_bytes': 28, 'plane_origin': 71, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Passed |
| layout fixture 4 | {'address': 136, 'bit_index': 15, 'last_word_mask': 63488, 'mask': 32768, 'plane_bytes': 34, 'plane_origin': 117, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 137, 'bit_index': 15, 'last_word_mask': 63488, 'mask': 32768, 'plane_bytes': 34, 'plane_origin': 117, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Failed |
| layout fixture 5 | {'address': 40, 'bit_index': 14, 'last_word_mask': 64512, 'mask': 16384, 'plane_bytes': 40, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 41, 'bit_index': 14, 'last_word_mask': 64512, 'mask': 16384, 'plane_bytes': 40, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Failed |
| layout fixture 6 | {'address': 92, 'bit_index': 13, 'last_word_mask': 65024, 'mask': 8192, 'plane_bytes': 46, 'plane_origin': 61, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 93, 'bit_index': 13, 'last_word_mask': 65024, 'mask': 8192, 'plane_bytes': 46, 'plane_origin': 61, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Failed |
SHA-256 / 9a781e453c9ba38209add5704570f4aecbf16df0000eece92b3cd9bf4477c6f9
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(p):
p = dict(p)
words = (p["w"]+15)//16
row_words = words+1
row_bytes = row_words*2
plane_bytes = p["h"]*row_bytes+4
plane_origin = p["base"]+p["plane"]*plane_bytes+4
word_column = p["x"]//16
bit_index = 15-p["x"]%16
mask = 1<<bit_index
address = plane_origin+(p["h"]-1-p["y"])*row_bytes+word_column*2
last_word_mask = ((1<<(p["w"]%16))-1)<<(16-p["w"]%16) if p["w"]%16 else 65535
return {'words': words, 'row_words': row_words, 'row_bytes': row_bytes, 'plane_bytes': plane_bytes, 'plane_origin': plane_origin, 'word_column': word_column, 'bit_index': bit_index, 'mask': mask, 'address': address, 'last_word_mask': last_word_mask}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'w': 18, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 15, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 15, 'last_word_mask': 49152}), ({'w': 19, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 37, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 43, 'last_word_mask': 57344}), ({'w': 20, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 71, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 83, 'last_word_mask': 61440}), ({'w': 21, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 117, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 137, 'last_word_mask': 63488}), ({'w': 22, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 15, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 41, 'last_word_mask': 64512}), ({'w': 23, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 61, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 93, 'last_word_mask': 65024})], 2: [({'w': 19, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 26, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 26, 'last_word_mask': 57344}), ({'w': 20, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 48, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 54, 'last_word_mask': 61440}), ({'w': 21, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 82, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 94, 'last_word_mask': 63488}), ({'w': 22, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 128, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 148, 'last_word_mask': 64512}), ({'w': 23, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 26, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 52, 'last_word_mask': 65024}), ({'w': 24, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 72, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 104, 'last_word_mask': 65280})], 3: [({'w': 20, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 37, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 37, 'last_word_mask': 61440}), ({'w': 21, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 59, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 65, 'last_word_mask': 63488}), ({'w': 22, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 93, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 105, 'last_word_mask': 64512}), ({'w': 23, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 139, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 159, 'last_word_mask': 65024}), ({'w': 24, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 37, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 63, 'last_word_mask': 65280}), ({'w': 25, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 83, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 115, 'last_word_mask': 65408})], 4: [({'w': 21, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 48, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 48, 'last_word_mask': 63488}), ({'w': 22, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 70, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 76, 'last_word_mask': 64512}), ({'w': 23, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 104, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 116, 'last_word_mask': 65024}), ({'w': 24, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 150, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 170, 'last_word_mask': 65280}), ({'w': 25, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 48, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 74, 'last_word_mask': 65408}), ({'w': 26, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 94, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 126, 'last_word_mask': 65472})], 5: [({'w': 22, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 59, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 59, 'last_word_mask': 64512}), ({'w': 23, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 81, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 87, 'last_word_mask': 65024}), ({'w': 24, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 115, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 127, 'last_word_mask': 65280}), ({'w': 25, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 161, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 181, 'last_word_mask': 65408}), ({'w': 26, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 59, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 85, 'last_word_mask': 65472}), ({'w': 27, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 105, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 137, 'last_word_mask': 65504})]}
for i, (p, expected) in enumerate(cases[N]):
check("layout fixture " + str(i + 1), solve(p), 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 |
|---|---|---|---|
| layout fixture 1 | {'address': 21, 'bit_index': 15, 'last_word_mask': 49152, 'mask': 32768, 'plane_bytes': 16, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 15, 'bit_index': 15, 'last_word_mask': 49152, 'mask': 32768, 'plane_bytes': 16, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Failed |
| layout fixture 2 | {'address': 43, 'bit_index': 14, 'last_word_mask': 57344, 'mask': 16384, 'plane_bytes': 22, 'plane_origin': 37, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 43, 'bit_index': 14, 'last_word_mask': 57344, 'mask': 16384, 'plane_bytes': 22, 'plane_origin': 37, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Passed |
| layout fixture 3 | {'address': 77, 'bit_index': 0, 'last_word_mask': 61440, 'mask': 1, 'plane_bytes': 28, 'plane_origin': 71, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 83, 'bit_index': 0, 'last_word_mask': 61440, 'mask': 1, 'plane_bytes': 28, 'plane_origin': 71, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Failed |
| layout fixture 4 | {'address': 125, 'bit_index': 15, 'last_word_mask': 63488, 'mask': 32768, 'plane_bytes': 34, 'plane_origin': 117, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 137, 'bit_index': 15, 'last_word_mask': 63488, 'mask': 32768, 'plane_bytes': 34, 'plane_origin': 117, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Failed |
| layout fixture 5 | {'address': 23, 'bit_index': 14, 'last_word_mask': 64512, 'mask': 16384, 'plane_bytes': 40, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 41, 'bit_index': 14, 'last_word_mask': 64512, 'mask': 16384, 'plane_bytes': 40, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Failed |
| layout fixture 6 | {'address': 69, 'bit_index': 13, 'last_word_mask': 65024, 'mask': 8192, 'plane_bytes': 46, 'plane_origin': 61, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 93, 'bit_index': 13, 'last_word_mask': 65024, 'mask': 8192, 'plane_bytes': 46, 'plane_origin': 61, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Failed |
SHA-256 / c37b8e2ca97c0d76c2d22e40b2664b805e92836c5051a49032ca92b961e871b7
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(p):
p = dict(p)
words = (p["w"]+15)//16
row_words = words+1
row_bytes = row_words*2
plane_bytes = p["h"]*row_bytes+4
plane_origin = p["base"]+p["plane"]*plane_bytes+4
word_column = p["x"]//16
bit_index = 15-p["x"]%16
mask = 1<<bit_index
address = plane_origin+p["y"]*row_bytes+word_column*2
last_word_mask = ((1<<(p["w"]%16))-1)<<(16-p["w"]%16) if p["w"]%16 else 65535
return {'words': words, 'row_words': row_words, 'row_bytes': row_bytes, 'plane_bytes': plane_bytes, 'plane_origin': plane_origin, 'word_column': word_column, 'bit_index': bit_index, 'mask': mask, 'address': address, 'last_word_mask': last_word_mask}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'w': 18, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 15, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 15, 'last_word_mask': 49152}), ({'w': 19, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 37, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 43, 'last_word_mask': 57344}), ({'w': 20, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 71, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 83, 'last_word_mask': 61440}), ({'w': 21, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 117, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 137, 'last_word_mask': 63488}), ({'w': 22, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 15, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 41, 'last_word_mask': 64512}), ({'w': 23, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 11}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 61, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 93, 'last_word_mask': 65024})], 2: [({'w': 19, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 26, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 26, 'last_word_mask': 57344}), ({'w': 20, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 48, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 54, 'last_word_mask': 61440}), ({'w': 21, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 82, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 94, 'last_word_mask': 63488}), ({'w': 22, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 128, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 148, 'last_word_mask': 64512}), ({'w': 23, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 26, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 52, 'last_word_mask': 65024}), ({'w': 24, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 22}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 72, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 104, 'last_word_mask': 65280})], 3: [({'w': 20, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 37, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 37, 'last_word_mask': 61440}), ({'w': 21, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 59, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 65, 'last_word_mask': 63488}), ({'w': 22, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 93, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 105, 'last_word_mask': 64512}), ({'w': 23, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 139, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 159, 'last_word_mask': 65024}), ({'w': 24, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 37, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 63, 'last_word_mask': 65280}), ({'w': 25, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 33}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 83, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 115, 'last_word_mask': 65408})], 4: [({'w': 21, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 48, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 48, 'last_word_mask': 63488}), ({'w': 22, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 70, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 76, 'last_word_mask': 64512}), ({'w': 23, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 104, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 116, 'last_word_mask': 65024}), ({'w': 24, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 150, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 170, 'last_word_mask': 65280}), ({'w': 25, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 48, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 74, 'last_word_mask': 65408}), ({'w': 26, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 44}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 94, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 126, 'last_word_mask': 65472})], 5: [({'w': 22, 'h': 2, 'x': 0, 'y': 0, 'plane': 0, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 16, 'plane_origin': 59, 'word_column': 0, 'bit_index': 15, 'mask': 32768, 'address': 59, 'last_word_mask': 64512}), ({'w': 23, 'h': 3, 'x': 1, 'y': 1, 'plane': 1, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 22, 'plane_origin': 81, 'word_column': 0, 'bit_index': 14, 'mask': 16384, 'address': 87, 'last_word_mask': 65024}), ({'w': 24, 'h': 4, 'x': 15, 'y': 2, 'plane': 2, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 28, 'plane_origin': 115, 'word_column': 0, 'bit_index': 0, 'mask': 1, 'address': 127, 'last_word_mask': 65280}), ({'w': 25, 'h': 5, 'x': 16, 'y': 3, 'plane': 3, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 34, 'plane_origin': 161, 'word_column': 1, 'bit_index': 15, 'mask': 32768, 'address': 181, 'last_word_mask': 65408}), ({'w': 26, 'h': 6, 'x': 17, 'y': 4, 'plane': 0, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 40, 'plane_origin': 59, 'word_column': 1, 'bit_index': 14, 'mask': 16384, 'address': 85, 'last_word_mask': 65472}), ({'w': 27, 'h': 7, 'x': 18, 'y': 5, 'plane': 1, 'base': 55}, {'words': 2, 'row_words': 3, 'row_bytes': 6, 'plane_bytes': 46, 'plane_origin': 105, 'word_column': 1, 'bit_index': 13, 'mask': 8192, 'address': 137, 'last_word_mask': 65504})]}
for i, (p, expected) in enumerate(cases[N]):
check("layout fixture " + str(i + 1), solve(p), 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 |
|---|---|---|---|
| layout fixture 1 | {'address': 15, 'bit_index': 15, 'last_word_mask': 49152, 'mask': 32768, 'plane_bytes': 16, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 15, 'bit_index': 15, 'last_word_mask': 49152, 'mask': 32768, 'plane_bytes': 16, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Passed |
| layout fixture 2 | {'address': 43, 'bit_index': 14, 'last_word_mask': 57344, 'mask': 16384, 'plane_bytes': 22, 'plane_origin': 37, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 43, 'bit_index': 14, 'last_word_mask': 57344, 'mask': 16384, 'plane_bytes': 22, 'plane_origin': 37, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Passed |
| layout fixture 3 | {'address': 83, 'bit_index': 0, 'last_word_mask': 61440, 'mask': 1, 'plane_bytes': 28, 'plane_origin': 71, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | {'address': 83, 'bit_index': 0, 'last_word_mask': 61440, 'mask': 1, 'plane_bytes': 28, 'plane_origin': 71, 'row_bytes': 6, 'row_words': 3, 'word_column': 0, 'words': 2} | Passed |
| layout fixture 4 | {'address': 137, 'bit_index': 15, 'last_word_mask': 63488, 'mask': 32768, 'plane_bytes': 34, 'plane_origin': 117, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 137, 'bit_index': 15, 'last_word_mask': 63488, 'mask': 32768, 'plane_bytes': 34, 'plane_origin': 117, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Passed |
| layout fixture 5 | {'address': 41, 'bit_index': 14, 'last_word_mask': 64512, 'mask': 16384, 'plane_bytes': 40, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 41, 'bit_index': 14, 'last_word_mask': 64512, 'mask': 16384, 'plane_bytes': 40, 'plane_origin': 15, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Passed |
| layout fixture 6 | {'address': 93, 'bit_index': 13, 'last_word_mask': 65024, 'mask': 8192, 'plane_bytes': 46, 'plane_origin': 61, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | {'address': 93, 'bit_index': 13, 'last_word_mask': 65024, 'mask': 8192, 'plane_bytes': 46, 'plane_origin': 61, 'row_bytes': 6, 'row_words': 3, 'word_column': 1, 'words': 2} | Passed |
SHA-256 / 6fa0dc5c606e559115fb62d6b97869e08af289e42f1fb4f27bee7eb913a5e826
Verification & scope
Stipulated deterministic toy buffer layout; not a graphics API, codec, GPU vendor tiling specification, or hardware-conformance claim. Inputs satisfy the dimensions and bounds stated by the model. 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:45:28.282122+00:00.
Case digest / 23bc31623436d06e2a94de0e99ff1c5346faa7661ccd820ae2be4d77239a6805