FAILURE MAP
← Case archive

FA-52186 / Raster memory layout / Open access

Cube Face Cross Atlas: Cube atlas allocation omits empty cross cells or uses width as height · case 01

The returned physical layout descriptor disagrees with the declared buffer mapping at allocation_end.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Cube atlas allocation omits empty cross cells or uses width as height The faulty expression is p["base"]+6*p["size"]*p["size"]*p["b"].

VERIFIED REPAIR

Apply the stipulated layout rule at allocation_end: p["base"]+atlas_height*row_pitch.

Unsuccessful approach: The attempted repair uses p["base"]+atlas_width*row_pitch and still violates the layout contract.

Case contract

Six square cube faces occupy stipulated cells of a 4x3 atlas cross: [(2,1),(0,1),(1,0),(1,2),(1,1),(3,1)]. Every cell has a one-texel gutter and atlas rows end with a three-byte guard. Face sampling is storage addressing only. 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)
    cell_size = p["size"]+2
    atlas_width = 4*cell_size
    atlas_height = 3*cell_size
    face_cell = [(2,1),(0,1),(1,0),(1,2),(1,1),(3,1)][p["face"]]
    cell_origin = [face_cell[0]*cell_size,face_cell[1]*cell_size]
    pixel_position = [cell_origin[0]+1+p["u"],cell_origin[1]+1+p["v"]]
    row_pitch = atlas_width*p["b"]+3
    address = p["base"]+pixel_position[1]*row_pitch+pixel_position[0]*p["b"]
    face_row_end = p["base"]+(cell_origin[1]+1+p["v"])*row_pitch+(cell_origin[0]+1+p["size"])*p["b"]
    allocation_end = p["base"]+6*p["size"]*p["size"]*p["b"]
    return {'cell_size': cell_size, 'atlas_width': atlas_width, 'atlas_height': atlas_height, 'face_cell': face_cell, 'cell_origin': cell_origin, 'pixel_position': pixel_position, 'row_pitch': row_pitch, 'address': address, 'face_row_end': face_row_end, 'allocation_end': allocation_end}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'size': 2, 'face': 0, 'u': 0, 'v': 1, 'b': 2, 'base': 7}, {'cell_size': 4, 'atlas_width': 16, 'atlas_height': 12, 'face_cell': (2, 1), 'cell_origin': [8, 4], 'pixel_position': [9, 6], 'row_pitch': 35, 'address': 235, 'face_row_end': 239, 'allocation_end': 427}), ({'size': 3, 'face': 1, 'u': 1, 'v': 2, 'b': 2, 'base': 7}, {'cell_size': 5, 'atlas_width': 20, 'atlas_height': 15, 'face_cell': (0, 1), 'cell_origin': [0, 5], 'pixel_position': [2, 8], 'row_pitch': 43, 'address': 355, 'face_row_end': 359, 'allocation_end': 652}), ({'size': 4, 'face': 2, 'u': 2, 'v': 3, 'b': 2, 'base': 7}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (1, 0), 'cell_origin': [6, 0], 'pixel_position': [9, 4], 'row_pitch': 51, 'address': 229, 'face_row_end': 233, 'allocation_end': 925}), ({'size': 5, 'face': 3, 'u': 3, 'v': 4, 'b': 2, 'base': 7}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (1, 2), 'cell_origin': [7, 14], 'pixel_position': [11, 19], 'row_pitch': 59, 'address': 1150, 'face_row_end': 1154, 'allocation_end': 1246}), ({'size': 6, 'face': 4, 'u': 4, 'v': 5, 'b': 2, 'base': 7}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 1), 'cell_origin': [8, 8], 'pixel_position': [13, 14], 'row_pitch': 67, 'address': 971, 'face_row_end': 975, 'allocation_end': 1615}), ({'size': 7, 'face': 5, 'u': 5, 'v': 6, 'b': 2, 'base': 7}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (3, 1), 'cell_origin': [27, 9], 'pixel_position': [33, 16], 'row_pitch': 75, 'address': 1273, 'face_row_end': 1277, 'allocation_end': 2032})], 2: [({'size': 3, 'face': 0, 'u': 0, 'v': 1, 'b': 3, 'base': 14}, {'cell_size': 5, 'atlas_width': 20, 'atlas_height': 15, 'face_cell': (2, 1), 'cell_origin': [10, 5], 'pixel_position': [11, 7], 'row_pitch': 63, 'address': 488, 'face_row_end': 497, 'allocation_end': 959}), ({'size': 4, 'face': 1, 'u': 1, 'v': 2, 'b': 3, 'base': 14}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (0, 1), 'cell_origin': [0, 6], 'pixel_position': [2, 9], 'row_pitch': 75, 'address': 695, 'face_row_end': 704, 'allocation_end': 1364}), ({'size': 5, 'face': 2, 'u': 2, 'v': 3, 'b': 3, 'base': 14}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (1, 0), 'cell_origin': [7, 0], 'pixel_position': [10, 4], 'row_pitch': 87, 'address': 392, 'face_row_end': 401, 'allocation_end': 1841}), ({'size': 6, 'face': 3, 'u': 3, 'v': 4, 'b': 3, 'base': 14}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 2), 'cell_origin': [8, 16], 'pixel_position': [12, 21], 'row_pitch': 99, 'address': 2129, 'face_row_end': 2138, 'allocation_end': 2390}), ({'size': 7, 'face': 4, 'u': 4, 'v': 5, 'b': 3, 'base': 14}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 1), 'cell_origin': [9, 9], 'pixel_position': [14, 15], 'row_pitch': 111, 'address': 1721, 'face_row_end': 1730, 'allocation_end': 3011}), ({'size': 8, 'face': 5, 'u': 5, 'v': 6, 'b': 3, 'base': 14}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (3, 1), 'cell_origin': [30, 10], 'pixel_position': [36, 17], 'row_pitch': 123, 'address': 2213, 'face_row_end': 2222, 'allocation_end': 3704})], 3: [({'size': 4, 'face': 0, 'u': 0, 'v': 1, 'b': 4, 'base': 21}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (2, 1), 'cell_origin': [12, 6], 'pixel_position': [13, 8], 'row_pitch': 99, 'address': 865, 'face_row_end': 881, 'allocation_end': 1803}), ({'size': 5, 'face': 1, 'u': 1, 'v': 2, 'b': 4, 'base': 21}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (0, 1), 'cell_origin': [0, 7], 'pixel_position': [2, 10], 'row_pitch': 115, 'address': 1179, 'face_row_end': 1195, 'allocation_end': 2436}), ({'size': 6, 'face': 2, 'u': 2, 'v': 3, 'b': 4, 'base': 21}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 0), 'cell_origin': [8, 0], 'pixel_position': [11, 4], 'row_pitch': 131, 'address': 589, 'face_row_end': 605, 'allocation_end': 3165}), ({'size': 7, 'face': 3, 'u': 3, 'v': 4, 'b': 4, 'base': 21}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 2), 'cell_origin': [9, 18], 'pixel_position': [13, 23], 'row_pitch': 147, 'address': 3454, 'face_row_end': 3470, 'allocation_end': 3990}), ({'size': 8, 'face': 4, 'u': 4, 'v': 5, 'b': 4, 'base': 21}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 1), 'cell_origin': [10, 10], 'pixel_position': [15, 16], 'row_pitch': 163, 'address': 2689, 'face_row_end': 2705, 'allocation_end': 4911}), ({'size': 9, 'face': 5, 'u': 5, 'v': 6, 'b': 4, 'base': 21}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (3, 1), 'cell_origin': [33, 11], 'pixel_position': [39, 18], 'row_pitch': 179, 'address': 3399, 'face_row_end': 3415, 'allocation_end': 5928})], 4: [({'size': 5, 'face': 0, 'u': 0, 'v': 1, 'b': 5, 'base': 28}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (2, 1), 'cell_origin': [14, 7], 'pixel_position': [15, 9], 'row_pitch': 143, 'address': 1390, 'face_row_end': 1415, 'allocation_end': 3031}), ({'size': 6, 'face': 1, 'u': 1, 'v': 2, 'b': 5, 'base': 28}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (0, 1), 'cell_origin': [0, 8], 'pixel_position': [2, 11], 'row_pitch': 163, 'address': 1831, 'face_row_end': 1856, 'allocation_end': 3940}), ({'size': 7, 'face': 2, 'u': 2, 'v': 3, 'b': 5, 'base': 28}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 0), 'cell_origin': [9, 0], 'pixel_position': [12, 4], 'row_pitch': 183, 'address': 820, 'face_row_end': 845, 'allocation_end': 4969}), ({'size': 8, 'face': 3, 'u': 3, 'v': 4, 'b': 5, 'base': 28}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 2), 'cell_origin': [10, 20], 'pixel_position': [14, 25], 'row_pitch': 203, 'address': 5173, 'face_row_end': 5198, 'allocation_end': 6118}), ({'size': 9, 'face': 4, 'u': 4, 'v': 5, 'b': 5, 'base': 28}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (1, 1), 'cell_origin': [11, 11], 'pixel_position': [16, 17], 'row_pitch': 223, 'address': 3899, 'face_row_end': 3924, 'allocation_end': 7387}), ({'size': 10, 'face': 5, 'u': 5, 'v': 6, 'b': 5, 'base': 28}, {'cell_size': 12, 'atlas_width': 48, 'atlas_height': 36, 'face_cell': (3, 1), 'cell_origin': [36, 12], 'pixel_position': [42, 19], 'row_pitch': 243, 'address': 4855, 'face_row_end': 4880, 'allocation_end': 8776})], 5: [({'size': 6, 'face': 0, 'u': 0, 'v': 1, 'b': 6, 'base': 35}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (2, 1), 'cell_origin': [16, 8], 'pixel_position': [17, 10], 'row_pitch': 195, 'address': 2087, 'face_row_end': 2123, 'allocation_end': 4715}), ({'size': 7, 'face': 1, 'u': 1, 'v': 2, 'b': 6, 'base': 35}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (0, 1), 'cell_origin': [0, 9], 'pixel_position': [2, 12], 'row_pitch': 219, 'address': 2675, 'face_row_end': 2711, 'allocation_end': 5948}), ({'size': 8, 'face': 2, 'u': 2, 'v': 3, 'b': 6, 'base': 35}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 0), 'cell_origin': [10, 0], 'pixel_position': [13, 4], 'row_pitch': 243, 'address': 1085, 'face_row_end': 1121, 'allocation_end': 7325}), ({'size': 9, 'face': 3, 'u': 3, 'v': 4, 'b': 6, 'base': 35}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (1, 2), 'cell_origin': [11, 22], 'pixel_position': [15, 27], 'row_pitch': 267, 'address': 7334, 'face_row_end': 7370, 'allocation_end': 8846}), ({'size': 10, 'face': 4, 'u': 4, 'v': 5, 'b': 6, 'base': 35}, {'cell_size': 12, 'atlas_width': 48, 'atlas_height': 36, 'face_cell': (1, 1), 'cell_origin': [12, 12], 'pixel_position': [17, 18], 'row_pitch': 291, 'address': 5375, 'face_row_end': 5411, 'allocation_end': 10511}), ({'size': 11, 'face': 5, 'u': 5, 'v': 6, 'b': 6, 'base': 35}, {'cell_size': 13, 'atlas_width': 52, 'atlas_height': 39, 'face_cell': (3, 1), 'cell_origin': [39, 13], 'pixel_position': [45, 20], 'row_pitch': 315, 'address': 6605, 'face_row_end': 6641, 'allocation_end': 12320})]}
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 fixtureActualExpectedOutcome
layout fixture 1{'address': 235, 'allocation_end': 55, 'atlas_height': 12, 'atlas_width': 16, 'cell_origin': [8, 4], 'cell_size': 4, 'face_cell': [2, 1], 'face_row_end': 239, 'pixel_position': [9, 6], 'row_pitch': 35}{'address': 235, 'allocation_end': 427, 'atlas_height': 12, 'atlas_width': 16, 'cell_origin': [8, 4], 'cell_size': 4, 'face_cell': [2, 1], 'face_row_end': 239, 'pixel_position': [9, 6], 'row_pitch': 35}Failed
layout fixture 2{'address': 355, 'allocation_end': 115, 'atlas_height': 15, 'atlas_width': 20, 'cell_origin': [0, 5], 'cell_size': 5, 'face_cell': [0, 1], 'face_row_end': 359, 'pixel_position': [2, 8], 'row_pitch': 43}{'address': 355, 'allocation_end': 652, 'atlas_height': 15, 'atlas_width': 20, 'cell_origin': [0, 5], 'cell_size': 5, 'face_cell': [0, 1], 'face_row_end': 359, 'pixel_position': [2, 8], 'row_pitch': 43}Failed
layout fixture 3{'address': 229, 'allocation_end': 199, 'atlas_height': 18, 'atlas_width': 24, 'cell_origin': [6, 0], 'cell_size': 6, 'face_cell': [1, 0], 'face_row_end': 233, 'pixel_position': [9, 4], 'row_pitch': 51}{'address': 229, 'allocation_end': 925, 'atlas_height': 18, 'atlas_width': 24, 'cell_origin': [6, 0], 'cell_size': 6, 'face_cell': [1, 0], 'face_row_end': 233, 'pixel_position': [9, 4], 'row_pitch': 51}Failed
layout fixture 4{'address': 1150, 'allocation_end': 307, 'atlas_height': 21, 'atlas_width': 28, 'cell_origin': [7, 14], 'cell_size': 7, 'face_cell': [1, 2], 'face_row_end': 1154, 'pixel_position': [11, 19], 'row_pitch': 59}{'address': 1150, 'allocation_end': 1246, 'atlas_height': 21, 'atlas_width': 28, 'cell_origin': [7, 14], 'cell_size': 7, 'face_cell': [1, 2], 'face_row_end': 1154, 'pixel_position': [11, 19], 'row_pitch': 59}Failed
layout fixture 5{'address': 971, 'allocation_end': 439, 'atlas_height': 24, 'atlas_width': 32, 'cell_origin': [8, 8], 'cell_size': 8, 'face_cell': [1, 1], 'face_row_end': 975, 'pixel_position': [13, 14], 'row_pitch': 67}{'address': 971, 'allocation_end': 1615, 'atlas_height': 24, 'atlas_width': 32, 'cell_origin': [8, 8], 'cell_size': 8, 'face_cell': [1, 1], 'face_row_end': 975, 'pixel_position': [13, 14], 'row_pitch': 67}Failed
layout fixture 6{'address': 1273, 'allocation_end': 595, 'atlas_height': 27, 'atlas_width': 36, 'cell_origin': [27, 9], 'cell_size': 9, 'face_cell': [3, 1], 'face_row_end': 1277, 'pixel_position': [33, 16], 'row_pitch': 75}{'address': 1273, 'allocation_end': 2032, 'atlas_height': 27, 'atlas_width': 36, 'cell_origin': [27, 9], 'cell_size': 9, 'face_cell': [3, 1], 'face_row_end': 1277, 'pixel_position': [33, 16], 'row_pitch': 75}Failed

SHA-256 / 873a88ac3978668510ab16604a739b58d6c106d6445eaf5f61302ff0a1a56547

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)
    cell_size = p["size"]+2
    atlas_width = 4*cell_size
    atlas_height = 3*cell_size
    face_cell = [(2,1),(0,1),(1,0),(1,2),(1,1),(3,1)][p["face"]]
    cell_origin = [face_cell[0]*cell_size,face_cell[1]*cell_size]
    pixel_position = [cell_origin[0]+1+p["u"],cell_origin[1]+1+p["v"]]
    row_pitch = atlas_width*p["b"]+3
    address = p["base"]+pixel_position[1]*row_pitch+pixel_position[0]*p["b"]
    face_row_end = p["base"]+(cell_origin[1]+1+p["v"])*row_pitch+(cell_origin[0]+1+p["size"])*p["b"]
    allocation_end = p["base"]+atlas_width*row_pitch
    return {'cell_size': cell_size, 'atlas_width': atlas_width, 'atlas_height': atlas_height, 'face_cell': face_cell, 'cell_origin': cell_origin, 'pixel_position': pixel_position, 'row_pitch': row_pitch, 'address': address, 'face_row_end': face_row_end, 'allocation_end': allocation_end}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'size': 2, 'face': 0, 'u': 0, 'v': 1, 'b': 2, 'base': 7}, {'cell_size': 4, 'atlas_width': 16, 'atlas_height': 12, 'face_cell': (2, 1), 'cell_origin': [8, 4], 'pixel_position': [9, 6], 'row_pitch': 35, 'address': 235, 'face_row_end': 239, 'allocation_end': 427}), ({'size': 3, 'face': 1, 'u': 1, 'v': 2, 'b': 2, 'base': 7}, {'cell_size': 5, 'atlas_width': 20, 'atlas_height': 15, 'face_cell': (0, 1), 'cell_origin': [0, 5], 'pixel_position': [2, 8], 'row_pitch': 43, 'address': 355, 'face_row_end': 359, 'allocation_end': 652}), ({'size': 4, 'face': 2, 'u': 2, 'v': 3, 'b': 2, 'base': 7}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (1, 0), 'cell_origin': [6, 0], 'pixel_position': [9, 4], 'row_pitch': 51, 'address': 229, 'face_row_end': 233, 'allocation_end': 925}), ({'size': 5, 'face': 3, 'u': 3, 'v': 4, 'b': 2, 'base': 7}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (1, 2), 'cell_origin': [7, 14], 'pixel_position': [11, 19], 'row_pitch': 59, 'address': 1150, 'face_row_end': 1154, 'allocation_end': 1246}), ({'size': 6, 'face': 4, 'u': 4, 'v': 5, 'b': 2, 'base': 7}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 1), 'cell_origin': [8, 8], 'pixel_position': [13, 14], 'row_pitch': 67, 'address': 971, 'face_row_end': 975, 'allocation_end': 1615}), ({'size': 7, 'face': 5, 'u': 5, 'v': 6, 'b': 2, 'base': 7}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (3, 1), 'cell_origin': [27, 9], 'pixel_position': [33, 16], 'row_pitch': 75, 'address': 1273, 'face_row_end': 1277, 'allocation_end': 2032})], 2: [({'size': 3, 'face': 0, 'u': 0, 'v': 1, 'b': 3, 'base': 14}, {'cell_size': 5, 'atlas_width': 20, 'atlas_height': 15, 'face_cell': (2, 1), 'cell_origin': [10, 5], 'pixel_position': [11, 7], 'row_pitch': 63, 'address': 488, 'face_row_end': 497, 'allocation_end': 959}), ({'size': 4, 'face': 1, 'u': 1, 'v': 2, 'b': 3, 'base': 14}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (0, 1), 'cell_origin': [0, 6], 'pixel_position': [2, 9], 'row_pitch': 75, 'address': 695, 'face_row_end': 704, 'allocation_end': 1364}), ({'size': 5, 'face': 2, 'u': 2, 'v': 3, 'b': 3, 'base': 14}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (1, 0), 'cell_origin': [7, 0], 'pixel_position': [10, 4], 'row_pitch': 87, 'address': 392, 'face_row_end': 401, 'allocation_end': 1841}), ({'size': 6, 'face': 3, 'u': 3, 'v': 4, 'b': 3, 'base': 14}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 2), 'cell_origin': [8, 16], 'pixel_position': [12, 21], 'row_pitch': 99, 'address': 2129, 'face_row_end': 2138, 'allocation_end': 2390}), ({'size': 7, 'face': 4, 'u': 4, 'v': 5, 'b': 3, 'base': 14}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 1), 'cell_origin': [9, 9], 'pixel_position': [14, 15], 'row_pitch': 111, 'address': 1721, 'face_row_end': 1730, 'allocation_end': 3011}), ({'size': 8, 'face': 5, 'u': 5, 'v': 6, 'b': 3, 'base': 14}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (3, 1), 'cell_origin': [30, 10], 'pixel_position': [36, 17], 'row_pitch': 123, 'address': 2213, 'face_row_end': 2222, 'allocation_end': 3704})], 3: [({'size': 4, 'face': 0, 'u': 0, 'v': 1, 'b': 4, 'base': 21}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (2, 1), 'cell_origin': [12, 6], 'pixel_position': [13, 8], 'row_pitch': 99, 'address': 865, 'face_row_end': 881, 'allocation_end': 1803}), ({'size': 5, 'face': 1, 'u': 1, 'v': 2, 'b': 4, 'base': 21}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (0, 1), 'cell_origin': [0, 7], 'pixel_position': [2, 10], 'row_pitch': 115, 'address': 1179, 'face_row_end': 1195, 'allocation_end': 2436}), ({'size': 6, 'face': 2, 'u': 2, 'v': 3, 'b': 4, 'base': 21}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 0), 'cell_origin': [8, 0], 'pixel_position': [11, 4], 'row_pitch': 131, 'address': 589, 'face_row_end': 605, 'allocation_end': 3165}), ({'size': 7, 'face': 3, 'u': 3, 'v': 4, 'b': 4, 'base': 21}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 2), 'cell_origin': [9, 18], 'pixel_position': [13, 23], 'row_pitch': 147, 'address': 3454, 'face_row_end': 3470, 'allocation_end': 3990}), ({'size': 8, 'face': 4, 'u': 4, 'v': 5, 'b': 4, 'base': 21}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 1), 'cell_origin': [10, 10], 'pixel_position': [15, 16], 'row_pitch': 163, 'address': 2689, 'face_row_end': 2705, 'allocation_end': 4911}), ({'size': 9, 'face': 5, 'u': 5, 'v': 6, 'b': 4, 'base': 21}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (3, 1), 'cell_origin': [33, 11], 'pixel_position': [39, 18], 'row_pitch': 179, 'address': 3399, 'face_row_end': 3415, 'allocation_end': 5928})], 4: [({'size': 5, 'face': 0, 'u': 0, 'v': 1, 'b': 5, 'base': 28}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (2, 1), 'cell_origin': [14, 7], 'pixel_position': [15, 9], 'row_pitch': 143, 'address': 1390, 'face_row_end': 1415, 'allocation_end': 3031}), ({'size': 6, 'face': 1, 'u': 1, 'v': 2, 'b': 5, 'base': 28}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (0, 1), 'cell_origin': [0, 8], 'pixel_position': [2, 11], 'row_pitch': 163, 'address': 1831, 'face_row_end': 1856, 'allocation_end': 3940}), ({'size': 7, 'face': 2, 'u': 2, 'v': 3, 'b': 5, 'base': 28}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 0), 'cell_origin': [9, 0], 'pixel_position': [12, 4], 'row_pitch': 183, 'address': 820, 'face_row_end': 845, 'allocation_end': 4969}), ({'size': 8, 'face': 3, 'u': 3, 'v': 4, 'b': 5, 'base': 28}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 2), 'cell_origin': [10, 20], 'pixel_position': [14, 25], 'row_pitch': 203, 'address': 5173, 'face_row_end': 5198, 'allocation_end': 6118}), ({'size': 9, 'face': 4, 'u': 4, 'v': 5, 'b': 5, 'base': 28}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (1, 1), 'cell_origin': [11, 11], 'pixel_position': [16, 17], 'row_pitch': 223, 'address': 3899, 'face_row_end': 3924, 'allocation_end': 7387}), ({'size': 10, 'face': 5, 'u': 5, 'v': 6, 'b': 5, 'base': 28}, {'cell_size': 12, 'atlas_width': 48, 'atlas_height': 36, 'face_cell': (3, 1), 'cell_origin': [36, 12], 'pixel_position': [42, 19], 'row_pitch': 243, 'address': 4855, 'face_row_end': 4880, 'allocation_end': 8776})], 5: [({'size': 6, 'face': 0, 'u': 0, 'v': 1, 'b': 6, 'base': 35}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (2, 1), 'cell_origin': [16, 8], 'pixel_position': [17, 10], 'row_pitch': 195, 'address': 2087, 'face_row_end': 2123, 'allocation_end': 4715}), ({'size': 7, 'face': 1, 'u': 1, 'v': 2, 'b': 6, 'base': 35}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (0, 1), 'cell_origin': [0, 9], 'pixel_position': [2, 12], 'row_pitch': 219, 'address': 2675, 'face_row_end': 2711, 'allocation_end': 5948}), ({'size': 8, 'face': 2, 'u': 2, 'v': 3, 'b': 6, 'base': 35}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 0), 'cell_origin': [10, 0], 'pixel_position': [13, 4], 'row_pitch': 243, 'address': 1085, 'face_row_end': 1121, 'allocation_end': 7325}), ({'size': 9, 'face': 3, 'u': 3, 'v': 4, 'b': 6, 'base': 35}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (1, 2), 'cell_origin': [11, 22], 'pixel_position': [15, 27], 'row_pitch': 267, 'address': 7334, 'face_row_end': 7370, 'allocation_end': 8846}), ({'size': 10, 'face': 4, 'u': 4, 'v': 5, 'b': 6, 'base': 35}, {'cell_size': 12, 'atlas_width': 48, 'atlas_height': 36, 'face_cell': (1, 1), 'cell_origin': [12, 12], 'pixel_position': [17, 18], 'row_pitch': 291, 'address': 5375, 'face_row_end': 5411, 'allocation_end': 10511}), ({'size': 11, 'face': 5, 'u': 5, 'v': 6, 'b': 6, 'base': 35}, {'cell_size': 13, 'atlas_width': 52, 'atlas_height': 39, 'face_cell': (3, 1), 'cell_origin': [39, 13], 'pixel_position': [45, 20], 'row_pitch': 315, 'address': 6605, 'face_row_end': 6641, 'allocation_end': 12320})]}
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 fixtureActualExpectedOutcome
layout fixture 1{'address': 235, 'allocation_end': 567, 'atlas_height': 12, 'atlas_width': 16, 'cell_origin': [8, 4], 'cell_size': 4, 'face_cell': [2, 1], 'face_row_end': 239, 'pixel_position': [9, 6], 'row_pitch': 35}{'address': 235, 'allocation_end': 427, 'atlas_height': 12, 'atlas_width': 16, 'cell_origin': [8, 4], 'cell_size': 4, 'face_cell': [2, 1], 'face_row_end': 239, 'pixel_position': [9, 6], 'row_pitch': 35}Failed
layout fixture 2{'address': 355, 'allocation_end': 867, 'atlas_height': 15, 'atlas_width': 20, 'cell_origin': [0, 5], 'cell_size': 5, 'face_cell': [0, 1], 'face_row_end': 359, 'pixel_position': [2, 8], 'row_pitch': 43}{'address': 355, 'allocation_end': 652, 'atlas_height': 15, 'atlas_width': 20, 'cell_origin': [0, 5], 'cell_size': 5, 'face_cell': [0, 1], 'face_row_end': 359, 'pixel_position': [2, 8], 'row_pitch': 43}Failed
layout fixture 3{'address': 229, 'allocation_end': 1231, 'atlas_height': 18, 'atlas_width': 24, 'cell_origin': [6, 0], 'cell_size': 6, 'face_cell': [1, 0], 'face_row_end': 233, 'pixel_position': [9, 4], 'row_pitch': 51}{'address': 229, 'allocation_end': 925, 'atlas_height': 18, 'atlas_width': 24, 'cell_origin': [6, 0], 'cell_size': 6, 'face_cell': [1, 0], 'face_row_end': 233, 'pixel_position': [9, 4], 'row_pitch': 51}Failed
layout fixture 4{'address': 1150, 'allocation_end': 1659, 'atlas_height': 21, 'atlas_width': 28, 'cell_origin': [7, 14], 'cell_size': 7, 'face_cell': [1, 2], 'face_row_end': 1154, 'pixel_position': [11, 19], 'row_pitch': 59}{'address': 1150, 'allocation_end': 1246, 'atlas_height': 21, 'atlas_width': 28, 'cell_origin': [7, 14], 'cell_size': 7, 'face_cell': [1, 2], 'face_row_end': 1154, 'pixel_position': [11, 19], 'row_pitch': 59}Failed
layout fixture 5{'address': 971, 'allocation_end': 2151, 'atlas_height': 24, 'atlas_width': 32, 'cell_origin': [8, 8], 'cell_size': 8, 'face_cell': [1, 1], 'face_row_end': 975, 'pixel_position': [13, 14], 'row_pitch': 67}{'address': 971, 'allocation_end': 1615, 'atlas_height': 24, 'atlas_width': 32, 'cell_origin': [8, 8], 'cell_size': 8, 'face_cell': [1, 1], 'face_row_end': 975, 'pixel_position': [13, 14], 'row_pitch': 67}Failed
layout fixture 6{'address': 1273, 'allocation_end': 2707, 'atlas_height': 27, 'atlas_width': 36, 'cell_origin': [27, 9], 'cell_size': 9, 'face_cell': [3, 1], 'face_row_end': 1277, 'pixel_position': [33, 16], 'row_pitch': 75}{'address': 1273, 'allocation_end': 2032, 'atlas_height': 27, 'atlas_width': 36, 'cell_origin': [27, 9], 'cell_size': 9, 'face_cell': [3, 1], 'face_row_end': 1277, 'pixel_position': [33, 16], 'row_pitch': 75}Failed

SHA-256 / 3247a03f442e63290e7a2d1fccc41949093fd1a63f6272b97bae37f4fd6ff30a

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)
    cell_size = p["size"]+2
    atlas_width = 4*cell_size
    atlas_height = 3*cell_size
    face_cell = [(2,1),(0,1),(1,0),(1,2),(1,1),(3,1)][p["face"]]
    cell_origin = [face_cell[0]*cell_size,face_cell[1]*cell_size]
    pixel_position = [cell_origin[0]+1+p["u"],cell_origin[1]+1+p["v"]]
    row_pitch = atlas_width*p["b"]+3
    address = p["base"]+pixel_position[1]*row_pitch+pixel_position[0]*p["b"]
    face_row_end = p["base"]+(cell_origin[1]+1+p["v"])*row_pitch+(cell_origin[0]+1+p["size"])*p["b"]
    allocation_end = p["base"]+atlas_height*row_pitch
    return {'cell_size': cell_size, 'atlas_width': atlas_width, 'atlas_height': atlas_height, 'face_cell': face_cell, 'cell_origin': cell_origin, 'pixel_position': pixel_position, 'row_pitch': row_pitch, 'address': address, 'face_row_end': face_row_end, 'allocation_end': allocation_end}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'size': 2, 'face': 0, 'u': 0, 'v': 1, 'b': 2, 'base': 7}, {'cell_size': 4, 'atlas_width': 16, 'atlas_height': 12, 'face_cell': (2, 1), 'cell_origin': [8, 4], 'pixel_position': [9, 6], 'row_pitch': 35, 'address': 235, 'face_row_end': 239, 'allocation_end': 427}), ({'size': 3, 'face': 1, 'u': 1, 'v': 2, 'b': 2, 'base': 7}, {'cell_size': 5, 'atlas_width': 20, 'atlas_height': 15, 'face_cell': (0, 1), 'cell_origin': [0, 5], 'pixel_position': [2, 8], 'row_pitch': 43, 'address': 355, 'face_row_end': 359, 'allocation_end': 652}), ({'size': 4, 'face': 2, 'u': 2, 'v': 3, 'b': 2, 'base': 7}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (1, 0), 'cell_origin': [6, 0], 'pixel_position': [9, 4], 'row_pitch': 51, 'address': 229, 'face_row_end': 233, 'allocation_end': 925}), ({'size': 5, 'face': 3, 'u': 3, 'v': 4, 'b': 2, 'base': 7}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (1, 2), 'cell_origin': [7, 14], 'pixel_position': [11, 19], 'row_pitch': 59, 'address': 1150, 'face_row_end': 1154, 'allocation_end': 1246}), ({'size': 6, 'face': 4, 'u': 4, 'v': 5, 'b': 2, 'base': 7}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 1), 'cell_origin': [8, 8], 'pixel_position': [13, 14], 'row_pitch': 67, 'address': 971, 'face_row_end': 975, 'allocation_end': 1615}), ({'size': 7, 'face': 5, 'u': 5, 'v': 6, 'b': 2, 'base': 7}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (3, 1), 'cell_origin': [27, 9], 'pixel_position': [33, 16], 'row_pitch': 75, 'address': 1273, 'face_row_end': 1277, 'allocation_end': 2032})], 2: [({'size': 3, 'face': 0, 'u': 0, 'v': 1, 'b': 3, 'base': 14}, {'cell_size': 5, 'atlas_width': 20, 'atlas_height': 15, 'face_cell': (2, 1), 'cell_origin': [10, 5], 'pixel_position': [11, 7], 'row_pitch': 63, 'address': 488, 'face_row_end': 497, 'allocation_end': 959}), ({'size': 4, 'face': 1, 'u': 1, 'v': 2, 'b': 3, 'base': 14}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (0, 1), 'cell_origin': [0, 6], 'pixel_position': [2, 9], 'row_pitch': 75, 'address': 695, 'face_row_end': 704, 'allocation_end': 1364}), ({'size': 5, 'face': 2, 'u': 2, 'v': 3, 'b': 3, 'base': 14}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (1, 0), 'cell_origin': [7, 0], 'pixel_position': [10, 4], 'row_pitch': 87, 'address': 392, 'face_row_end': 401, 'allocation_end': 1841}), ({'size': 6, 'face': 3, 'u': 3, 'v': 4, 'b': 3, 'base': 14}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 2), 'cell_origin': [8, 16], 'pixel_position': [12, 21], 'row_pitch': 99, 'address': 2129, 'face_row_end': 2138, 'allocation_end': 2390}), ({'size': 7, 'face': 4, 'u': 4, 'v': 5, 'b': 3, 'base': 14}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 1), 'cell_origin': [9, 9], 'pixel_position': [14, 15], 'row_pitch': 111, 'address': 1721, 'face_row_end': 1730, 'allocation_end': 3011}), ({'size': 8, 'face': 5, 'u': 5, 'v': 6, 'b': 3, 'base': 14}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (3, 1), 'cell_origin': [30, 10], 'pixel_position': [36, 17], 'row_pitch': 123, 'address': 2213, 'face_row_end': 2222, 'allocation_end': 3704})], 3: [({'size': 4, 'face': 0, 'u': 0, 'v': 1, 'b': 4, 'base': 21}, {'cell_size': 6, 'atlas_width': 24, 'atlas_height': 18, 'face_cell': (2, 1), 'cell_origin': [12, 6], 'pixel_position': [13, 8], 'row_pitch': 99, 'address': 865, 'face_row_end': 881, 'allocation_end': 1803}), ({'size': 5, 'face': 1, 'u': 1, 'v': 2, 'b': 4, 'base': 21}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (0, 1), 'cell_origin': [0, 7], 'pixel_position': [2, 10], 'row_pitch': 115, 'address': 1179, 'face_row_end': 1195, 'allocation_end': 2436}), ({'size': 6, 'face': 2, 'u': 2, 'v': 3, 'b': 4, 'base': 21}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (1, 0), 'cell_origin': [8, 0], 'pixel_position': [11, 4], 'row_pitch': 131, 'address': 589, 'face_row_end': 605, 'allocation_end': 3165}), ({'size': 7, 'face': 3, 'u': 3, 'v': 4, 'b': 4, 'base': 21}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 2), 'cell_origin': [9, 18], 'pixel_position': [13, 23], 'row_pitch': 147, 'address': 3454, 'face_row_end': 3470, 'allocation_end': 3990}), ({'size': 8, 'face': 4, 'u': 4, 'v': 5, 'b': 4, 'base': 21}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 1), 'cell_origin': [10, 10], 'pixel_position': [15, 16], 'row_pitch': 163, 'address': 2689, 'face_row_end': 2705, 'allocation_end': 4911}), ({'size': 9, 'face': 5, 'u': 5, 'v': 6, 'b': 4, 'base': 21}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (3, 1), 'cell_origin': [33, 11], 'pixel_position': [39, 18], 'row_pitch': 179, 'address': 3399, 'face_row_end': 3415, 'allocation_end': 5928})], 4: [({'size': 5, 'face': 0, 'u': 0, 'v': 1, 'b': 5, 'base': 28}, {'cell_size': 7, 'atlas_width': 28, 'atlas_height': 21, 'face_cell': (2, 1), 'cell_origin': [14, 7], 'pixel_position': [15, 9], 'row_pitch': 143, 'address': 1390, 'face_row_end': 1415, 'allocation_end': 3031}), ({'size': 6, 'face': 1, 'u': 1, 'v': 2, 'b': 5, 'base': 28}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (0, 1), 'cell_origin': [0, 8], 'pixel_position': [2, 11], 'row_pitch': 163, 'address': 1831, 'face_row_end': 1856, 'allocation_end': 3940}), ({'size': 7, 'face': 2, 'u': 2, 'v': 3, 'b': 5, 'base': 28}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (1, 0), 'cell_origin': [9, 0], 'pixel_position': [12, 4], 'row_pitch': 183, 'address': 820, 'face_row_end': 845, 'allocation_end': 4969}), ({'size': 8, 'face': 3, 'u': 3, 'v': 4, 'b': 5, 'base': 28}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 2), 'cell_origin': [10, 20], 'pixel_position': [14, 25], 'row_pitch': 203, 'address': 5173, 'face_row_end': 5198, 'allocation_end': 6118}), ({'size': 9, 'face': 4, 'u': 4, 'v': 5, 'b': 5, 'base': 28}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (1, 1), 'cell_origin': [11, 11], 'pixel_position': [16, 17], 'row_pitch': 223, 'address': 3899, 'face_row_end': 3924, 'allocation_end': 7387}), ({'size': 10, 'face': 5, 'u': 5, 'v': 6, 'b': 5, 'base': 28}, {'cell_size': 12, 'atlas_width': 48, 'atlas_height': 36, 'face_cell': (3, 1), 'cell_origin': [36, 12], 'pixel_position': [42, 19], 'row_pitch': 243, 'address': 4855, 'face_row_end': 4880, 'allocation_end': 8776})], 5: [({'size': 6, 'face': 0, 'u': 0, 'v': 1, 'b': 6, 'base': 35}, {'cell_size': 8, 'atlas_width': 32, 'atlas_height': 24, 'face_cell': (2, 1), 'cell_origin': [16, 8], 'pixel_position': [17, 10], 'row_pitch': 195, 'address': 2087, 'face_row_end': 2123, 'allocation_end': 4715}), ({'size': 7, 'face': 1, 'u': 1, 'v': 2, 'b': 6, 'base': 35}, {'cell_size': 9, 'atlas_width': 36, 'atlas_height': 27, 'face_cell': (0, 1), 'cell_origin': [0, 9], 'pixel_position': [2, 12], 'row_pitch': 219, 'address': 2675, 'face_row_end': 2711, 'allocation_end': 5948}), ({'size': 8, 'face': 2, 'u': 2, 'v': 3, 'b': 6, 'base': 35}, {'cell_size': 10, 'atlas_width': 40, 'atlas_height': 30, 'face_cell': (1, 0), 'cell_origin': [10, 0], 'pixel_position': [13, 4], 'row_pitch': 243, 'address': 1085, 'face_row_end': 1121, 'allocation_end': 7325}), ({'size': 9, 'face': 3, 'u': 3, 'v': 4, 'b': 6, 'base': 35}, {'cell_size': 11, 'atlas_width': 44, 'atlas_height': 33, 'face_cell': (1, 2), 'cell_origin': [11, 22], 'pixel_position': [15, 27], 'row_pitch': 267, 'address': 7334, 'face_row_end': 7370, 'allocation_end': 8846}), ({'size': 10, 'face': 4, 'u': 4, 'v': 5, 'b': 6, 'base': 35}, {'cell_size': 12, 'atlas_width': 48, 'atlas_height': 36, 'face_cell': (1, 1), 'cell_origin': [12, 12], 'pixel_position': [17, 18], 'row_pitch': 291, 'address': 5375, 'face_row_end': 5411, 'allocation_end': 10511}), ({'size': 11, 'face': 5, 'u': 5, 'v': 6, 'b': 6, 'base': 35}, {'cell_size': 13, 'atlas_width': 52, 'atlas_height': 39, 'face_cell': (3, 1), 'cell_origin': [39, 13], 'pixel_position': [45, 20], 'row_pitch': 315, 'address': 6605, 'face_row_end': 6641, 'allocation_end': 12320})]}
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 fixtureActualExpectedOutcome
layout fixture 1{'address': 235, 'allocation_end': 427, 'atlas_height': 12, 'atlas_width': 16, 'cell_origin': [8, 4], 'cell_size': 4, 'face_cell': [2, 1], 'face_row_end': 239, 'pixel_position': [9, 6], 'row_pitch': 35}{'address': 235, 'allocation_end': 427, 'atlas_height': 12, 'atlas_width': 16, 'cell_origin': [8, 4], 'cell_size': 4, 'face_cell': [2, 1], 'face_row_end': 239, 'pixel_position': [9, 6], 'row_pitch': 35}Passed
layout fixture 2{'address': 355, 'allocation_end': 652, 'atlas_height': 15, 'atlas_width': 20, 'cell_origin': [0, 5], 'cell_size': 5, 'face_cell': [0, 1], 'face_row_end': 359, 'pixel_position': [2, 8], 'row_pitch': 43}{'address': 355, 'allocation_end': 652, 'atlas_height': 15, 'atlas_width': 20, 'cell_origin': [0, 5], 'cell_size': 5, 'face_cell': [0, 1], 'face_row_end': 359, 'pixel_position': [2, 8], 'row_pitch': 43}Passed
layout fixture 3{'address': 229, 'allocation_end': 925, 'atlas_height': 18, 'atlas_width': 24, 'cell_origin': [6, 0], 'cell_size': 6, 'face_cell': [1, 0], 'face_row_end': 233, 'pixel_position': [9, 4], 'row_pitch': 51}{'address': 229, 'allocation_end': 925, 'atlas_height': 18, 'atlas_width': 24, 'cell_origin': [6, 0], 'cell_size': 6, 'face_cell': [1, 0], 'face_row_end': 233, 'pixel_position': [9, 4], 'row_pitch': 51}Passed
layout fixture 4{'address': 1150, 'allocation_end': 1246, 'atlas_height': 21, 'atlas_width': 28, 'cell_origin': [7, 14], 'cell_size': 7, 'face_cell': [1, 2], 'face_row_end': 1154, 'pixel_position': [11, 19], 'row_pitch': 59}{'address': 1150, 'allocation_end': 1246, 'atlas_height': 21, 'atlas_width': 28, 'cell_origin': [7, 14], 'cell_size': 7, 'face_cell': [1, 2], 'face_row_end': 1154, 'pixel_position': [11, 19], 'row_pitch': 59}Passed
layout fixture 5{'address': 971, 'allocation_end': 1615, 'atlas_height': 24, 'atlas_width': 32, 'cell_origin': [8, 8], 'cell_size': 8, 'face_cell': [1, 1], 'face_row_end': 975, 'pixel_position': [13, 14], 'row_pitch': 67}{'address': 971, 'allocation_end': 1615, 'atlas_height': 24, 'atlas_width': 32, 'cell_origin': [8, 8], 'cell_size': 8, 'face_cell': [1, 1], 'face_row_end': 975, 'pixel_position': [13, 14], 'row_pitch': 67}Passed
layout fixture 6{'address': 1273, 'allocation_end': 2032, 'atlas_height': 27, 'atlas_width': 36, 'cell_origin': [27, 9], 'cell_size': 9, 'face_cell': [3, 1], 'face_row_end': 1277, 'pixel_position': [33, 16], 'row_pitch': 75}{'address': 1273, 'allocation_end': 2032, 'atlas_height': 27, 'atlas_width': 36, 'cell_origin': [27, 9], 'cell_size': 9, 'face_cell': [3, 1], 'face_row_end': 1277, 'pixel_position': [33, 16], 'row_pitch': 75}Passed

SHA-256 / 92733aa8412d9fb3baac605d4b068224828898d529b2907cc493210cd2a49b73

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:26.549613+00:00.

Case digest / b3f2781e28ebf092ddfd100b9646a67b07efa700369d3a700950323ed22a1df4