FAILURE MAP
← Case archive

FA-53256 / Raster memory layout / Open access

Volume Transfer Skip Footprint: Subvolume source origin discards skip footprint or source relocation · case 01

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

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

ROOT CAUSE

Subvolume source origin discards skip footprint or source relocation The faulty expression is p["src"].

VERIFIED REPAIR

Apply the stipulated layout rule at source_origin: p["src"]+skip_bytes.

Unsuccessful approach: The attempted repair uses skip_bytes and still violates the layout contract.

Case contract

A 3D upload buffer has independently specified row length, image height, and byte pixel size. A valid subvolume starts after skipped images, rows, and pixels. Destination uses independent row and slice pitches; return all per-row transfer origins. 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)
    source_row_pitch = p["row_length"]*p["b"]
    source_slice_pitch = source_row_pitch*p["image_height"]
    skip_bytes = p["skip_z"]*source_slice_pitch+p["skip_y"]*source_row_pitch+p["skip_x"]*p["b"]
    source_origin = p["src"]
    row_bytes = p["width"]*p["b"]
    source_rows = [source_origin+z*source_slice_pitch+y*source_row_pitch for z in range(p["depth"]) for y in range(p["height"])]
    destination_rows = [p["dst"]+z*p["ds"]+y*p["dp"] for z in range(p["depth"]) for y in range(p["height"])]
    transfers = [[s,d,row_bytes] for s,d in zip(source_rows,destination_rows)]
    source_required = source_rows[-1]+row_bytes-p["src"]
    destination_required = destination_rows[-1]+row_bytes-p["dst"]
    return {'source_row_pitch': source_row_pitch, 'source_slice_pitch': source_slice_pitch, 'skip_bytes': skip_bytes, 'source_origin': source_origin, 'row_bytes': row_bytes, 'source_rows': source_rows, 'destination_rows': destination_rows, 'transfers': transfers, 'source_required': source_required, 'destination_required': destination_required}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 24, 'source_slice_pitch': 168, 'skip_bytes': 218, 'source_origin': 225, 'row_bytes': 4, 'source_rows': [225], 'destination_rows': [401], 'transfers': [[225, 401, 4]], 'source_required': 222, 'destination_required': 4}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 26, 'source_slice_pitch': 208, 'skip_bytes': 264, 'source_origin': 271, 'row_bytes': 6, 'source_rows': [271, 297, 479, 505], 'destination_rows': [401, 482, 1102, 1183], 'transfers': [[271, 401, 6], [297, 482, 6], [479, 1102, 6], [505, 1183, 6]], 'source_required': 504, 'destination_required': 788}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 28, 'source_slice_pitch': 252, 'skip_bytes': 310, 'source_origin': 317, 'row_bytes': 8, 'source_rows': [317, 345, 373], 'destination_rows': [401, 482, 563], 'transfers': [[317, 401, 8], [345, 482, 8], [373, 563, 8]], 'source_required': 374, 'destination_required': 170}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 30, 'source_slice_pitch': 300, 'skip_bytes': 364, 'source_origin': 371, 'row_bytes': 10, 'source_rows': [371, 671], 'destination_rows': [401, 1102], 'transfers': [[371, 401, 10], [671, 1102, 10]], 'source_required': 674, 'destination_required': 711}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 32, 'source_slice_pitch': 352, 'skip_bytes': 418, 'source_origin': 425, 'row_bytes': 12, 'source_rows': [425, 457], 'destination_rows': [401, 482], 'transfers': [[425, 401, 12], [457, 482, 12]], 'source_required': 462, 'destination_required': 93}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 34, 'source_slice_pitch': 408, 'skip_bytes': 480, 'source_origin': 487, 'row_bytes': 14, 'source_rows': [487, 521, 555, 895, 929, 963], 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'transfers': [[487, 401, 14], [521, 482, 14], [555, 563, 14], [895, 1102, 14], [929, 1183, 14], [963, 1264, 14]], 'source_required': 970, 'destination_required': 877})], 2: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 36, 'source_slice_pitch': 252, 'skip_bytes': 327, 'source_origin': 341, 'row_bytes': 6, 'source_rows': [341], 'destination_rows': [402], 'transfers': [[341, 402, 6]], 'source_required': 333, 'destination_required': 6}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 39, 'source_slice_pitch': 312, 'skip_bytes': 396, 'source_origin': 410, 'row_bytes': 9, 'source_rows': [410, 449, 722, 761], 'destination_rows': [402, 484, 1104, 1186], 'transfers': [[410, 402, 9], [449, 484, 9], [722, 1104, 9], [761, 1186, 9]], 'source_required': 756, 'destination_required': 793}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 42, 'source_slice_pitch': 378, 'skip_bytes': 465, 'source_origin': 479, 'row_bytes': 12, 'source_rows': [479, 521, 563], 'destination_rows': [402, 484, 566], 'transfers': [[479, 402, 12], [521, 484, 12], [563, 566, 12]], 'source_required': 561, 'destination_required': 176}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 45, 'source_slice_pitch': 450, 'skip_bytes': 546, 'source_origin': 560, 'row_bytes': 15, 'source_rows': [560, 1010], 'destination_rows': [402, 1104], 'transfers': [[560, 402, 15], [1010, 1104, 15]], 'source_required': 1011, 'destination_required': 717}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 48, 'source_slice_pitch': 528, 'skip_bytes': 627, 'source_origin': 641, 'row_bytes': 18, 'source_rows': [641, 689], 'destination_rows': [402, 484], 'transfers': [[641, 402, 18], [689, 484, 18]], 'source_required': 693, 'destination_required': 100}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 51, 'source_slice_pitch': 612, 'skip_bytes': 720, 'source_origin': 734, 'row_bytes': 21, 'source_rows': [734, 785, 836, 1346, 1397, 1448], 'destination_rows': [402, 484, 566, 1104, 1186, 1268], 'transfers': [[734, 402, 21], [785, 484, 21], [836, 566, 21], [1346, 1104, 21], [1397, 1186, 21], [1448, 1268, 21]], 'source_required': 1455, 'destination_required': 887})], 3: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 48, 'source_slice_pitch': 336, 'skip_bytes': 436, 'source_origin': 457, 'row_bytes': 8, 'source_rows': [457], 'destination_rows': [403], 'transfers': [[457, 403, 8]], 'source_required': 444, 'destination_required': 8}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 52, 'source_slice_pitch': 416, 'skip_bytes': 528, 'source_origin': 549, 'row_bytes': 12, 'source_rows': [549, 601, 965, 1017], 'destination_rows': [403, 486, 1106, 1189], 'transfers': [[549, 403, 12], [601, 486, 12], [965, 1106, 12], [1017, 1189, 12]], 'source_required': 1008, 'destination_required': 798}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 56, 'source_slice_pitch': 504, 'skip_bytes': 620, 'source_origin': 641, 'row_bytes': 16, 'source_rows': [641, 697, 753], 'destination_rows': [403, 486, 569], 'transfers': [[641, 403, 16], [697, 486, 16], [753, 569, 16]], 'source_required': 748, 'destination_required': 182}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 60, 'source_slice_pitch': 600, 'skip_bytes': 728, 'source_origin': 749, 'row_bytes': 20, 'source_rows': [749, 1349], 'destination_rows': [403, 1106], 'transfers': [[749, 403, 20], [1349, 1106, 20]], 'source_required': 1348, 'destination_required': 723}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 64, 'source_slice_pitch': 704, 'skip_bytes': 836, 'source_origin': 857, 'row_bytes': 24, 'source_rows': [857, 921], 'destination_rows': [403, 486], 'transfers': [[857, 403, 24], [921, 486, 24]], 'source_required': 924, 'destination_required': 107}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 68, 'source_slice_pitch': 816, 'skip_bytes': 960, 'source_origin': 981, 'row_bytes': 28, 'source_rows': [981, 1049, 1117, 1797, 1865, 1933], 'destination_rows': [403, 486, 569, 1106, 1189, 1272], 'transfers': [[981, 403, 28], [1049, 486, 28], [1117, 569, 28], [1797, 1106, 28], [1865, 1189, 28], [1933, 1272, 28]], 'source_required': 1940, 'destination_required': 897})], 4: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 60, 'source_slice_pitch': 420, 'skip_bytes': 545, 'source_origin': 573, 'row_bytes': 10, 'source_rows': [573], 'destination_rows': [404], 'transfers': [[573, 404, 10]], 'source_required': 555, 'destination_required': 10}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 65, 'source_slice_pitch': 520, 'skip_bytes': 660, 'source_origin': 688, 'row_bytes': 15, 'source_rows': [688, 753, 1208, 1273], 'destination_rows': [404, 488, 1108, 1192], 'transfers': [[688, 404, 15], [753, 488, 15], [1208, 1108, 15], [1273, 1192, 15]], 'source_required': 1260, 'destination_required': 803}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 70, 'source_slice_pitch': 630, 'skip_bytes': 775, 'source_origin': 803, 'row_bytes': 20, 'source_rows': [803, 873, 943], 'destination_rows': [404, 488, 572], 'transfers': [[803, 404, 20], [873, 488, 20], [943, 572, 20]], 'source_required': 935, 'destination_required': 188}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 75, 'source_slice_pitch': 750, 'skip_bytes': 910, 'source_origin': 938, 'row_bytes': 25, 'source_rows': [938, 1688], 'destination_rows': [404, 1108], 'transfers': [[938, 404, 25], [1688, 1108, 25]], 'source_required': 1685, 'destination_required': 729}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 80, 'source_slice_pitch': 880, 'skip_bytes': 1045, 'source_origin': 1073, 'row_bytes': 30, 'source_rows': [1073, 1153], 'destination_rows': [404, 488], 'transfers': [[1073, 404, 30], [1153, 488, 30]], 'source_required': 1155, 'destination_required': 114}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 85, 'source_slice_pitch': 1020, 'skip_bytes': 1200, 'source_origin': 1228, 'row_bytes': 35, 'source_rows': [1228, 1313, 1398, 2248, 2333, 2418], 'destination_rows': [404, 488, 572, 1108, 1192, 1276], 'transfers': [[1228, 404, 35], [1313, 488, 35], [1398, 572, 35], [2248, 1108, 35], [2333, 1192, 35], [2418, 1276, 35]], 'source_required': 2425, 'destination_required': 907})], 5: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 72, 'source_slice_pitch': 504, 'skip_bytes': 654, 'source_origin': 689, 'row_bytes': 12, 'source_rows': [689], 'destination_rows': [405], 'transfers': [[689, 405, 12]], 'source_required': 666, 'destination_required': 12}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 78, 'source_slice_pitch': 624, 'skip_bytes': 792, 'source_origin': 827, 'row_bytes': 18, 'source_rows': [827, 905, 1451, 1529], 'destination_rows': [405, 490, 1110, 1195], 'transfers': [[827, 405, 18], [905, 490, 18], [1451, 1110, 18], [1529, 1195, 18]], 'source_required': 1512, 'destination_required': 808}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 84, 'source_slice_pitch': 756, 'skip_bytes': 930, 'source_origin': 965, 'row_bytes': 24, 'source_rows': [965, 1049, 1133], 'destination_rows': [405, 490, 575], 'transfers': [[965, 405, 24], [1049, 490, 24], [1133, 575, 24]], 'source_required': 1122, 'destination_required': 194}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 90, 'source_slice_pitch': 900, 'skip_bytes': 1092, 'source_origin': 1127, 'row_bytes': 30, 'source_rows': [1127, 2027], 'destination_rows': [405, 1110], 'transfers': [[1127, 405, 30], [2027, 1110, 30]], 'source_required': 2022, 'destination_required': 735}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 96, 'source_slice_pitch': 1056, 'skip_bytes': 1254, 'source_origin': 1289, 'row_bytes': 36, 'source_rows': [1289, 1385], 'destination_rows': [405, 490], 'transfers': [[1289, 405, 36], [1385, 490, 36]], 'source_required': 1386, 'destination_required': 121}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 102, 'source_slice_pitch': 1224, 'skip_bytes': 1440, 'source_origin': 1475, 'row_bytes': 42, 'source_rows': [1475, 1577, 1679, 2699, 2801, 2903], 'destination_rows': [405, 490, 575, 1110, 1195, 1280], 'transfers': [[1475, 405, 42], [1577, 490, 42], [1679, 575, 42], [2699, 1110, 42], [2801, 1195, 42], [2903, 1280, 42]], 'source_required': 2910, 'destination_required': 917})]}
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{'destination_required': 4, 'destination_rows': [401], 'row_bytes': 4, 'skip_bytes': 218, 'source_origin': 7, 'source_required': 4, 'source_row_pitch': 24, 'source_rows': [7], 'source_slice_pitch': 168, 'transfers': [[7, 401, 4]]}{'destination_required': 4, 'destination_rows': [401], 'row_bytes': 4, 'skip_bytes': 218, 'source_origin': 225, 'source_required': 222, 'source_row_pitch': 24, 'source_rows': [225], 'source_slice_pitch': 168, 'transfers': [[225, 401, 4]]}Failed
layout fixture 2{'destination_required': 788, 'destination_rows': [401, 482, 1102, 1183], 'row_bytes': 6, 'skip_bytes': 264, 'source_origin': 7, 'source_required': 240, 'source_row_pitch': 26, 'source_rows': [7, 33, 215, 241], 'source_slice_pitch': 208, 'transfers': [[7, 401, 6], [33, 482, 6], [215, 1102, 6], [241, 1183, 6]]}{'destination_required': 788, 'destination_rows': [401, 482, 1102, 1183], 'row_bytes': 6, 'skip_bytes': 264, 'source_origin': 271, 'source_required': 504, 'source_row_pitch': 26, 'source_rows': [271, 297, 479, 505], 'source_slice_pitch': 208, 'transfers': [[271, 401, 6], [297, 482, 6], [479, 1102, 6], [505, 1183, 6]]}Failed
layout fixture 3{'destination_required': 170, 'destination_rows': [401, 482, 563], 'row_bytes': 8, 'skip_bytes': 310, 'source_origin': 7, 'source_required': 64, 'source_row_pitch': 28, 'source_rows': [7, 35, 63], 'source_slice_pitch': 252, 'transfers': [[7, 401, 8], [35, 482, 8], [63, 563, 8]]}{'destination_required': 170, 'destination_rows': [401, 482, 563], 'row_bytes': 8, 'skip_bytes': 310, 'source_origin': 317, 'source_required': 374, 'source_row_pitch': 28, 'source_rows': [317, 345, 373], 'source_slice_pitch': 252, 'transfers': [[317, 401, 8], [345, 482, 8], [373, 563, 8]]}Failed
layout fixture 4{'destination_required': 711, 'destination_rows': [401, 1102], 'row_bytes': 10, 'skip_bytes': 364, 'source_origin': 7, 'source_required': 310, 'source_row_pitch': 30, 'source_rows': [7, 307], 'source_slice_pitch': 300, 'transfers': [[7, 401, 10], [307, 1102, 10]]}{'destination_required': 711, 'destination_rows': [401, 1102], 'row_bytes': 10, 'skip_bytes': 364, 'source_origin': 371, 'source_required': 674, 'source_row_pitch': 30, 'source_rows': [371, 671], 'source_slice_pitch': 300, 'transfers': [[371, 401, 10], [671, 1102, 10]]}Failed
layout fixture 5{'destination_required': 93, 'destination_rows': [401, 482], 'row_bytes': 12, 'skip_bytes': 418, 'source_origin': 7, 'source_required': 44, 'source_row_pitch': 32, 'source_rows': [7, 39], 'source_slice_pitch': 352, 'transfers': [[7, 401, 12], [39, 482, 12]]}{'destination_required': 93, 'destination_rows': [401, 482], 'row_bytes': 12, 'skip_bytes': 418, 'source_origin': 425, 'source_required': 462, 'source_row_pitch': 32, 'source_rows': [425, 457], 'source_slice_pitch': 352, 'transfers': [[425, 401, 12], [457, 482, 12]]}Failed
layout fixture 6{'destination_required': 877, 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'row_bytes': 14, 'skip_bytes': 480, 'source_origin': 7, 'source_required': 490, 'source_row_pitch': 34, 'source_rows': [7, 41, 75, 415, 449, 483], 'source_slice_pitch': 408, 'transfers': [[7, 401, 14], [41, 482, 14], [75, 563, 14], [415, 1102, 14], [449, 1183, 14], [483, 1264, 14]]}{'destination_required': 877, 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'row_bytes': 14, 'skip_bytes': 480, 'source_origin': 487, 'source_required': 970, 'source_row_pitch': 34, 'source_rows': [487, 521, 555, 895, 929, 963], 'source_slice_pitch': 408, 'transfers': [[487, 401, 14], [521, 482, 14], [555, 563, 14], [895, 1102, 14], [929, 1183, 14], [963, 1264, 14]]}Failed

SHA-256 / 435d600550ab5ae5922c38813db30f30209d11d9a95c2dc20fea905562dca6c4

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)
    source_row_pitch = p["row_length"]*p["b"]
    source_slice_pitch = source_row_pitch*p["image_height"]
    skip_bytes = p["skip_z"]*source_slice_pitch+p["skip_y"]*source_row_pitch+p["skip_x"]*p["b"]
    source_origin = skip_bytes
    row_bytes = p["width"]*p["b"]
    source_rows = [source_origin+z*source_slice_pitch+y*source_row_pitch for z in range(p["depth"]) for y in range(p["height"])]
    destination_rows = [p["dst"]+z*p["ds"]+y*p["dp"] for z in range(p["depth"]) for y in range(p["height"])]
    transfers = [[s,d,row_bytes] for s,d in zip(source_rows,destination_rows)]
    source_required = source_rows[-1]+row_bytes-p["src"]
    destination_required = destination_rows[-1]+row_bytes-p["dst"]
    return {'source_row_pitch': source_row_pitch, 'source_slice_pitch': source_slice_pitch, 'skip_bytes': skip_bytes, 'source_origin': source_origin, 'row_bytes': row_bytes, 'source_rows': source_rows, 'destination_rows': destination_rows, 'transfers': transfers, 'source_required': source_required, 'destination_required': destination_required}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 24, 'source_slice_pitch': 168, 'skip_bytes': 218, 'source_origin': 225, 'row_bytes': 4, 'source_rows': [225], 'destination_rows': [401], 'transfers': [[225, 401, 4]], 'source_required': 222, 'destination_required': 4}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 26, 'source_slice_pitch': 208, 'skip_bytes': 264, 'source_origin': 271, 'row_bytes': 6, 'source_rows': [271, 297, 479, 505], 'destination_rows': [401, 482, 1102, 1183], 'transfers': [[271, 401, 6], [297, 482, 6], [479, 1102, 6], [505, 1183, 6]], 'source_required': 504, 'destination_required': 788}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 28, 'source_slice_pitch': 252, 'skip_bytes': 310, 'source_origin': 317, 'row_bytes': 8, 'source_rows': [317, 345, 373], 'destination_rows': [401, 482, 563], 'transfers': [[317, 401, 8], [345, 482, 8], [373, 563, 8]], 'source_required': 374, 'destination_required': 170}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 30, 'source_slice_pitch': 300, 'skip_bytes': 364, 'source_origin': 371, 'row_bytes': 10, 'source_rows': [371, 671], 'destination_rows': [401, 1102], 'transfers': [[371, 401, 10], [671, 1102, 10]], 'source_required': 674, 'destination_required': 711}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 32, 'source_slice_pitch': 352, 'skip_bytes': 418, 'source_origin': 425, 'row_bytes': 12, 'source_rows': [425, 457], 'destination_rows': [401, 482], 'transfers': [[425, 401, 12], [457, 482, 12]], 'source_required': 462, 'destination_required': 93}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 34, 'source_slice_pitch': 408, 'skip_bytes': 480, 'source_origin': 487, 'row_bytes': 14, 'source_rows': [487, 521, 555, 895, 929, 963], 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'transfers': [[487, 401, 14], [521, 482, 14], [555, 563, 14], [895, 1102, 14], [929, 1183, 14], [963, 1264, 14]], 'source_required': 970, 'destination_required': 877})], 2: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 36, 'source_slice_pitch': 252, 'skip_bytes': 327, 'source_origin': 341, 'row_bytes': 6, 'source_rows': [341], 'destination_rows': [402], 'transfers': [[341, 402, 6]], 'source_required': 333, 'destination_required': 6}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 39, 'source_slice_pitch': 312, 'skip_bytes': 396, 'source_origin': 410, 'row_bytes': 9, 'source_rows': [410, 449, 722, 761], 'destination_rows': [402, 484, 1104, 1186], 'transfers': [[410, 402, 9], [449, 484, 9], [722, 1104, 9], [761, 1186, 9]], 'source_required': 756, 'destination_required': 793}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 42, 'source_slice_pitch': 378, 'skip_bytes': 465, 'source_origin': 479, 'row_bytes': 12, 'source_rows': [479, 521, 563], 'destination_rows': [402, 484, 566], 'transfers': [[479, 402, 12], [521, 484, 12], [563, 566, 12]], 'source_required': 561, 'destination_required': 176}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 45, 'source_slice_pitch': 450, 'skip_bytes': 546, 'source_origin': 560, 'row_bytes': 15, 'source_rows': [560, 1010], 'destination_rows': [402, 1104], 'transfers': [[560, 402, 15], [1010, 1104, 15]], 'source_required': 1011, 'destination_required': 717}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 48, 'source_slice_pitch': 528, 'skip_bytes': 627, 'source_origin': 641, 'row_bytes': 18, 'source_rows': [641, 689], 'destination_rows': [402, 484], 'transfers': [[641, 402, 18], [689, 484, 18]], 'source_required': 693, 'destination_required': 100}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 51, 'source_slice_pitch': 612, 'skip_bytes': 720, 'source_origin': 734, 'row_bytes': 21, 'source_rows': [734, 785, 836, 1346, 1397, 1448], 'destination_rows': [402, 484, 566, 1104, 1186, 1268], 'transfers': [[734, 402, 21], [785, 484, 21], [836, 566, 21], [1346, 1104, 21], [1397, 1186, 21], [1448, 1268, 21]], 'source_required': 1455, 'destination_required': 887})], 3: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 48, 'source_slice_pitch': 336, 'skip_bytes': 436, 'source_origin': 457, 'row_bytes': 8, 'source_rows': [457], 'destination_rows': [403], 'transfers': [[457, 403, 8]], 'source_required': 444, 'destination_required': 8}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 52, 'source_slice_pitch': 416, 'skip_bytes': 528, 'source_origin': 549, 'row_bytes': 12, 'source_rows': [549, 601, 965, 1017], 'destination_rows': [403, 486, 1106, 1189], 'transfers': [[549, 403, 12], [601, 486, 12], [965, 1106, 12], [1017, 1189, 12]], 'source_required': 1008, 'destination_required': 798}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 56, 'source_slice_pitch': 504, 'skip_bytes': 620, 'source_origin': 641, 'row_bytes': 16, 'source_rows': [641, 697, 753], 'destination_rows': [403, 486, 569], 'transfers': [[641, 403, 16], [697, 486, 16], [753, 569, 16]], 'source_required': 748, 'destination_required': 182}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 60, 'source_slice_pitch': 600, 'skip_bytes': 728, 'source_origin': 749, 'row_bytes': 20, 'source_rows': [749, 1349], 'destination_rows': [403, 1106], 'transfers': [[749, 403, 20], [1349, 1106, 20]], 'source_required': 1348, 'destination_required': 723}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 64, 'source_slice_pitch': 704, 'skip_bytes': 836, 'source_origin': 857, 'row_bytes': 24, 'source_rows': [857, 921], 'destination_rows': [403, 486], 'transfers': [[857, 403, 24], [921, 486, 24]], 'source_required': 924, 'destination_required': 107}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 68, 'source_slice_pitch': 816, 'skip_bytes': 960, 'source_origin': 981, 'row_bytes': 28, 'source_rows': [981, 1049, 1117, 1797, 1865, 1933], 'destination_rows': [403, 486, 569, 1106, 1189, 1272], 'transfers': [[981, 403, 28], [1049, 486, 28], [1117, 569, 28], [1797, 1106, 28], [1865, 1189, 28], [1933, 1272, 28]], 'source_required': 1940, 'destination_required': 897})], 4: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 60, 'source_slice_pitch': 420, 'skip_bytes': 545, 'source_origin': 573, 'row_bytes': 10, 'source_rows': [573], 'destination_rows': [404], 'transfers': [[573, 404, 10]], 'source_required': 555, 'destination_required': 10}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 65, 'source_slice_pitch': 520, 'skip_bytes': 660, 'source_origin': 688, 'row_bytes': 15, 'source_rows': [688, 753, 1208, 1273], 'destination_rows': [404, 488, 1108, 1192], 'transfers': [[688, 404, 15], [753, 488, 15], [1208, 1108, 15], [1273, 1192, 15]], 'source_required': 1260, 'destination_required': 803}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 70, 'source_slice_pitch': 630, 'skip_bytes': 775, 'source_origin': 803, 'row_bytes': 20, 'source_rows': [803, 873, 943], 'destination_rows': [404, 488, 572], 'transfers': [[803, 404, 20], [873, 488, 20], [943, 572, 20]], 'source_required': 935, 'destination_required': 188}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 75, 'source_slice_pitch': 750, 'skip_bytes': 910, 'source_origin': 938, 'row_bytes': 25, 'source_rows': [938, 1688], 'destination_rows': [404, 1108], 'transfers': [[938, 404, 25], [1688, 1108, 25]], 'source_required': 1685, 'destination_required': 729}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 80, 'source_slice_pitch': 880, 'skip_bytes': 1045, 'source_origin': 1073, 'row_bytes': 30, 'source_rows': [1073, 1153], 'destination_rows': [404, 488], 'transfers': [[1073, 404, 30], [1153, 488, 30]], 'source_required': 1155, 'destination_required': 114}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 85, 'source_slice_pitch': 1020, 'skip_bytes': 1200, 'source_origin': 1228, 'row_bytes': 35, 'source_rows': [1228, 1313, 1398, 2248, 2333, 2418], 'destination_rows': [404, 488, 572, 1108, 1192, 1276], 'transfers': [[1228, 404, 35], [1313, 488, 35], [1398, 572, 35], [2248, 1108, 35], [2333, 1192, 35], [2418, 1276, 35]], 'source_required': 2425, 'destination_required': 907})], 5: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 72, 'source_slice_pitch': 504, 'skip_bytes': 654, 'source_origin': 689, 'row_bytes': 12, 'source_rows': [689], 'destination_rows': [405], 'transfers': [[689, 405, 12]], 'source_required': 666, 'destination_required': 12}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 78, 'source_slice_pitch': 624, 'skip_bytes': 792, 'source_origin': 827, 'row_bytes': 18, 'source_rows': [827, 905, 1451, 1529], 'destination_rows': [405, 490, 1110, 1195], 'transfers': [[827, 405, 18], [905, 490, 18], [1451, 1110, 18], [1529, 1195, 18]], 'source_required': 1512, 'destination_required': 808}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 84, 'source_slice_pitch': 756, 'skip_bytes': 930, 'source_origin': 965, 'row_bytes': 24, 'source_rows': [965, 1049, 1133], 'destination_rows': [405, 490, 575], 'transfers': [[965, 405, 24], [1049, 490, 24], [1133, 575, 24]], 'source_required': 1122, 'destination_required': 194}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 90, 'source_slice_pitch': 900, 'skip_bytes': 1092, 'source_origin': 1127, 'row_bytes': 30, 'source_rows': [1127, 2027], 'destination_rows': [405, 1110], 'transfers': [[1127, 405, 30], [2027, 1110, 30]], 'source_required': 2022, 'destination_required': 735}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 96, 'source_slice_pitch': 1056, 'skip_bytes': 1254, 'source_origin': 1289, 'row_bytes': 36, 'source_rows': [1289, 1385], 'destination_rows': [405, 490], 'transfers': [[1289, 405, 36], [1385, 490, 36]], 'source_required': 1386, 'destination_required': 121}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 102, 'source_slice_pitch': 1224, 'skip_bytes': 1440, 'source_origin': 1475, 'row_bytes': 42, 'source_rows': [1475, 1577, 1679, 2699, 2801, 2903], 'destination_rows': [405, 490, 575, 1110, 1195, 1280], 'transfers': [[1475, 405, 42], [1577, 490, 42], [1679, 575, 42], [2699, 1110, 42], [2801, 1195, 42], [2903, 1280, 42]], 'source_required': 2910, 'destination_required': 917})]}
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{'destination_required': 4, 'destination_rows': [401], 'row_bytes': 4, 'skip_bytes': 218, 'source_origin': 218, 'source_required': 215, 'source_row_pitch': 24, 'source_rows': [218], 'source_slice_pitch': 168, 'transfers': [[218, 401, 4]]}{'destination_required': 4, 'destination_rows': [401], 'row_bytes': 4, 'skip_bytes': 218, 'source_origin': 225, 'source_required': 222, 'source_row_pitch': 24, 'source_rows': [225], 'source_slice_pitch': 168, 'transfers': [[225, 401, 4]]}Failed
layout fixture 2{'destination_required': 788, 'destination_rows': [401, 482, 1102, 1183], 'row_bytes': 6, 'skip_bytes': 264, 'source_origin': 264, 'source_required': 497, 'source_row_pitch': 26, 'source_rows': [264, 290, 472, 498], 'source_slice_pitch': 208, 'transfers': [[264, 401, 6], [290, 482, 6], [472, 1102, 6], [498, 1183, 6]]}{'destination_required': 788, 'destination_rows': [401, 482, 1102, 1183], 'row_bytes': 6, 'skip_bytes': 264, 'source_origin': 271, 'source_required': 504, 'source_row_pitch': 26, 'source_rows': [271, 297, 479, 505], 'source_slice_pitch': 208, 'transfers': [[271, 401, 6], [297, 482, 6], [479, 1102, 6], [505, 1183, 6]]}Failed
layout fixture 3{'destination_required': 170, 'destination_rows': [401, 482, 563], 'row_bytes': 8, 'skip_bytes': 310, 'source_origin': 310, 'source_required': 367, 'source_row_pitch': 28, 'source_rows': [310, 338, 366], 'source_slice_pitch': 252, 'transfers': [[310, 401, 8], [338, 482, 8], [366, 563, 8]]}{'destination_required': 170, 'destination_rows': [401, 482, 563], 'row_bytes': 8, 'skip_bytes': 310, 'source_origin': 317, 'source_required': 374, 'source_row_pitch': 28, 'source_rows': [317, 345, 373], 'source_slice_pitch': 252, 'transfers': [[317, 401, 8], [345, 482, 8], [373, 563, 8]]}Failed
layout fixture 4{'destination_required': 711, 'destination_rows': [401, 1102], 'row_bytes': 10, 'skip_bytes': 364, 'source_origin': 364, 'source_required': 667, 'source_row_pitch': 30, 'source_rows': [364, 664], 'source_slice_pitch': 300, 'transfers': [[364, 401, 10], [664, 1102, 10]]}{'destination_required': 711, 'destination_rows': [401, 1102], 'row_bytes': 10, 'skip_bytes': 364, 'source_origin': 371, 'source_required': 674, 'source_row_pitch': 30, 'source_rows': [371, 671], 'source_slice_pitch': 300, 'transfers': [[371, 401, 10], [671, 1102, 10]]}Failed
layout fixture 5{'destination_required': 93, 'destination_rows': [401, 482], 'row_bytes': 12, 'skip_bytes': 418, 'source_origin': 418, 'source_required': 455, 'source_row_pitch': 32, 'source_rows': [418, 450], 'source_slice_pitch': 352, 'transfers': [[418, 401, 12], [450, 482, 12]]}{'destination_required': 93, 'destination_rows': [401, 482], 'row_bytes': 12, 'skip_bytes': 418, 'source_origin': 425, 'source_required': 462, 'source_row_pitch': 32, 'source_rows': [425, 457], 'source_slice_pitch': 352, 'transfers': [[425, 401, 12], [457, 482, 12]]}Failed
layout fixture 6{'destination_required': 877, 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'row_bytes': 14, 'skip_bytes': 480, 'source_origin': 480, 'source_required': 963, 'source_row_pitch': 34, 'source_rows': [480, 514, 548, 888, 922, 956], 'source_slice_pitch': 408, 'transfers': [[480, 401, 14], [514, 482, 14], [548, 563, 14], [888, 1102, 14], [922, 1183, 14], [956, 1264, 14]]}{'destination_required': 877, 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'row_bytes': 14, 'skip_bytes': 480, 'source_origin': 487, 'source_required': 970, 'source_row_pitch': 34, 'source_rows': [487, 521, 555, 895, 929, 963], 'source_slice_pitch': 408, 'transfers': [[487, 401, 14], [521, 482, 14], [555, 563, 14], [895, 1102, 14], [929, 1183, 14], [963, 1264, 14]]}Failed

SHA-256 / 7e432180cc8679d52dfe1c05446efe1ac88679b9476547967b9e189742aede33

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)
    source_row_pitch = p["row_length"]*p["b"]
    source_slice_pitch = source_row_pitch*p["image_height"]
    skip_bytes = p["skip_z"]*source_slice_pitch+p["skip_y"]*source_row_pitch+p["skip_x"]*p["b"]
    source_origin = p["src"]+skip_bytes
    row_bytes = p["width"]*p["b"]
    source_rows = [source_origin+z*source_slice_pitch+y*source_row_pitch for z in range(p["depth"]) for y in range(p["height"])]
    destination_rows = [p["dst"]+z*p["ds"]+y*p["dp"] for z in range(p["depth"]) for y in range(p["height"])]
    transfers = [[s,d,row_bytes] for s,d in zip(source_rows,destination_rows)]
    source_required = source_rows[-1]+row_bytes-p["src"]
    destination_required = destination_rows[-1]+row_bytes-p["dst"]
    return {'source_row_pitch': source_row_pitch, 'source_slice_pitch': source_slice_pitch, 'skip_bytes': skip_bytes, 'source_origin': source_origin, 'row_bytes': row_bytes, 'source_rows': source_rows, 'destination_rows': destination_rows, 'transfers': transfers, 'source_required': source_required, 'destination_required': destination_required}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
cases = {1: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 24, 'source_slice_pitch': 168, 'skip_bytes': 218, 'source_origin': 225, 'row_bytes': 4, 'source_rows': [225], 'destination_rows': [401], 'transfers': [[225, 401, 4]], 'source_required': 222, 'destination_required': 4}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 26, 'source_slice_pitch': 208, 'skip_bytes': 264, 'source_origin': 271, 'row_bytes': 6, 'source_rows': [271, 297, 479, 505], 'destination_rows': [401, 482, 1102, 1183], 'transfers': [[271, 401, 6], [297, 482, 6], [479, 1102, 6], [505, 1183, 6]], 'source_required': 504, 'destination_required': 788}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 28, 'source_slice_pitch': 252, 'skip_bytes': 310, 'source_origin': 317, 'row_bytes': 8, 'source_rows': [317, 345, 373], 'destination_rows': [401, 482, 563], 'transfers': [[317, 401, 8], [345, 482, 8], [373, 563, 8]], 'source_required': 374, 'destination_required': 170}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 30, 'source_slice_pitch': 300, 'skip_bytes': 364, 'source_origin': 371, 'row_bytes': 10, 'source_rows': [371, 671], 'destination_rows': [401, 1102], 'transfers': [[371, 401, 10], [671, 1102, 10]], 'source_required': 674, 'destination_required': 711}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 2, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 32, 'source_slice_pitch': 352, 'skip_bytes': 418, 'source_origin': 425, 'row_bytes': 12, 'source_rows': [425, 457], 'destination_rows': [401, 482], 'transfers': [[425, 401, 12], [457, 482, 12]], 'source_required': 462, 'destination_required': 93}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 2, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 7, 'dst': 401, 'dp': 81, 'ds': 701}, {'source_row_pitch': 34, 'source_slice_pitch': 408, 'skip_bytes': 480, 'source_origin': 487, 'row_bytes': 14, 'source_rows': [487, 521, 555, 895, 929, 963], 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'transfers': [[487, 401, 14], [521, 482, 14], [555, 563, 14], [895, 1102, 14], [929, 1183, 14], [963, 1264, 14]], 'source_required': 970, 'destination_required': 877})], 2: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 36, 'source_slice_pitch': 252, 'skip_bytes': 327, 'source_origin': 341, 'row_bytes': 6, 'source_rows': [341], 'destination_rows': [402], 'transfers': [[341, 402, 6]], 'source_required': 333, 'destination_required': 6}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 39, 'source_slice_pitch': 312, 'skip_bytes': 396, 'source_origin': 410, 'row_bytes': 9, 'source_rows': [410, 449, 722, 761], 'destination_rows': [402, 484, 1104, 1186], 'transfers': [[410, 402, 9], [449, 484, 9], [722, 1104, 9], [761, 1186, 9]], 'source_required': 756, 'destination_required': 793}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 42, 'source_slice_pitch': 378, 'skip_bytes': 465, 'source_origin': 479, 'row_bytes': 12, 'source_rows': [479, 521, 563], 'destination_rows': [402, 484, 566], 'transfers': [[479, 402, 12], [521, 484, 12], [563, 566, 12]], 'source_required': 561, 'destination_required': 176}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 45, 'source_slice_pitch': 450, 'skip_bytes': 546, 'source_origin': 560, 'row_bytes': 15, 'source_rows': [560, 1010], 'destination_rows': [402, 1104], 'transfers': [[560, 402, 15], [1010, 1104, 15]], 'source_required': 1011, 'destination_required': 717}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 3, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 48, 'source_slice_pitch': 528, 'skip_bytes': 627, 'source_origin': 641, 'row_bytes': 18, 'source_rows': [641, 689], 'destination_rows': [402, 484], 'transfers': [[641, 402, 18], [689, 484, 18]], 'source_required': 693, 'destination_required': 100}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 3, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 14, 'dst': 402, 'dp': 82, 'ds': 702}, {'source_row_pitch': 51, 'source_slice_pitch': 612, 'skip_bytes': 720, 'source_origin': 734, 'row_bytes': 21, 'source_rows': [734, 785, 836, 1346, 1397, 1448], 'destination_rows': [402, 484, 566, 1104, 1186, 1268], 'transfers': [[734, 402, 21], [785, 484, 21], [836, 566, 21], [1346, 1104, 21], [1397, 1186, 21], [1448, 1268, 21]], 'source_required': 1455, 'destination_required': 887})], 3: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 48, 'source_slice_pitch': 336, 'skip_bytes': 436, 'source_origin': 457, 'row_bytes': 8, 'source_rows': [457], 'destination_rows': [403], 'transfers': [[457, 403, 8]], 'source_required': 444, 'destination_required': 8}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 52, 'source_slice_pitch': 416, 'skip_bytes': 528, 'source_origin': 549, 'row_bytes': 12, 'source_rows': [549, 601, 965, 1017], 'destination_rows': [403, 486, 1106, 1189], 'transfers': [[549, 403, 12], [601, 486, 12], [965, 1106, 12], [1017, 1189, 12]], 'source_required': 1008, 'destination_required': 798}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 56, 'source_slice_pitch': 504, 'skip_bytes': 620, 'source_origin': 641, 'row_bytes': 16, 'source_rows': [641, 697, 753], 'destination_rows': [403, 486, 569], 'transfers': [[641, 403, 16], [697, 486, 16], [753, 569, 16]], 'source_required': 748, 'destination_required': 182}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 60, 'source_slice_pitch': 600, 'skip_bytes': 728, 'source_origin': 749, 'row_bytes': 20, 'source_rows': [749, 1349], 'destination_rows': [403, 1106], 'transfers': [[749, 403, 20], [1349, 1106, 20]], 'source_required': 1348, 'destination_required': 723}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 4, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 64, 'source_slice_pitch': 704, 'skip_bytes': 836, 'source_origin': 857, 'row_bytes': 24, 'source_rows': [857, 921], 'destination_rows': [403, 486], 'transfers': [[857, 403, 24], [921, 486, 24]], 'source_required': 924, 'destination_required': 107}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 4, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 21, 'dst': 403, 'dp': 83, 'ds': 703}, {'source_row_pitch': 68, 'source_slice_pitch': 816, 'skip_bytes': 960, 'source_origin': 981, 'row_bytes': 28, 'source_rows': [981, 1049, 1117, 1797, 1865, 1933], 'destination_rows': [403, 486, 569, 1106, 1189, 1272], 'transfers': [[981, 403, 28], [1049, 486, 28], [1117, 569, 28], [1797, 1106, 28], [1865, 1189, 28], [1933, 1272, 28]], 'source_required': 1940, 'destination_required': 897})], 4: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 60, 'source_slice_pitch': 420, 'skip_bytes': 545, 'source_origin': 573, 'row_bytes': 10, 'source_rows': [573], 'destination_rows': [404], 'transfers': [[573, 404, 10]], 'source_required': 555, 'destination_required': 10}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 65, 'source_slice_pitch': 520, 'skip_bytes': 660, 'source_origin': 688, 'row_bytes': 15, 'source_rows': [688, 753, 1208, 1273], 'destination_rows': [404, 488, 1108, 1192], 'transfers': [[688, 404, 15], [753, 488, 15], [1208, 1108, 15], [1273, 1192, 15]], 'source_required': 1260, 'destination_required': 803}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 70, 'source_slice_pitch': 630, 'skip_bytes': 775, 'source_origin': 803, 'row_bytes': 20, 'source_rows': [803, 873, 943], 'destination_rows': [404, 488, 572], 'transfers': [[803, 404, 20], [873, 488, 20], [943, 572, 20]], 'source_required': 935, 'destination_required': 188}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 75, 'source_slice_pitch': 750, 'skip_bytes': 910, 'source_origin': 938, 'row_bytes': 25, 'source_rows': [938, 1688], 'destination_rows': [404, 1108], 'transfers': [[938, 404, 25], [1688, 1108, 25]], 'source_required': 1685, 'destination_required': 729}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 5, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 80, 'source_slice_pitch': 880, 'skip_bytes': 1045, 'source_origin': 1073, 'row_bytes': 30, 'source_rows': [1073, 1153], 'destination_rows': [404, 488], 'transfers': [[1073, 404, 30], [1153, 488, 30]], 'source_required': 1155, 'destination_required': 114}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 5, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 28, 'dst': 404, 'dp': 84, 'ds': 704}, {'source_row_pitch': 85, 'source_slice_pitch': 1020, 'skip_bytes': 1200, 'source_origin': 1228, 'row_bytes': 35, 'source_rows': [1228, 1313, 1398, 2248, 2333, 2418], 'destination_rows': [404, 488, 572, 1108, 1192, 1276], 'transfers': [[1228, 404, 35], [1313, 488, 35], [1398, 572, 35], [2248, 1108, 35], [2333, 1192, 35], [2418, 1276, 35]], 'source_required': 2425, 'destination_required': 907})], 5: [({'width': 2, 'height': 1, 'depth': 1, 'row_length': 12, 'image_height': 7, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 72, 'source_slice_pitch': 504, 'skip_bytes': 654, 'source_origin': 689, 'row_bytes': 12, 'source_rows': [689], 'destination_rows': [405], 'transfers': [[689, 405, 12]], 'source_required': 666, 'destination_required': 12}), ({'width': 3, 'height': 2, 'depth': 2, 'row_length': 13, 'image_height': 8, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 78, 'source_slice_pitch': 624, 'skip_bytes': 792, 'source_origin': 827, 'row_bytes': 18, 'source_rows': [827, 905, 1451, 1529], 'destination_rows': [405, 490, 1110, 1195], 'transfers': [[827, 405, 18], [905, 490, 18], [1451, 1110, 18], [1529, 1195, 18]], 'source_required': 1512, 'destination_required': 808}), ({'width': 4, 'height': 3, 'depth': 1, 'row_length': 14, 'image_height': 9, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 84, 'source_slice_pitch': 756, 'skip_bytes': 930, 'source_origin': 965, 'row_bytes': 24, 'source_rows': [965, 1049, 1133], 'destination_rows': [405, 490, 575], 'transfers': [[965, 405, 24], [1049, 490, 24], [1133, 575, 24]], 'source_required': 1122, 'destination_required': 194}), ({'width': 5, 'height': 1, 'depth': 2, 'row_length': 15, 'image_height': 10, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 90, 'source_slice_pitch': 900, 'skip_bytes': 1092, 'source_origin': 1127, 'row_bytes': 30, 'source_rows': [1127, 2027], 'destination_rows': [405, 1110], 'transfers': [[1127, 405, 30], [2027, 1110, 30]], 'source_required': 2022, 'destination_required': 735}), ({'width': 6, 'height': 2, 'depth': 1, 'row_length': 16, 'image_height': 11, 'b': 6, 'skip_x': 1, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 96, 'source_slice_pitch': 1056, 'skip_bytes': 1254, 'source_origin': 1289, 'row_bytes': 36, 'source_rows': [1289, 1385], 'destination_rows': [405, 490], 'transfers': [[1289, 405, 36], [1385, 490, 36]], 'source_required': 1386, 'destination_required': 121}), ({'width': 7, 'height': 3, 'depth': 2, 'row_length': 17, 'image_height': 12, 'b': 6, 'skip_x': 2, 'skip_y': 2, 'skip_z': 1, 'src': 35, 'dst': 405, 'dp': 85, 'ds': 705}, {'source_row_pitch': 102, 'source_slice_pitch': 1224, 'skip_bytes': 1440, 'source_origin': 1475, 'row_bytes': 42, 'source_rows': [1475, 1577, 1679, 2699, 2801, 2903], 'destination_rows': [405, 490, 575, 1110, 1195, 1280], 'transfers': [[1475, 405, 42], [1577, 490, 42], [1679, 575, 42], [2699, 1110, 42], [2801, 1195, 42], [2903, 1280, 42]], 'source_required': 2910, 'destination_required': 917})]}
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{'destination_required': 4, 'destination_rows': [401], 'row_bytes': 4, 'skip_bytes': 218, 'source_origin': 225, 'source_required': 222, 'source_row_pitch': 24, 'source_rows': [225], 'source_slice_pitch': 168, 'transfers': [[225, 401, 4]]}{'destination_required': 4, 'destination_rows': [401], 'row_bytes': 4, 'skip_bytes': 218, 'source_origin': 225, 'source_required': 222, 'source_row_pitch': 24, 'source_rows': [225], 'source_slice_pitch': 168, 'transfers': [[225, 401, 4]]}Passed
layout fixture 2{'destination_required': 788, 'destination_rows': [401, 482, 1102, 1183], 'row_bytes': 6, 'skip_bytes': 264, 'source_origin': 271, 'source_required': 504, 'source_row_pitch': 26, 'source_rows': [271, 297, 479, 505], 'source_slice_pitch': 208, 'transfers': [[271, 401, 6], [297, 482, 6], [479, 1102, 6], [505, 1183, 6]]}{'destination_required': 788, 'destination_rows': [401, 482, 1102, 1183], 'row_bytes': 6, 'skip_bytes': 264, 'source_origin': 271, 'source_required': 504, 'source_row_pitch': 26, 'source_rows': [271, 297, 479, 505], 'source_slice_pitch': 208, 'transfers': [[271, 401, 6], [297, 482, 6], [479, 1102, 6], [505, 1183, 6]]}Passed
layout fixture 3{'destination_required': 170, 'destination_rows': [401, 482, 563], 'row_bytes': 8, 'skip_bytes': 310, 'source_origin': 317, 'source_required': 374, 'source_row_pitch': 28, 'source_rows': [317, 345, 373], 'source_slice_pitch': 252, 'transfers': [[317, 401, 8], [345, 482, 8], [373, 563, 8]]}{'destination_required': 170, 'destination_rows': [401, 482, 563], 'row_bytes': 8, 'skip_bytes': 310, 'source_origin': 317, 'source_required': 374, 'source_row_pitch': 28, 'source_rows': [317, 345, 373], 'source_slice_pitch': 252, 'transfers': [[317, 401, 8], [345, 482, 8], [373, 563, 8]]}Passed
layout fixture 4{'destination_required': 711, 'destination_rows': [401, 1102], 'row_bytes': 10, 'skip_bytes': 364, 'source_origin': 371, 'source_required': 674, 'source_row_pitch': 30, 'source_rows': [371, 671], 'source_slice_pitch': 300, 'transfers': [[371, 401, 10], [671, 1102, 10]]}{'destination_required': 711, 'destination_rows': [401, 1102], 'row_bytes': 10, 'skip_bytes': 364, 'source_origin': 371, 'source_required': 674, 'source_row_pitch': 30, 'source_rows': [371, 671], 'source_slice_pitch': 300, 'transfers': [[371, 401, 10], [671, 1102, 10]]}Passed
layout fixture 5{'destination_required': 93, 'destination_rows': [401, 482], 'row_bytes': 12, 'skip_bytes': 418, 'source_origin': 425, 'source_required': 462, 'source_row_pitch': 32, 'source_rows': [425, 457], 'source_slice_pitch': 352, 'transfers': [[425, 401, 12], [457, 482, 12]]}{'destination_required': 93, 'destination_rows': [401, 482], 'row_bytes': 12, 'skip_bytes': 418, 'source_origin': 425, 'source_required': 462, 'source_row_pitch': 32, 'source_rows': [425, 457], 'source_slice_pitch': 352, 'transfers': [[425, 401, 12], [457, 482, 12]]}Passed
layout fixture 6{'destination_required': 877, 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'row_bytes': 14, 'skip_bytes': 480, 'source_origin': 487, 'source_required': 970, 'source_row_pitch': 34, 'source_rows': [487, 521, 555, 895, 929, 963], 'source_slice_pitch': 408, 'transfers': [[487, 401, 14], [521, 482, 14], [555, 563, 14], [895, 1102, 14], [929, 1183, 14], [963, 1264, 14]]}{'destination_required': 877, 'destination_rows': [401, 482, 563, 1102, 1183, 1264], 'row_bytes': 14, 'skip_bytes': 480, 'source_origin': 487, 'source_required': 970, 'source_row_pitch': 34, 'source_rows': [487, 521, 555, 895, 929, 963], 'source_slice_pitch': 408, 'transfers': [[487, 401, 14], [521, 482, 14], [555, 563, 14], [895, 1102, 14], [929, 1183, 14], [963, 1264, 14]]}Passed

SHA-256 / 83bd3b81e54da16fa8c53e2c43ba2f01e21ba59026fd565a9050aac2a7850f80

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

Case digest / b695bed94b9f2ddba96b5afbc71b64d2b783ceebda5e022909d5b97c9254e9ce