{"abstract":"The returned physical layout descriptor disagrees with the declared buffer mapping at tile_row_pitch.","category":"Raster memory layout","checks":6,"contract":"A stipulated 8x4 tile has four banks. Bank = (local x modulo 4) XOR (local y modulo 4); each bank stores two columns per row and begins with a one-byte tag. Tile rows include a seven-byte trailer. Return the named intermediate layout descriptor and final address fields; all quantities are integer byte offsets unless explicitly stated.","evaluation_group":"s3-raster-memory-layout-xor-bank-swizzle","failed_approach":"The attempted repair uses tile_columns*(tile_pitch+7) and still violates the layout contract.","family":"s3-raster-memory-layout-xor-bank-swizzle-tile-row-pitch","id":"FA-52676","implementations":{"attempt":{"sha256":"3f35a59b3a05f29a2539f2649b6c55ba8e5452fed9679a4dcd90ef81dfb6a734","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(p):\n    p = dict(p)\n    tile_columns = (p[\"w\"]+7)//8\n    tile_x = p[\"x\"]//8\n    tile_y = p[\"y\"]//4\n    bank = (p[\"x\"]%4)^(p[\"y\"]%4)\n    bank_local = (p[\"y\"]%4)*2+(p[\"x\"]%8)//4\n    bank_pitch = 8*p[\"b\"]+1\n    tile_pitch = 4*bank_pitch\n    tile_row_pitch = tile_columns*(tile_pitch+7)\n    tile_origin = p[\"base\"]+tile_y*tile_row_pitch+tile_x*tile_pitch\n    address = tile_origin+bank*bank_pitch+1+bank_local*p[\"b\"]\n    return {'tile_columns': tile_columns, 'tile_x': tile_x, 'tile_y': tile_y, 'bank': bank, 'bank_local': bank_local, 'bank_pitch': bank_pitch, 'tile_pitch': tile_pitch, 'tile_row_pitch': tile_row_pitch, 'tile_origin': tile_origin, 'address': address}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 11, 'address': 12}), ({'w': 6, 'h': 4, 'x': 1, 'y': 2, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 11, 'address': 71}), ({'w': 10, 'h': 8, 'x': 8, 'y': 6, 'b': 2, 'base': 11}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 143, 'tile_origin': 222, 'address': 265}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 2, 'base': 11}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 143, 'tile_origin': 222, 'address': 237}), ({'w': 18, 'h': 10, 'x': 16, 'y': 8, 'b': 2, 'base': 11}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 211, 'tile_origin': 569, 'address': 570}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 236, 'address': 288})], 2: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 22, 'address': 23}), ({'w': 7, 'h': 5, 'x': 1, 'y': 2, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 22, 'address': 110}), ({'w': 11, 'h': 9, 'x': 8, 'y': 6, 'b': 3, 'base': 22}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 207, 'tile_origin': 329, 'address': 392}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 3, 'base': 22}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 207, 'tile_origin': 329, 'address': 351}), ({'w': 19, 'h': 11, 'x': 16, 'y': 8, 'b': 3, 'base': 22}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 307, 'tile_origin': 836, 'address': 837}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 343, 'address': 419})], 3: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 33, 'address': 34}), ({'w': 8, 'h': 6, 'x': 1, 'y': 2, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 33, 'address': 149}), ({'w': 12, 'h': 10, 'x': 8, 'y': 6, 'b': 4, 'base': 33}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 271, 'tile_origin': 436, 'address': 519}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 4, 'base': 33}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 271, 'tile_origin': 436, 'address': 465}), ({'w': 20, 'h': 12, 'x': 16, 'y': 8, 'b': 4, 'base': 33}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 403, 'tile_origin': 1103, 'address': 1104}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 450, 'address': 550})], 4: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 5, 'base': 44}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 171, 'tile_origin': 44, 'address': 45}), ({'w': 9, 'h': 7, 'x': 1, 'y': 2, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 44, 'address': 188}), ({'w': 13, 'h': 11, 'x': 8, 'y': 6, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 543, 'address': 646}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 543, 'address': 579}), ({'w': 21, 'h': 13, 'x': 16, 'y': 8, 'b': 5, 'base': 44}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 499, 'tile_origin': 1370, 'address': 1371}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 5, 'base': 44}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 171, 'tile_origin': 557, 'address': 681})], 5: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 6, 'base': 55}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 203, 'tile_origin': 55, 'address': 56}), ({'w': 10, 'h': 8, 'x': 1, 'y': 2, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 55, 'address': 227}), ({'w': 14, 'h': 12, 'x': 8, 'y': 6, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 650, 'address': 773}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 650, 'address': 693}), ({'w': 22, 'h': 14, 'x': 16, 'y': 8, 'b': 6, 'base': 55}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 595, 'tile_origin': 1637, 'address': 1638}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 6, 'base': 55}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 203, 'tile_origin': 664, 'address': 812})]}\nfor i, (p, expected) in enumerate(cases[N]):\n    check(\"layout fixture \" + str(i + 1), solve(p), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"e6c2edaa683df1046422da55df81eb7d93fa29d576f97d254307728fad452983","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(p):\n    p = dict(p)\n    tile_columns = (p[\"w\"]+7)//8\n    tile_x = p[\"x\"]//8\n    tile_y = p[\"y\"]//4\n    bank = (p[\"x\"]%4)^(p[\"y\"]%4)\n    bank_local = (p[\"y\"]%4)*2+(p[\"x\"]%8)//4\n    bank_pitch = 8*p[\"b\"]+1\n    tile_pitch = 4*bank_pitch\n    tile_row_pitch = tile_columns*tile_pitch\n    tile_origin = p[\"base\"]+tile_y*tile_row_pitch+tile_x*tile_pitch\n    address = tile_origin+bank*bank_pitch+1+bank_local*p[\"b\"]\n    return {'tile_columns': tile_columns, 'tile_x': tile_x, 'tile_y': tile_y, 'bank': bank, 'bank_local': bank_local, 'bank_pitch': bank_pitch, 'tile_pitch': tile_pitch, 'tile_row_pitch': tile_row_pitch, 'tile_origin': tile_origin, 'address': address}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 11, 'address': 12}), ({'w': 6, 'h': 4, 'x': 1, 'y': 2, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 11, 'address': 71}), ({'w': 10, 'h': 8, 'x': 8, 'y': 6, 'b': 2, 'base': 11}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 143, 'tile_origin': 222, 'address': 265}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 2, 'base': 11}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 143, 'tile_origin': 222, 'address': 237}), ({'w': 18, 'h': 10, 'x': 16, 'y': 8, 'b': 2, 'base': 11}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 211, 'tile_origin': 569, 'address': 570}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 236, 'address': 288})], 2: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 22, 'address': 23}), ({'w': 7, 'h': 5, 'x': 1, 'y': 2, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 22, 'address': 110}), ({'w': 11, 'h': 9, 'x': 8, 'y': 6, 'b': 3, 'base': 22}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 207, 'tile_origin': 329, 'address': 392}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 3, 'base': 22}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 207, 'tile_origin': 329, 'address': 351}), ({'w': 19, 'h': 11, 'x': 16, 'y': 8, 'b': 3, 'base': 22}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 307, 'tile_origin': 836, 'address': 837}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 343, 'address': 419})], 3: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 33, 'address': 34}), ({'w': 8, 'h': 6, 'x': 1, 'y': 2, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 33, 'address': 149}), ({'w': 12, 'h': 10, 'x': 8, 'y': 6, 'b': 4, 'base': 33}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 271, 'tile_origin': 436, 'address': 519}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 4, 'base': 33}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 271, 'tile_origin': 436, 'address': 465}), ({'w': 20, 'h': 12, 'x': 16, 'y': 8, 'b': 4, 'base': 33}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 403, 'tile_origin': 1103, 'address': 1104}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 450, 'address': 550})], 4: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 5, 'base': 44}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 171, 'tile_origin': 44, 'address': 45}), ({'w': 9, 'h': 7, 'x': 1, 'y': 2, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 44, 'address': 188}), ({'w': 13, 'h': 11, 'x': 8, 'y': 6, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 543, 'address': 646}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 543, 'address': 579}), ({'w': 21, 'h': 13, 'x': 16, 'y': 8, 'b': 5, 'base': 44}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 499, 'tile_origin': 1370, 'address': 1371}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 5, 'base': 44}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 171, 'tile_origin': 557, 'address': 681})], 5: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 6, 'base': 55}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 203, 'tile_origin': 55, 'address': 56}), ({'w': 10, 'h': 8, 'x': 1, 'y': 2, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 55, 'address': 227}), ({'w': 14, 'h': 12, 'x': 8, 'y': 6, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 650, 'address': 773}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 650, 'address': 693}), ({'w': 22, 'h': 14, 'x': 16, 'y': 8, 'b': 6, 'base': 55}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 595, 'tile_origin': 1637, 'address': 1638}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 6, 'base': 55}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 203, 'tile_origin': 664, 'address': 812})]}\nfor i, (p, expected) in enumerate(cases[N]):\n    check(\"layout fixture \" + str(i + 1), solve(p), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"36d2b11d5a00ee8f888faeefe0d55663dfaa2ffc3b764dd1c104dc3dc24c1c3f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(p):\n    p = dict(p)\n    tile_columns = (p[\"w\"]+7)//8\n    tile_x = p[\"x\"]//8\n    tile_y = p[\"y\"]//4\n    bank = (p[\"x\"]%4)^(p[\"y\"]%4)\n    bank_local = (p[\"y\"]%4)*2+(p[\"x\"]%8)//4\n    bank_pitch = 8*p[\"b\"]+1\n    tile_pitch = 4*bank_pitch\n    tile_row_pitch = tile_columns*tile_pitch+7\n    tile_origin = p[\"base\"]+tile_y*tile_row_pitch+tile_x*tile_pitch\n    address = tile_origin+bank*bank_pitch+1+bank_local*p[\"b\"]\n    return {'tile_columns': tile_columns, 'tile_x': tile_x, 'tile_y': tile_y, 'bank': bank, 'bank_local': bank_local, 'bank_pitch': bank_pitch, 'tile_pitch': tile_pitch, 'tile_row_pitch': tile_row_pitch, 'tile_origin': tile_origin, 'address': address}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = {1: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 11, 'address': 12}), ({'w': 6, 'h': 4, 'x': 1, 'y': 2, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 11, 'address': 71}), ({'w': 10, 'h': 8, 'x': 8, 'y': 6, 'b': 2, 'base': 11}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 143, 'tile_origin': 222, 'address': 265}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 2, 'base': 11}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 143, 'tile_origin': 222, 'address': 237}), ({'w': 18, 'h': 10, 'x': 16, 'y': 8, 'b': 2, 'base': 11}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 211, 'tile_origin': 569, 'address': 570}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 2, 'base': 11}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 17, 'tile_pitch': 68, 'tile_row_pitch': 75, 'tile_origin': 236, 'address': 288})], 2: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 22, 'address': 23}), ({'w': 7, 'h': 5, 'x': 1, 'y': 2, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 22, 'address': 110}), ({'w': 11, 'h': 9, 'x': 8, 'y': 6, 'b': 3, 'base': 22}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 207, 'tile_origin': 329, 'address': 392}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 3, 'base': 22}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 207, 'tile_origin': 329, 'address': 351}), ({'w': 19, 'h': 11, 'x': 16, 'y': 8, 'b': 3, 'base': 22}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 307, 'tile_origin': 836, 'address': 837}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 3, 'base': 22}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 25, 'tile_pitch': 100, 'tile_row_pitch': 107, 'tile_origin': 343, 'address': 419})], 3: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 33, 'address': 34}), ({'w': 8, 'h': 6, 'x': 1, 'y': 2, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 33, 'address': 149}), ({'w': 12, 'h': 10, 'x': 8, 'y': 6, 'b': 4, 'base': 33}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 271, 'tile_origin': 436, 'address': 519}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 4, 'base': 33}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 271, 'tile_origin': 436, 'address': 465}), ({'w': 20, 'h': 12, 'x': 16, 'y': 8, 'b': 4, 'base': 33}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 403, 'tile_origin': 1103, 'address': 1104}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 4, 'base': 33}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 33, 'tile_pitch': 132, 'tile_row_pitch': 139, 'tile_origin': 450, 'address': 550})], 4: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 5, 'base': 44}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 171, 'tile_origin': 44, 'address': 45}), ({'w': 9, 'h': 7, 'x': 1, 'y': 2, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 44, 'address': 188}), ({'w': 13, 'h': 11, 'x': 8, 'y': 6, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 543, 'address': 646}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 5, 'base': 44}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 335, 'tile_origin': 543, 'address': 579}), ({'w': 21, 'h': 13, 'x': 16, 'y': 8, 'b': 5, 'base': 44}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 499, 'tile_origin': 1370, 'address': 1371}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 5, 'base': 44}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 41, 'tile_pitch': 164, 'tile_row_pitch': 171, 'tile_origin': 557, 'address': 681})], 5: [({'w': 1, 'h': 1, 'x': 0, 'y': 0, 'b': 6, 'base': 55}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 0, 'bank': 0, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 203, 'tile_origin': 55, 'address': 56}), ({'w': 10, 'h': 8, 'x': 1, 'y': 2, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 0, 'tile_y': 0, 'bank': 3, 'bank_local': 4, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 55, 'address': 227}), ({'w': 14, 'h': 12, 'x': 8, 'y': 6, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 2, 'bank_local': 4, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 650, 'address': 773}), ({'w': 16, 'h': 8, 'x': 15, 'y': 7, 'b': 6, 'base': 55}, {'tile_columns': 2, 'tile_x': 1, 'tile_y': 1, 'bank': 0, 'bank_local': 7, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 399, 'tile_origin': 650, 'address': 693}), ({'w': 22, 'h': 14, 'x': 16, 'y': 8, 'b': 6, 'base': 55}, {'tile_columns': 3, 'tile_x': 2, 'tile_y': 2, 'bank': 0, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 595, 'tile_origin': 1637, 'address': 1638}), ({'w': 7, 'h': 13, 'x': 3, 'y': 12, 'b': 6, 'base': 55}, {'tile_columns': 1, 'tile_x': 0, 'tile_y': 3, 'bank': 3, 'bank_local': 0, 'bank_pitch': 49, 'tile_pitch': 196, 'tile_row_pitch': 203, 'tile_origin': 664, 'address': 812})]}\nfor i, (p, expected) in enumerate(cases[N]):\n    check(\"layout fixture \" + str(i + 1), solve(p), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-raster-memory-layout-xor-bank-swizzle-tile-row-pitch","generated_at":"2026-09-29T14:45:31.443174+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline raster resource, upload, readback, and storage-layout regression model.","repair":"Apply the stipulated layout rule at tile_row_pitch: tile_columns*tile_pitch+7.","root_cause":"Tile-row trailer omitted or repeated per tile The faulty expression is tile_columns*tile_pitch.","sha256":"c7c6dbcce2d669a5018329f267775d90abfb02fba8e406324655c12fe3a08ce0","title":"Xor Bank Swizzle: Tile-row trailer omitted or repeated per tile · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.681,"exit_code":1,"observations":[{"actual":{"address":12,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"check":"layout fixture 1","expected":{"address":12,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"passed":true},{"actual":{"address":71,"bank":3,"bank_local":4,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"check":"layout fixture 2","expected":{"address":71,"bank":3,"bank_local":4,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"passed":true},{"actual":{"address":272,"bank":2,"bank_local":4,"bank_pitch":17,"tile_columns":2,"tile_origin":229,"tile_pitch":68,"tile_row_pitch":150,"tile_x":1,"tile_y":1},"check":"layout fixture 3","expected":{"address":265,"bank":2,"bank_local":4,"bank_pitch":17,"tile_columns":2,"tile_origin":222,"tile_pitch":68,"tile_row_pitch":143,"tile_x":1,"tile_y":1},"passed":false},{"actual":{"address":244,"bank":0,"bank_local":7,"bank_pitch":17,"tile_columns":2,"tile_origin":229,"tile_pitch":68,"tile_row_pitch":150,"tile_x":1,"tile_y":1},"check":"layout fixture 4","expected":{"address":237,"bank":0,"bank_local":7,"bank_pitch":17,"tile_columns":2,"tile_origin":222,"tile_pitch":68,"tile_row_pitch":143,"tile_x":1,"tile_y":1},"passed":false},{"actual":{"address":598,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":3,"tile_origin":597,"tile_pitch":68,"tile_row_pitch":225,"tile_x":2,"tile_y":2},"check":"layout fixture 5","expected":{"address":570,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":3,"tile_origin":569,"tile_pitch":68,"tile_row_pitch":211,"tile_x":2,"tile_y":2},"passed":false},{"actual":{"address":288,"bank":3,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":236,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":3},"check":"layout fixture 6","expected":{"address":288,"bank":3,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":236,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":3},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"layout fixture 1\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 12}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 12}, \"passed\": true}, {\"check\": \"layout fixture 2\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 3, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 71}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 3, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 71}, \"passed\": true}, {\"check\": \"layout fixture 3\", \"actual\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 2, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 150, \"tile_origin\": 229, \"address\": 272}, \"expected\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 2, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 143, \"tile_origin\": 222, \"address\": 265}, \"passed\": false}, {\"check\": \"layout fixture 4\", \"actual\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 0, \"bank_local\": 7, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 150, \"tile_origin\": 229, \"address\": 244}, \"expected\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 0, \"bank_local\": 7, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 143, \"tile_origin\": 222, \"address\": 237}, \"passed\": false}, {\"check\": \"layout fixture 5\", \"actual\": {\"tile_columns\": 3, \"tile_x\": 2, \"tile_y\": 2, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 225, \"tile_origin\": 597, \"address\": 598}, \"expected\": {\"tile_columns\": 3, \"tile_x\": 2, \"tile_y\": 2, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 211, \"tile_origin\": 569, \"address\": 570}, \"passed\": false}, {\"check\": \"layout fixture 6\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 3, \"bank\": 3, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 236, \"address\": 288}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 3, \"bank\": 3, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 236, \"address\": 288}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.807,"exit_code":1,"observations":[{"actual":{"address":12,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":68,"tile_x":0,"tile_y":0},"check":"layout fixture 1","expected":{"address":12,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"passed":false},{"actual":{"address":71,"bank":3,"bank_local":4,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":68,"tile_x":0,"tile_y":0},"check":"layout fixture 2","expected":{"address":71,"bank":3,"bank_local":4,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"passed":false},{"actual":{"address":258,"bank":2,"bank_local":4,"bank_pitch":17,"tile_columns":2,"tile_origin":215,"tile_pitch":68,"tile_row_pitch":136,"tile_x":1,"tile_y":1},"check":"layout fixture 3","expected":{"address":265,"bank":2,"bank_local":4,"bank_pitch":17,"tile_columns":2,"tile_origin":222,"tile_pitch":68,"tile_row_pitch":143,"tile_x":1,"tile_y":1},"passed":false},{"actual":{"address":230,"bank":0,"bank_local":7,"bank_pitch":17,"tile_columns":2,"tile_origin":215,"tile_pitch":68,"tile_row_pitch":136,"tile_x":1,"tile_y":1},"check":"layout fixture 4","expected":{"address":237,"bank":0,"bank_local":7,"bank_pitch":17,"tile_columns":2,"tile_origin":222,"tile_pitch":68,"tile_row_pitch":143,"tile_x":1,"tile_y":1},"passed":false},{"actual":{"address":556,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":3,"tile_origin":555,"tile_pitch":68,"tile_row_pitch":204,"tile_x":2,"tile_y":2},"check":"layout fixture 5","expected":{"address":570,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":3,"tile_origin":569,"tile_pitch":68,"tile_row_pitch":211,"tile_x":2,"tile_y":2},"passed":false},{"actual":{"address":267,"bank":3,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":215,"tile_pitch":68,"tile_row_pitch":68,"tile_x":0,"tile_y":3},"check":"layout fixture 6","expected":{"address":288,"bank":3,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":236,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":3},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"layout fixture 1\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 68, \"tile_origin\": 11, \"address\": 12}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 12}, \"passed\": false}, {\"check\": \"layout fixture 2\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 3, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 68, \"tile_origin\": 11, \"address\": 71}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 3, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 71}, \"passed\": false}, {\"check\": \"layout fixture 3\", \"actual\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 2, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 136, \"tile_origin\": 215, \"address\": 258}, \"expected\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 2, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 143, \"tile_origin\": 222, \"address\": 265}, \"passed\": false}, {\"check\": \"layout fixture 4\", \"actual\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 0, \"bank_local\": 7, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 136, \"tile_origin\": 215, \"address\": 230}, \"expected\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 0, \"bank_local\": 7, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 143, \"tile_origin\": 222, \"address\": 237}, \"passed\": false}, {\"check\": \"layout fixture 5\", \"actual\": {\"tile_columns\": 3, \"tile_x\": 2, \"tile_y\": 2, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 204, \"tile_origin\": 555, \"address\": 556}, \"expected\": {\"tile_columns\": 3, \"tile_x\": 2, \"tile_y\": 2, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 211, \"tile_origin\": 569, \"address\": 570}, \"passed\": false}, {\"check\": \"layout fixture 6\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 3, \"bank\": 3, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 68, \"tile_origin\": 215, \"address\": 267}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 3, \"bank\": 3, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 236, \"address\": 288}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.101,"exit_code":0,"observations":[{"actual":{"address":12,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"check":"layout fixture 1","expected":{"address":12,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"passed":true},{"actual":{"address":71,"bank":3,"bank_local":4,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"check":"layout fixture 2","expected":{"address":71,"bank":3,"bank_local":4,"bank_pitch":17,"tile_columns":1,"tile_origin":11,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":0},"passed":true},{"actual":{"address":265,"bank":2,"bank_local":4,"bank_pitch":17,"tile_columns":2,"tile_origin":222,"tile_pitch":68,"tile_row_pitch":143,"tile_x":1,"tile_y":1},"check":"layout fixture 3","expected":{"address":265,"bank":2,"bank_local":4,"bank_pitch":17,"tile_columns":2,"tile_origin":222,"tile_pitch":68,"tile_row_pitch":143,"tile_x":1,"tile_y":1},"passed":true},{"actual":{"address":237,"bank":0,"bank_local":7,"bank_pitch":17,"tile_columns":2,"tile_origin":222,"tile_pitch":68,"tile_row_pitch":143,"tile_x":1,"tile_y":1},"check":"layout fixture 4","expected":{"address":237,"bank":0,"bank_local":7,"bank_pitch":17,"tile_columns":2,"tile_origin":222,"tile_pitch":68,"tile_row_pitch":143,"tile_x":1,"tile_y":1},"passed":true},{"actual":{"address":570,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":3,"tile_origin":569,"tile_pitch":68,"tile_row_pitch":211,"tile_x":2,"tile_y":2},"check":"layout fixture 5","expected":{"address":570,"bank":0,"bank_local":0,"bank_pitch":17,"tile_columns":3,"tile_origin":569,"tile_pitch":68,"tile_row_pitch":211,"tile_x":2,"tile_y":2},"passed":true},{"actual":{"address":288,"bank":3,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":236,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":3},"check":"layout fixture 6","expected":{"address":288,"bank":3,"bank_local":0,"bank_pitch":17,"tile_columns":1,"tile_origin":236,"tile_pitch":68,"tile_row_pitch":75,"tile_x":0,"tile_y":3},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"layout fixture 1\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 12}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 12}, \"passed\": true}, {\"check\": \"layout fixture 2\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 3, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 71}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 0, \"bank\": 3, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 11, \"address\": 71}, \"passed\": true}, {\"check\": \"layout fixture 3\", \"actual\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 2, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 143, \"tile_origin\": 222, \"address\": 265}, \"expected\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 2, \"bank_local\": 4, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 143, \"tile_origin\": 222, \"address\": 265}, \"passed\": true}, {\"check\": \"layout fixture 4\", \"actual\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 0, \"bank_local\": 7, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 143, \"tile_origin\": 222, \"address\": 237}, \"expected\": {\"tile_columns\": 2, \"tile_x\": 1, \"tile_y\": 1, \"bank\": 0, \"bank_local\": 7, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 143, \"tile_origin\": 222, \"address\": 237}, \"passed\": true}, {\"check\": \"layout fixture 5\", \"actual\": {\"tile_columns\": 3, \"tile_x\": 2, \"tile_y\": 2, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 211, \"tile_origin\": 569, \"address\": 570}, \"expected\": {\"tile_columns\": 3, \"tile_x\": 2, \"tile_y\": 2, \"bank\": 0, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 211, \"tile_origin\": 569, \"address\": 570}, \"passed\": true}, {\"check\": \"layout fixture 6\", \"actual\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 3, \"bank\": 3, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 236, \"address\": 288}, \"expected\": {\"tile_columns\": 1, \"tile_x\": 0, \"tile_y\": 3, \"bank\": 3, \"bank_local\": 0, \"bank_pitch\": 17, \"tile_pitch\": 68, \"tile_row_pitch\": 75, \"tile_origin\": 236, \"address\": 288}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}