{"abstract":"Stale data remains visible in the file beyond the valid position.","category":"PLC ladder logic scan cycles","checks":8,"contract":"FIFO load (FFL) and unload (FFU) pair on one file of the given length. ops is a list of [op, value], one triggered instruction per scan. Load stores value at the position and increments it; when full (position == length) the load is ignored. Unload moves element 0 to dest, shifts the file toward 0 and zeroes the vacated last element; unloading an empty FIFO leaves dest unchanged. DN is position >= length and EM is position == 0. Return [position, dest, DN, EM, file] per scan.","evaluation_group":"w2-plc-ladder-logic-scan-cycles-ffl-ffu-fifo","failed_approach":"Refilling the slot with the unloaded value still leaves stale data.","family":"w2-plc-ladder-logic-scan-cycles-ffl-ffu-fifo-vacated-slot","id":"FA-92171","implementations":{"attempt":{"sha256":"759d3876735a12912e19a793f583f9667a91cf4e541cd857202ee63c6fdc6b20","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(length, ops):\n    fifo = [0] * length\n    pos = 0\n    dest = 0\n    out = []\n    for op, value in ops:\n        if op == 'load':\n            if pos < length:\n                fifo[pos] = value\n                pos += 1\n        elif op == 'unload':\n            if pos > 0:\n                dest = fifo[0]\n                fifo = fifo[1:] + [dest]\n                pos -= 1\n        out.append([pos, dest, pos >= length, pos == 0, list(fifo)])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 1',\n   [2,\n    [['load', 13],\n     ['unload', 80],\n     ['load', 3],\n     ['unload', 53],\n     ['load', 38],\n     ['load', 22],\n     ['load', 1],\n     ['load', 4],\n     ['unload', 96],\n     ['load', 42]]],\n   [[1, 0, False, False, [13, 0]],\n    [0, 13, False, True, [0, 0]],\n    [1, 13, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [38, 0]],\n    [2, 3, True, False, [38, 22]],\n    [2, 3, True, False, [38, 22]],\n    [2, 3, True, False, [38, 22]],\n    [1, 38, False, False, [22, 0]],\n    [2, 38, True, False, [22, 42]]]],\n  ['regression: scenario 2',\n   [2,\n    [['load', 44],\n     ['load', 96],\n     ['load', 30],\n     ['load', 50],\n     ['unload', 74],\n     ['load', 69],\n     ['load', 32],\n     ['load', 2],\n     ['load', 17],\n     ['load', 33]]],\n   [[1, 0, False, False, [44, 0]],\n    [2, 0, True, False, [44, 96]],\n    [2, 0, True, False, [44, 96]],\n    [2, 0, True, False, [44, 96]],\n    [1, 44, False, False, [96, 0]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]]]],\n  ['regression: scenario 3',\n   [2,\n    [['load', 41],\n     ['load', 30],\n     ['load', 37],\n     ['unload', 92],\n     ['load', 8],\n     ['load', 87],\n     ['unload', 97],\n     ['load', 95],\n     ['load', 23]]],\n   [[1, 0, False, False, [41, 0]],\n    [2, 0, True, False, [41, 30]],\n    [2, 0, True, False, [41, 30]],\n    [1, 41, False, False, [30, 0]],\n    [2, 41, True, False, [30, 8]],\n    [2, 41, True, False, [30, 8]],\n    [1, 30, False, False, [8, 0]],\n    [2, 30, True, False, [8, 95]],\n    [2, 30, True, False, [8, 95]]]],\n  ['regression: scenario 4',\n   [4,\n    [['load', 81],\n     ['load', 71],\n     ['unload', 98],\n     ['load', 25],\n     ['unload', 33],\n     ['load', 59],\n     ['load', 39],\n     ['unload', 31],\n     ['load', 15]]],\n   [[1, 0, False, False, [81, 0, 0, 0]],\n    [2, 0, False, False, [81, 71, 0, 0]],\n    [1, 81, False, False, [71, 0, 0, 0]],\n    [2, 81, False, False, [71, 25, 0, 0]],\n    [1, 71, False, False, [25, 0, 0, 0]],\n    [2, 71, False, False, [25, 59, 0, 0]],\n    [3, 71, False, False, [25, 59, 39, 0]],\n    [2, 25, False, False, [59, 39, 0, 0]],\n    [3, 25, False, False, [59, 39, 15, 0]]]]],\n [['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 1',\n   [1,\n    [['unload', 80],\n     ['load', 18],\n     ['unload', 20],\n     ['load', 68],\n     ['load', 99],\n     ['unload', 56],\n     ['unload', 34],\n     ['unload', 21],\n     ['load', 94],\n     ['unload', 43]]],\n   [[0, 0, False, True, [0]],\n    [1, 0, True, False, [18]],\n    [0, 18, False, True, [0]],\n    [1, 18, True, False, [68]],\n    [1, 18, True, False, [68]],\n    [0, 68, False, True, [0]],\n    [0, 68, False, True, [0]],\n    [0, 68, False, True, [0]],\n    [1, 68, True, False, [94]],\n    [0, 94, False, True, [0]]]],\n  ['regression: scenario 2',\n   [3,\n    [['load', 80],\n     ['load', 62],\n     ['unload', 32],\n     ['load', 91],\n     ['unload', 77],\n     ['unload', 52],\n     ['unload', 56],\n     ['unload', 24],\n     ['load', 57]]],\n   [[1, 0, False, False, [80, 0, 0]],\n    [2, 0, False, False, [80, 62, 0]],\n    [1, 80, False, False, [62, 0, 0]],\n    [2, 80, False, False, [62, 91, 0]],\n    [1, 62, False, False, [91, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [1, 91, False, False, [57, 0, 0]]]],\n  ['control: scenario 3',\n   [3, [['unload', 99], ['load', 16], ['load', 80], ['load', 77], ['load', 65], ['load', 25]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [16, 0, 0]],\n    [2, 0, False, False, [16, 80, 0]],\n    [3, 0, True, False, [16, 80, 77]],\n    [3, 0, True, False, [16, 80, 77]],\n    [3, 0, True, False, [16, 80, 77]]]],\n  ['regression: scenario 4',\n   [3,\n    [['load', 83],\n     ['load', 77],\n     ['load', 45],\n     ['unload', 87],\n     ['unload', 91],\n     ['load', 8],\n     ['load', 82],\n     ['load', 12],\n     ['load', 10],\n     ['load', 84]]],\n   [[1, 0, False, False, [83, 0, 0]],\n    [2, 0, False, False, [83, 77, 0]],\n    [3, 0, True, False, [83, 77, 45]],\n    [2, 83, False, False, [77, 45, 0]],\n    [1, 77, False, False, [45, 0, 0]],\n    [2, 77, False, False, [45, 8, 0]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]]]]],\n [['regression: scenario 1',\n   [2,\n    [['unload', 71],\n     ['load', 30],\n     ['load', 44],\n     ['load', 14],\n     ['unload', 84],\n     ['load', 20],\n     ['unload', 82],\n     ['load', 34],\n     ['unload', 85],\n     ['unload', 41],\n     ['load', 90],\n     ['unload', 95]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [30, 0]],\n    [2, 0, True, False, [30, 44]],\n    [2, 0, True, False, [30, 44]],\n    [1, 30, False, False, [44, 0]],\n    [2, 30, True, False, [44, 20]],\n    [1, 44, False, False, [20, 0]],\n    [2, 44, True, False, [20, 34]],\n    [1, 20, False, False, [34, 0]],\n    [0, 34, False, True, [0, 0]],\n    [1, 34, False, False, [90, 0]],\n    [0, 90, False, True, [0, 0]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['control: scenario 2',\n   [2,\n    [['unload', 27],\n     ['load', 29],\n     ['load', 99],\n     ['load', 77],\n     ['load', 8],\n     ['load', 1],\n     ['load', 67],\n     ['load', 51],\n     ['load', 54]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [29, 0]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]]]],\n  ['regression: scenario 3',\n   [3,\n    [['unload', 56],\n     ['unload', 13],\n     ['load', 74],\n     ['unload', 36],\n     ['unload', 80],\n     ['load', 78],\n     ['unload', 27],\n     ['unload', 90],\n     ['load', 46]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [74, 0, 0]],\n    [0, 74, False, True, [0, 0, 0]],\n    [0, 74, False, True, [0, 0, 0]],\n    [1, 74, False, False, [78, 0, 0]],\n    [0, 78, False, True, [0, 0, 0]],\n    [0, 78, False, True, [0, 0, 0]],\n    [1, 78, False, False, [46, 0, 0]]]],\n  ['regression: scenario 4',\n   [4, [['unload', 9], ['load', 20], ['load', 22], ['unload', 50], ['unload', 69], ['load', 13]]],\n   [[0, 0, False, True, [0, 0, 0, 0]],\n    [1, 0, False, False, [20, 0, 0, 0]],\n    [2, 0, False, False, [20, 22, 0, 0]],\n    [1, 20, False, False, [22, 0, 0, 0]],\n    [0, 22, False, True, [0, 0, 0, 0]],\n    [1, 22, False, False, [13, 0, 0, 0]]]]],\n [['regression: scenario 5',\n   [4,\n    [['load', 53],\n     ['load', 79],\n     ['load', 69],\n     ['unload', 57],\n     ['load', 2],\n     ['load', 76],\n     ['unload', 73],\n     ['load', 18],\n     ['unload', 13],\n     ['unload', 1],\n     ['unload', 27]]],\n   [[1, 0, False, False, [53, 0, 0, 0]],\n    [2, 0, False, False, [53, 79, 0, 0]],\n    [3, 0, False, False, [53, 79, 69, 0]],\n    [2, 53, False, False, [79, 69, 0, 0]],\n    [3, 53, False, False, [79, 69, 2, 0]],\n    [4, 53, True, False, [79, 69, 2, 76]],\n    [3, 79, False, False, [69, 2, 76, 0]],\n    [4, 79, True, False, [69, 2, 76, 18]],\n    [3, 69, False, False, [2, 76, 18, 0]],\n    [2, 2, False, False, [76, 18, 0, 0]],\n    [1, 76, False, False, [18, 0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: scenario 1',\n   [1,\n    [['load', 95],\n     ['load', 80],\n     ['load', 83],\n     ['load', 73],\n     ['load', 60],\n     ['unload', 25],\n     ['unload', 21],\n     ['load', 30]]],\n   [[1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [0, 95, False, True, [0]],\n    [0, 95, False, True, [0]],\n    [1, 95, True, False, [30]]]],\n  ['regression: scenario 2',\n   [3,\n    [['unload', 71],\n     ['unload', 34],\n     ['load', 70],\n     ['unload', 18],\n     ['unload', 8],\n     ['unload', 11],\n     ['load', 1],\n     ['load', 16],\n     ['unload', 76],\n     ['load', 11]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [70, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [1, 70, False, False, [1, 0, 0]],\n    [2, 70, False, False, [1, 16, 0]],\n    [1, 1, False, False, [16, 0, 0]],\n    [2, 1, False, False, [16, 11, 0]]]],\n  ['regression: scenario 3',\n   [4,\n    [['unload', 22], ['load', 4], ['unload', 2], ['load', 69], ['load', 19], ['unload', 5], ['unload', 47]]],\n   [[0, 0, False, True, [0, 0, 0, 0]],\n    [1, 0, False, False, [4, 0, 0, 0]],\n    [0, 4, False, True, [0, 0, 0, 0]],\n    [1, 4, False, False, [69, 0, 0, 0]],\n    [2, 4, False, False, [69, 19, 0, 0]],\n    [1, 69, False, False, [19, 0, 0, 0]],\n    [0, 19, False, True, [0, 0, 0, 0]]]]],\n [['regression: scenario 5',\n   [2,\n    [['load', 7],\n     ['load', 5],\n     ['unload', 26],\n     ['load', 47],\n     ['load', 60],\n     ['unload', 10],\n     ['load', 8],\n     ['load', 74],\n     ['unload', 23],\n     ['load', 39],\n     ['load', 17]]],\n   [[1, 0, False, False, [7, 0]],\n    [2, 0, True, False, [7, 5]],\n    [1, 7, False, False, [5, 0]],\n    [2, 7, True, False, [5, 47]],\n    [2, 7, True, False, [5, 47]],\n    [1, 5, False, False, [47, 0]],\n    [2, 5, True, False, [47, 8]],\n    [2, 5, True, False, [47, 8]],\n    [1, 47, False, False, [8, 0]],\n    [2, 47, True, False, [8, 39]],\n    [2, 47, True, False, [8, 39]]]],\n  ['regression: scenario 1',\n   [3, [['load', 95], ['unload', 26], ['load', 88], ['unload', 93], ['load', 84], ['load', 5]]],\n   [[1, 0, False, False, [95, 0, 0]],\n    [0, 95, False, True, [0, 0, 0]],\n    [1, 95, False, False, [88, 0, 0]],\n    [0, 88, False, True, [0, 0, 0]],\n    [1, 88, False, False, [84, 0, 0]],\n    [2, 88, False, False, [84, 5, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 2',\n   [4,\n    [['load', 49],\n     ['load', 58],\n     ['unload', 66],\n     ['load', 96],\n     ['load', 53],\n     ['load', 59],\n     ['load', 76],\n     ['unload', 9],\n     ['load', 14],\n     ['load', 69],\n     ['load', 39],\n     ['unload', 58]]],\n   [[1, 0, False, False, [49, 0, 0, 0]],\n    [2, 0, False, False, [49, 58, 0, 0]],\n    [1, 49, False, False, [58, 0, 0, 0]],\n    [2, 49, False, False, [58, 96, 0, 0]],\n    [3, 49, False, False, [58, 96, 53, 0]],\n    [4, 49, True, False, [58, 96, 53, 59]],\n    [4, 49, True, False, [58, 96, 53, 59]],\n    [3, 58, False, False, [96, 53, 59, 0]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [3, 96, False, False, [53, 59, 14, 0]]]],\n  ['regression: scenario 3',\n   [3, [['unload', 7], ['unload', 28], ['load', 29], ['unload', 33], ['unload', 61], ['unload', 47]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [29, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), 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":"cf54b1cc7cf379044a0e1238aeaf6a7fb883b42d83a477e1ea2e8b8426420ec8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(length, ops):\n    fifo = [0] * length\n    pos = 0\n    dest = 0\n    out = []\n    for op, value in ops:\n        if op == 'load':\n            if pos < length:\n                fifo[pos] = value\n                pos += 1\n        elif op == 'unload':\n            if pos > 0:\n                dest = fifo[0]\n                fifo = fifo[1:] + [fifo[-1]]\n                pos -= 1\n        out.append([pos, dest, pos >= length, pos == 0, list(fifo)])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 1',\n   [2,\n    [['load', 13],\n     ['unload', 80],\n     ['load', 3],\n     ['unload', 53],\n     ['load', 38],\n     ['load', 22],\n     ['load', 1],\n     ['load', 4],\n     ['unload', 96],\n     ['load', 42]]],\n   [[1, 0, False, False, [13, 0]],\n    [0, 13, False, True, [0, 0]],\n    [1, 13, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [38, 0]],\n    [2, 3, True, False, [38, 22]],\n    [2, 3, True, False, [38, 22]],\n    [2, 3, True, False, [38, 22]],\n    [1, 38, False, False, [22, 0]],\n    [2, 38, True, False, [22, 42]]]],\n  ['regression: scenario 2',\n   [2,\n    [['load', 44],\n     ['load', 96],\n     ['load', 30],\n     ['load', 50],\n     ['unload', 74],\n     ['load', 69],\n     ['load', 32],\n     ['load', 2],\n     ['load', 17],\n     ['load', 33]]],\n   [[1, 0, False, False, [44, 0]],\n    [2, 0, True, False, [44, 96]],\n    [2, 0, True, False, [44, 96]],\n    [2, 0, True, False, [44, 96]],\n    [1, 44, False, False, [96, 0]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]]]],\n  ['regression: scenario 3',\n   [2,\n    [['load', 41],\n     ['load', 30],\n     ['load', 37],\n     ['unload', 92],\n     ['load', 8],\n     ['load', 87],\n     ['unload', 97],\n     ['load', 95],\n     ['load', 23]]],\n   [[1, 0, False, False, [41, 0]],\n    [2, 0, True, False, [41, 30]],\n    [2, 0, True, False, [41, 30]],\n    [1, 41, False, False, [30, 0]],\n    [2, 41, True, False, [30, 8]],\n    [2, 41, True, False, [30, 8]],\n    [1, 30, False, False, [8, 0]],\n    [2, 30, True, False, [8, 95]],\n    [2, 30, True, False, [8, 95]]]],\n  ['regression: scenario 4',\n   [4,\n    [['load', 81],\n     ['load', 71],\n     ['unload', 98],\n     ['load', 25],\n     ['unload', 33],\n     ['load', 59],\n     ['load', 39],\n     ['unload', 31],\n     ['load', 15]]],\n   [[1, 0, False, False, [81, 0, 0, 0]],\n    [2, 0, False, False, [81, 71, 0, 0]],\n    [1, 81, False, False, [71, 0, 0, 0]],\n    [2, 81, False, False, [71, 25, 0, 0]],\n    [1, 71, False, False, [25, 0, 0, 0]],\n    [2, 71, False, False, [25, 59, 0, 0]],\n    [3, 71, False, False, [25, 59, 39, 0]],\n    [2, 25, False, False, [59, 39, 0, 0]],\n    [3, 25, False, False, [59, 39, 15, 0]]]]],\n [['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 1',\n   [1,\n    [['unload', 80],\n     ['load', 18],\n     ['unload', 20],\n     ['load', 68],\n     ['load', 99],\n     ['unload', 56],\n     ['unload', 34],\n     ['unload', 21],\n     ['load', 94],\n     ['unload', 43]]],\n   [[0, 0, False, True, [0]],\n    [1, 0, True, False, [18]],\n    [0, 18, False, True, [0]],\n    [1, 18, True, False, [68]],\n    [1, 18, True, False, [68]],\n    [0, 68, False, True, [0]],\n    [0, 68, False, True, [0]],\n    [0, 68, False, True, [0]],\n    [1, 68, True, False, [94]],\n    [0, 94, False, True, [0]]]],\n  ['regression: scenario 2',\n   [3,\n    [['load', 80],\n     ['load', 62],\n     ['unload', 32],\n     ['load', 91],\n     ['unload', 77],\n     ['unload', 52],\n     ['unload', 56],\n     ['unload', 24],\n     ['load', 57]]],\n   [[1, 0, False, False, [80, 0, 0]],\n    [2, 0, False, False, [80, 62, 0]],\n    [1, 80, False, False, [62, 0, 0]],\n    [2, 80, False, False, [62, 91, 0]],\n    [1, 62, False, False, [91, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [1, 91, False, False, [57, 0, 0]]]],\n  ['control: scenario 3',\n   [3, [['unload', 99], ['load', 16], ['load', 80], ['load', 77], ['load', 65], ['load', 25]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [16, 0, 0]],\n    [2, 0, False, False, [16, 80, 0]],\n    [3, 0, True, False, [16, 80, 77]],\n    [3, 0, True, False, [16, 80, 77]],\n    [3, 0, True, False, [16, 80, 77]]]],\n  ['regression: scenario 4',\n   [3,\n    [['load', 83],\n     ['load', 77],\n     ['load', 45],\n     ['unload', 87],\n     ['unload', 91],\n     ['load', 8],\n     ['load', 82],\n     ['load', 12],\n     ['load', 10],\n     ['load', 84]]],\n   [[1, 0, False, False, [83, 0, 0]],\n    [2, 0, False, False, [83, 77, 0]],\n    [3, 0, True, False, [83, 77, 45]],\n    [2, 83, False, False, [77, 45, 0]],\n    [1, 77, False, False, [45, 0, 0]],\n    [2, 77, False, False, [45, 8, 0]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]]]]],\n [['regression: scenario 1',\n   [2,\n    [['unload', 71],\n     ['load', 30],\n     ['load', 44],\n     ['load', 14],\n     ['unload', 84],\n     ['load', 20],\n     ['unload', 82],\n     ['load', 34],\n     ['unload', 85],\n     ['unload', 41],\n     ['load', 90],\n     ['unload', 95]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [30, 0]],\n    [2, 0, True, False, [30, 44]],\n    [2, 0, True, False, [30, 44]],\n    [1, 30, False, False, [44, 0]],\n    [2, 30, True, False, [44, 20]],\n    [1, 44, False, False, [20, 0]],\n    [2, 44, True, False, [20, 34]],\n    [1, 20, False, False, [34, 0]],\n    [0, 34, False, True, [0, 0]],\n    [1, 34, False, False, [90, 0]],\n    [0, 90, False, True, [0, 0]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['control: scenario 2',\n   [2,\n    [['unload', 27],\n     ['load', 29],\n     ['load', 99],\n     ['load', 77],\n     ['load', 8],\n     ['load', 1],\n     ['load', 67],\n     ['load', 51],\n     ['load', 54]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [29, 0]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]]]],\n  ['regression: scenario 3',\n   [3,\n    [['unload', 56],\n     ['unload', 13],\n     ['load', 74],\n     ['unload', 36],\n     ['unload', 80],\n     ['load', 78],\n     ['unload', 27],\n     ['unload', 90],\n     ['load', 46]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [74, 0, 0]],\n    [0, 74, False, True, [0, 0, 0]],\n    [0, 74, False, True, [0, 0, 0]],\n    [1, 74, False, False, [78, 0, 0]],\n    [0, 78, False, True, [0, 0, 0]],\n    [0, 78, False, True, [0, 0, 0]],\n    [1, 78, False, False, [46, 0, 0]]]],\n  ['regression: scenario 4',\n   [4, [['unload', 9], ['load', 20], ['load', 22], ['unload', 50], ['unload', 69], ['load', 13]]],\n   [[0, 0, False, True, [0, 0, 0, 0]],\n    [1, 0, False, False, [20, 0, 0, 0]],\n    [2, 0, False, False, [20, 22, 0, 0]],\n    [1, 20, False, False, [22, 0, 0, 0]],\n    [0, 22, False, True, [0, 0, 0, 0]],\n    [1, 22, False, False, [13, 0, 0, 0]]]]],\n [['regression: scenario 5',\n   [4,\n    [['load', 53],\n     ['load', 79],\n     ['load', 69],\n     ['unload', 57],\n     ['load', 2],\n     ['load', 76],\n     ['unload', 73],\n     ['load', 18],\n     ['unload', 13],\n     ['unload', 1],\n     ['unload', 27]]],\n   [[1, 0, False, False, [53, 0, 0, 0]],\n    [2, 0, False, False, [53, 79, 0, 0]],\n    [3, 0, False, False, [53, 79, 69, 0]],\n    [2, 53, False, False, [79, 69, 0, 0]],\n    [3, 53, False, False, [79, 69, 2, 0]],\n    [4, 53, True, False, [79, 69, 2, 76]],\n    [3, 79, False, False, [69, 2, 76, 0]],\n    [4, 79, True, False, [69, 2, 76, 18]],\n    [3, 69, False, False, [2, 76, 18, 0]],\n    [2, 2, False, False, [76, 18, 0, 0]],\n    [1, 76, False, False, [18, 0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: scenario 1',\n   [1,\n    [['load', 95],\n     ['load', 80],\n     ['load', 83],\n     ['load', 73],\n     ['load', 60],\n     ['unload', 25],\n     ['unload', 21],\n     ['load', 30]]],\n   [[1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [0, 95, False, True, [0]],\n    [0, 95, False, True, [0]],\n    [1, 95, True, False, [30]]]],\n  ['regression: scenario 2',\n   [3,\n    [['unload', 71],\n     ['unload', 34],\n     ['load', 70],\n     ['unload', 18],\n     ['unload', 8],\n     ['unload', 11],\n     ['load', 1],\n     ['load', 16],\n     ['unload', 76],\n     ['load', 11]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [70, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [1, 70, False, False, [1, 0, 0]],\n    [2, 70, False, False, [1, 16, 0]],\n    [1, 1, False, False, [16, 0, 0]],\n    [2, 1, False, False, [16, 11, 0]]]],\n  ['regression: scenario 3',\n   [4,\n    [['unload', 22], ['load', 4], ['unload', 2], ['load', 69], ['load', 19], ['unload', 5], ['unload', 47]]],\n   [[0, 0, False, True, [0, 0, 0, 0]],\n    [1, 0, False, False, [4, 0, 0, 0]],\n    [0, 4, False, True, [0, 0, 0, 0]],\n    [1, 4, False, False, [69, 0, 0, 0]],\n    [2, 4, False, False, [69, 19, 0, 0]],\n    [1, 69, False, False, [19, 0, 0, 0]],\n    [0, 19, False, True, [0, 0, 0, 0]]]]],\n [['regression: scenario 5',\n   [2,\n    [['load', 7],\n     ['load', 5],\n     ['unload', 26],\n     ['load', 47],\n     ['load', 60],\n     ['unload', 10],\n     ['load', 8],\n     ['load', 74],\n     ['unload', 23],\n     ['load', 39],\n     ['load', 17]]],\n   [[1, 0, False, False, [7, 0]],\n    [2, 0, True, False, [7, 5]],\n    [1, 7, False, False, [5, 0]],\n    [2, 7, True, False, [5, 47]],\n    [2, 7, True, False, [5, 47]],\n    [1, 5, False, False, [47, 0]],\n    [2, 5, True, False, [47, 8]],\n    [2, 5, True, False, [47, 8]],\n    [1, 47, False, False, [8, 0]],\n    [2, 47, True, False, [8, 39]],\n    [2, 47, True, False, [8, 39]]]],\n  ['regression: scenario 1',\n   [3, [['load', 95], ['unload', 26], ['load', 88], ['unload', 93], ['load', 84], ['load', 5]]],\n   [[1, 0, False, False, [95, 0, 0]],\n    [0, 95, False, True, [0, 0, 0]],\n    [1, 95, False, False, [88, 0, 0]],\n    [0, 88, False, True, [0, 0, 0]],\n    [1, 88, False, False, [84, 0, 0]],\n    [2, 88, False, False, [84, 5, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 2',\n   [4,\n    [['load', 49],\n     ['load', 58],\n     ['unload', 66],\n     ['load', 96],\n     ['load', 53],\n     ['load', 59],\n     ['load', 76],\n     ['unload', 9],\n     ['load', 14],\n     ['load', 69],\n     ['load', 39],\n     ['unload', 58]]],\n   [[1, 0, False, False, [49, 0, 0, 0]],\n    [2, 0, False, False, [49, 58, 0, 0]],\n    [1, 49, False, False, [58, 0, 0, 0]],\n    [2, 49, False, False, [58, 96, 0, 0]],\n    [3, 49, False, False, [58, 96, 53, 0]],\n    [4, 49, True, False, [58, 96, 53, 59]],\n    [4, 49, True, False, [58, 96, 53, 59]],\n    [3, 58, False, False, [96, 53, 59, 0]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [3, 96, False, False, [53, 59, 14, 0]]]],\n  ['regression: scenario 3',\n   [3, [['unload', 7], ['unload', 28], ['load', 29], ['unload', 33], ['unload', 61], ['unload', 47]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [29, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), 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":"a401ec541ad91ea357b7f57fa9cf4ce2340d6b79072ba0ad006e9e38e8b0c611","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(length, ops):\n    fifo = [0] * length\n    pos = 0\n    dest = 0\n    out = []\n    for op, value in ops:\n        if op == 'load':\n            if pos < length:\n                fifo[pos] = value\n                pos += 1\n        elif op == 'unload':\n            if pos > 0:\n                dest = fifo[0]\n                fifo = fifo[1:] + [0]\n                pos -= 1\n        out.append([pos, dest, pos >= length, pos == 0, list(fifo)])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 1',\n   [2,\n    [['load', 13],\n     ['unload', 80],\n     ['load', 3],\n     ['unload', 53],\n     ['load', 38],\n     ['load', 22],\n     ['load', 1],\n     ['load', 4],\n     ['unload', 96],\n     ['load', 42]]],\n   [[1, 0, False, False, [13, 0]],\n    [0, 13, False, True, [0, 0]],\n    [1, 13, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [38, 0]],\n    [2, 3, True, False, [38, 22]],\n    [2, 3, True, False, [38, 22]],\n    [2, 3, True, False, [38, 22]],\n    [1, 38, False, False, [22, 0]],\n    [2, 38, True, False, [22, 42]]]],\n  ['regression: scenario 2',\n   [2,\n    [['load', 44],\n     ['load', 96],\n     ['load', 30],\n     ['load', 50],\n     ['unload', 74],\n     ['load', 69],\n     ['load', 32],\n     ['load', 2],\n     ['load', 17],\n     ['load', 33]]],\n   [[1, 0, False, False, [44, 0]],\n    [2, 0, True, False, [44, 96]],\n    [2, 0, True, False, [44, 96]],\n    [2, 0, True, False, [44, 96]],\n    [1, 44, False, False, [96, 0]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]],\n    [2, 44, True, False, [96, 69]]]],\n  ['regression: scenario 3',\n   [2,\n    [['load', 41],\n     ['load', 30],\n     ['load', 37],\n     ['unload', 92],\n     ['load', 8],\n     ['load', 87],\n     ['unload', 97],\n     ['load', 95],\n     ['load', 23]]],\n   [[1, 0, False, False, [41, 0]],\n    [2, 0, True, False, [41, 30]],\n    [2, 0, True, False, [41, 30]],\n    [1, 41, False, False, [30, 0]],\n    [2, 41, True, False, [30, 8]],\n    [2, 41, True, False, [30, 8]],\n    [1, 30, False, False, [8, 0]],\n    [2, 30, True, False, [8, 95]],\n    [2, 30, True, False, [8, 95]]]],\n  ['regression: scenario 4',\n   [4,\n    [['load', 81],\n     ['load', 71],\n     ['unload', 98],\n     ['load', 25],\n     ['unload', 33],\n     ['load', 59],\n     ['load', 39],\n     ['unload', 31],\n     ['load', 15]]],\n   [[1, 0, False, False, [81, 0, 0, 0]],\n    [2, 0, False, False, [81, 71, 0, 0]],\n    [1, 81, False, False, [71, 0, 0, 0]],\n    [2, 81, False, False, [71, 25, 0, 0]],\n    [1, 71, False, False, [25, 0, 0, 0]],\n    [2, 71, False, False, [25, 59, 0, 0]],\n    [3, 71, False, False, [25, 59, 39, 0]],\n    [2, 25, False, False, [59, 39, 0, 0]],\n    [3, 25, False, False, [59, 39, 15, 0]]]]],\n [['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 1',\n   [1,\n    [['unload', 80],\n     ['load', 18],\n     ['unload', 20],\n     ['load', 68],\n     ['load', 99],\n     ['unload', 56],\n     ['unload', 34],\n     ['unload', 21],\n     ['load', 94],\n     ['unload', 43]]],\n   [[0, 0, False, True, [0]],\n    [1, 0, True, False, [18]],\n    [0, 18, False, True, [0]],\n    [1, 18, True, False, [68]],\n    [1, 18, True, False, [68]],\n    [0, 68, False, True, [0]],\n    [0, 68, False, True, [0]],\n    [0, 68, False, True, [0]],\n    [1, 68, True, False, [94]],\n    [0, 94, False, True, [0]]]],\n  ['regression: scenario 2',\n   [3,\n    [['load', 80],\n     ['load', 62],\n     ['unload', 32],\n     ['load', 91],\n     ['unload', 77],\n     ['unload', 52],\n     ['unload', 56],\n     ['unload', 24],\n     ['load', 57]]],\n   [[1, 0, False, False, [80, 0, 0]],\n    [2, 0, False, False, [80, 62, 0]],\n    [1, 80, False, False, [62, 0, 0]],\n    [2, 80, False, False, [62, 91, 0]],\n    [1, 62, False, False, [91, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [0, 91, False, True, [0, 0, 0]],\n    [1, 91, False, False, [57, 0, 0]]]],\n  ['control: scenario 3',\n   [3, [['unload', 99], ['load', 16], ['load', 80], ['load', 77], ['load', 65], ['load', 25]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [16, 0, 0]],\n    [2, 0, False, False, [16, 80, 0]],\n    [3, 0, True, False, [16, 80, 77]],\n    [3, 0, True, False, [16, 80, 77]],\n    [3, 0, True, False, [16, 80, 77]]]],\n  ['regression: scenario 4',\n   [3,\n    [['load', 83],\n     ['load', 77],\n     ['load', 45],\n     ['unload', 87],\n     ['unload', 91],\n     ['load', 8],\n     ['load', 82],\n     ['load', 12],\n     ['load', 10],\n     ['load', 84]]],\n   [[1, 0, False, False, [83, 0, 0]],\n    [2, 0, False, False, [83, 77, 0]],\n    [3, 0, True, False, [83, 77, 45]],\n    [2, 83, False, False, [77, 45, 0]],\n    [1, 77, False, False, [45, 0, 0]],\n    [2, 77, False, False, [45, 8, 0]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]],\n    [3, 77, True, False, [45, 8, 82]]]]],\n [['regression: scenario 1',\n   [2,\n    [['unload', 71],\n     ['load', 30],\n     ['load', 44],\n     ['load', 14],\n     ['unload', 84],\n     ['load', 20],\n     ['unload', 82],\n     ['load', 34],\n     ['unload', 85],\n     ['unload', 41],\n     ['load', 90],\n     ['unload', 95]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [30, 0]],\n    [2, 0, True, False, [30, 44]],\n    [2, 0, True, False, [30, 44]],\n    [1, 30, False, False, [44, 0]],\n    [2, 30, True, False, [44, 20]],\n    [1, 44, False, False, [20, 0]],\n    [2, 44, True, False, [20, 34]],\n    [1, 20, False, False, [34, 0]],\n    [0, 34, False, True, [0, 0]],\n    [1, 34, False, False, [90, 0]],\n    [0, 90, False, True, [0, 0]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['control: scenario 2',\n   [2,\n    [['unload', 27],\n     ['load', 29],\n     ['load', 99],\n     ['load', 77],\n     ['load', 8],\n     ['load', 1],\n     ['load', 67],\n     ['load', 51],\n     ['load', 54]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [29, 0]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]],\n    [2, 0, True, False, [29, 99]]]],\n  ['regression: scenario 3',\n   [3,\n    [['unload', 56],\n     ['unload', 13],\n     ['load', 74],\n     ['unload', 36],\n     ['unload', 80],\n     ['load', 78],\n     ['unload', 27],\n     ['unload', 90],\n     ['load', 46]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [74, 0, 0]],\n    [0, 74, False, True, [0, 0, 0]],\n    [0, 74, False, True, [0, 0, 0]],\n    [1, 74, False, False, [78, 0, 0]],\n    [0, 78, False, True, [0, 0, 0]],\n    [0, 78, False, True, [0, 0, 0]],\n    [1, 78, False, False, [46, 0, 0]]]],\n  ['regression: scenario 4',\n   [4, [['unload', 9], ['load', 20], ['load', 22], ['unload', 50], ['unload', 69], ['load', 13]]],\n   [[0, 0, False, True, [0, 0, 0, 0]],\n    [1, 0, False, False, [20, 0, 0, 0]],\n    [2, 0, False, False, [20, 22, 0, 0]],\n    [1, 20, False, False, [22, 0, 0, 0]],\n    [0, 22, False, True, [0, 0, 0, 0]],\n    [1, 22, False, False, [13, 0, 0, 0]]]]],\n [['regression: scenario 5',\n   [4,\n    [['load', 53],\n     ['load', 79],\n     ['load', 69],\n     ['unload', 57],\n     ['load', 2],\n     ['load', 76],\n     ['unload', 73],\n     ['load', 18],\n     ['unload', 13],\n     ['unload', 1],\n     ['unload', 27]]],\n   [[1, 0, False, False, [53, 0, 0, 0]],\n    [2, 0, False, False, [53, 79, 0, 0]],\n    [3, 0, False, False, [53, 79, 69, 0]],\n    [2, 53, False, False, [79, 69, 0, 0]],\n    [3, 53, False, False, [79, 69, 2, 0]],\n    [4, 53, True, False, [79, 69, 2, 76]],\n    [3, 79, False, False, [69, 2, 76, 0]],\n    [4, 79, True, False, [69, 2, 76, 18]],\n    [3, 69, False, False, [2, 76, 18, 0]],\n    [2, 2, False, False, [76, 18, 0, 0]],\n    [1, 76, False, False, [18, 0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: scenario 1',\n   [1,\n    [['load', 95],\n     ['load', 80],\n     ['load', 83],\n     ['load', 73],\n     ['load', 60],\n     ['unload', 25],\n     ['unload', 21],\n     ['load', 30]]],\n   [[1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [1, 0, True, False, [95]],\n    [0, 95, False, True, [0]],\n    [0, 95, False, True, [0]],\n    [1, 95, True, False, [30]]]],\n  ['regression: scenario 2',\n   [3,\n    [['unload', 71],\n     ['unload', 34],\n     ['load', 70],\n     ['unload', 18],\n     ['unload', 8],\n     ['unload', 11],\n     ['load', 1],\n     ['load', 16],\n     ['unload', 76],\n     ['load', 11]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [70, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [0, 70, False, True, [0, 0, 0]],\n    [1, 70, False, False, [1, 0, 0]],\n    [2, 70, False, False, [1, 16, 0]],\n    [1, 1, False, False, [16, 0, 0]],\n    [2, 1, False, False, [16, 11, 0]]]],\n  ['regression: scenario 3',\n   [4,\n    [['unload', 22], ['load', 4], ['unload', 2], ['load', 69], ['load', 19], ['unload', 5], ['unload', 47]]],\n   [[0, 0, False, True, [0, 0, 0, 0]],\n    [1, 0, False, False, [4, 0, 0, 0]],\n    [0, 4, False, True, [0, 0, 0, 0]],\n    [1, 4, False, False, [69, 0, 0, 0]],\n    [2, 4, False, False, [69, 19, 0, 0]],\n    [1, 69, False, False, [19, 0, 0, 0]],\n    [0, 19, False, True, [0, 0, 0, 0]]]]],\n [['regression: scenario 5',\n   [2,\n    [['load', 7],\n     ['load', 5],\n     ['unload', 26],\n     ['load', 47],\n     ['load', 60],\n     ['unload', 10],\n     ['load', 8],\n     ['load', 74],\n     ['unload', 23],\n     ['load', 39],\n     ['load', 17]]],\n   [[1, 0, False, False, [7, 0]],\n    [2, 0, True, False, [7, 5]],\n    [1, 7, False, False, [5, 0]],\n    [2, 7, True, False, [5, 47]],\n    [2, 7, True, False, [5, 47]],\n    [1, 5, False, False, [47, 0]],\n    [2, 5, True, False, [47, 8]],\n    [2, 5, True, False, [47, 8]],\n    [1, 47, False, False, [8, 0]],\n    [2, 47, True, False, [8, 39]],\n    [2, 47, True, False, [8, 39]]]],\n  ['regression: scenario 1',\n   [3, [['load', 95], ['unload', 26], ['load', 88], ['unload', 93], ['load', 84], ['load', 5]]],\n   [[1, 0, False, False, [95, 0, 0]],\n    [0, 95, False, True, [0, 0, 0]],\n    [1, 95, False, False, [88, 0, 0]],\n    [0, 88, False, True, [0, 0, 0]],\n    [1, 88, False, False, [84, 0, 0]],\n    [2, 88, False, False, [84, 5, 0]]]],\n  ['regression: fill overflow drain',\n   [2, [['unload', 0], ['load', 5], ['load', 7], ['load', 9], ['unload', 0], ['unload', 0], ['unload', 0]]],\n   [[0, 0, False, True, [0, 0]],\n    [1, 0, False, False, [5, 0]],\n    [2, 0, True, False, [5, 7]],\n    [2, 0, True, False, [5, 7]],\n    [1, 5, False, False, [7, 0]],\n    [0, 7, False, True, [0, 0]],\n    [0, 7, False, True, [0, 0]]]],\n  ['regression: single slot',\n   [1, [['load', 4], ['load', 6], ['unload', 0], ['load', 8]]],\n   [[1, 0, True, False, [4]], [1, 0, True, False, [4]], [0, 4, False, True, [0]], [1, 4, True, False, [8]]]],\n  ['regression: interleaved',\n   [3, [['load', 1], ['load', 2], ['unload', 0], ['load', 3], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [1, 0, 0]],\n    [2, 0, False, False, [1, 2, 0]],\n    [1, 1, False, False, [2, 0, 0]],\n    [2, 1, False, False, [2, 3, 0]],\n    [1, 2, False, False, [3, 0, 0]],\n    [0, 3, False, True, [0, 0, 0]]]],\n  ['regression: zero value part',\n   [2, [['load', 3], ['unload', 0], ['load', 0], ['unload', 0], ['unload', 0]]],\n   [[1, 0, False, False, [3, 0]],\n    [0, 3, False, True, [0, 0]],\n    [1, 3, False, False, [0, 0]],\n    [0, 0, False, True, [0, 0]],\n    [0, 0, False, True, [0, 0]]]],\n  ['regression: scenario 2',\n   [4,\n    [['load', 49],\n     ['load', 58],\n     ['unload', 66],\n     ['load', 96],\n     ['load', 53],\n     ['load', 59],\n     ['load', 76],\n     ['unload', 9],\n     ['load', 14],\n     ['load', 69],\n     ['load', 39],\n     ['unload', 58]]],\n   [[1, 0, False, False, [49, 0, 0, 0]],\n    [2, 0, False, False, [49, 58, 0, 0]],\n    [1, 49, False, False, [58, 0, 0, 0]],\n    [2, 49, False, False, [58, 96, 0, 0]],\n    [3, 49, False, False, [58, 96, 53, 0]],\n    [4, 49, True, False, [58, 96, 53, 59]],\n    [4, 49, True, False, [58, 96, 53, 59]],\n    [3, 58, False, False, [96, 53, 59, 0]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [4, 58, True, False, [96, 53, 59, 14]],\n    [3, 96, False, False, [53, 59, 14, 0]]]],\n  ['regression: scenario 3',\n   [3, [['unload', 7], ['unload', 28], ['load', 29], ['unload', 33], ['unload', 61], ['unload', 47]]],\n   [[0, 0, False, True, [0, 0, 0]],\n    [0, 0, False, True, [0, 0, 0]],\n    [1, 0, False, False, [29, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]],\n    [0, 29, False, True, [0, 0, 0]]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), 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":"A deterministic bounded teaching model of one PLC instruction or rung pattern evaluated scan by scan. The stated contract is a stipulated toy convention, not a claim of conformance to any vendor controller or IEC 61131-3 runtime. 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":"w2-plc-ladder-logic-scan-cycles-ffl-ffu-fifo-vacated-slot","generated_at":"2026-09-29T14:51:43.165044+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Ladder programs are executed as repeated scans; each defect here changes what a rung, timer, counter or data-table instruction reports on a particular scan, which is how commissioning and field faults are actually observed.","repair":"Zero the vacated last element after the shift.","root_cause":"The shifted file refills its last slot with the old last element.","sha256":"6a87b2323d05615bb1dc4dbbb1208cf2d7554b5ed25072af74389b02f017b640","title":"FIFO shift duplicates the last element into the vacated slot · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.687,"exit_code":1,"observations":[{"actual":[[0,0,false,true,[0,0]],[1,0,false,false,[5,0]],[2,0,true,false,[5,7]],[2,0,true,false,[5,7]],[1,5,false,false,[7,5]],[0,7,false,true,[5,7]],[0,7,false,true,[5,7]]],"check":"regression: fill overflow drain","expected":[[0,0,false,true,[0,0]],[1,0,false,false,[5,0]],[2,0,true,false,[5,7]],[2,0,true,false,[5,7]],[1,5,false,false,[7,0]],[0,7,false,true,[0,0]],[0,7,false,true,[0,0]]],"passed":false},{"actual":[[1,0,true,false,[4]],[1,0,true,false,[4]],[0,4,false,true,[4]],[1,4,true,false,[8]]],"check":"regression: single slot","expected":[[1,0,true,false,[4]],[1,0,true,false,[4]],[0,4,false,true,[0]],[1,4,true,false,[8]]],"passed":false},{"actual":[[1,0,false,false,[1,0,0]],[2,0,false,false,[1,2,0]],[1,1,false,false,[2,0,1]],[2,1,false,false,[2,3,1]],[1,2,false,false,[3,1,2]],[0,3,false,true,[1,2,3]]],"check":"regression: interleaved","expected":[[1,0,false,false,[1,0,0]],[2,0,false,false,[1,2,0]],[1,1,false,false,[2,0,0]],[2,1,false,false,[2,3,0]],[1,2,false,false,[3,0,0]],[0,3,false,true,[0,0,0]]],"passed":false},{"actual":[[1,0,false,false,[3,0]],[0,3,false,true,[0,3]],[1,3,false,false,[0,3]],[0,0,false,true,[3,0]],[0,0,false,true,[3,0]]],"check":"regression: zero value part","expected":[[1,0,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[0,0]],[0,0,false,true,[0,0]],[0,0,false,true,[0,0]]],"passed":false},{"actual":[[1,0,false,false,[13,0]],[0,13,false,true,[0,13]],[1,13,false,false,[3,13]],[0,3,false,true,[13,3]],[1,3,false,false,[38,3]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[1,38,false,false,[22,38]],[2,38,true,false,[22,42]]],"check":"regression: scenario 1","expected":[[1,0,false,false,[13,0]],[0,13,false,true,[0,0]],[1,13,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[38,0]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[1,38,false,false,[22,0]],[2,38,true,false,[22,42]]],"passed":false},{"actual":[[1,0,false,false,[44,0]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[1,44,false,false,[96,44]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]]],"check":"regression: scenario 2","expected":[[1,0,false,false,[44,0]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[1,44,false,false,[96,0]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]]],"passed":false},{"actual":[[1,0,false,false,[41,0]],[2,0,true,false,[41,30]],[2,0,true,false,[41,30]],[1,41,false,false,[30,41]],[2,41,true,false,[30,8]],[2,41,true,false,[30,8]],[1,30,false,false,[8,30]],[2,30,true,false,[8,95]],[2,30,true,false,[8,95]]],"check":"regression: scenario 3","expected":[[1,0,false,false,[41,0]],[2,0,true,false,[41,30]],[2,0,true,false,[41,30]],[1,41,false,false,[30,0]],[2,41,true,false,[30,8]],[2,41,true,false,[30,8]],[1,30,false,false,[8,0]],[2,30,true,false,[8,95]],[2,30,true,false,[8,95]]],"passed":false},{"actual":[[1,0,false,false,[81,0,0,0]],[2,0,false,false,[81,71,0,0]],[1,81,false,false,[71,0,0,81]],[2,81,false,false,[71,25,0,81]],[1,71,false,false,[25,0,81,71]],[2,71,false,false,[25,59,81,71]],[3,71,false,false,[25,59,39,71]],[2,25,false,false,[59,39,71,25]],[3,25,false,false,[59,39,15,25]]],"check":"regression: scenario 4","expected":[[1,0,false,false,[81,0,0,0]],[2,0,false,false,[81,71,0,0]],[1,81,false,false,[71,0,0,0]],[2,81,false,false,[71,25,0,0]],[1,71,false,false,[25,0,0,0]],[2,71,false,false,[25,59,0,0]],[3,71,false,false,[25,59,39,0]],[2,25,false,false,[59,39,0,0]],[3,25,false,false,[59,39,15,0]]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: fill overflow drain\", \"actual\": [[0, 0, false, true, [0, 0]], [1, 0, false, false, [5, 0]], [2, 0, true, false, [5, 7]], [2, 0, true, false, [5, 7]], [1, 5, false, false, [7, 5]], [0, 7, false, true, [5, 7]], [0, 7, false, true, [5, 7]]], \"expected\": [[0, 0, false, true, [0, 0]], [1, 0, false, false, [5, 0]], [2, 0, true, false, [5, 7]], [2, 0, true, false, [5, 7]], [1, 5, false, false, [7, 0]], [0, 7, false, true, [0, 0]], [0, 7, false, true, [0, 0]]], \"passed\": false}, {\"check\": \"regression: single slot\", \"actual\": [[1, 0, true, false, [4]], [1, 0, true, false, [4]], [0, 4, false, true, [4]], [1, 4, true, false, [8]]], \"expected\": [[1, 0, true, false, [4]], [1, 0, true, false, [4]], [0, 4, false, true, [0]], [1, 4, true, false, [8]]], \"passed\": false}, {\"check\": \"regression: interleaved\", \"actual\": [[1, 0, false, false, [1, 0, 0]], [2, 0, false, false, [1, 2, 0]], [1, 1, false, false, [2, 0, 1]], [2, 1, false, false, [2, 3, 1]], [1, 2, false, false, [3, 1, 2]], [0, 3, false, true, [1, 2, 3]]], \"expected\": [[1, 0, false, false, [1, 0, 0]], [2, 0, false, false, [1, 2, 0]], [1, 1, false, false, [2, 0, 0]], [2, 1, false, false, [2, 3, 0]], [1, 2, false, false, [3, 0, 0]], [0, 3, false, true, [0, 0, 0]]], \"passed\": false}, {\"check\": \"regression: zero value part\", \"actual\": [[1, 0, false, false, [3, 0]], [0, 3, false, true, [0, 3]], [1, 3, false, false, [0, 3]], [0, 0, false, true, [3, 0]], [0, 0, false, true, [3, 0]]], \"expected\": [[1, 0, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [0, 0]], [0, 0, false, true, [0, 0]], [0, 0, false, true, [0, 0]]], \"passed\": false}, {\"check\": \"regression: scenario 1\", \"actual\": [[1, 0, false, false, [13, 0]], [0, 13, false, true, [0, 13]], [1, 13, false, false, [3, 13]], [0, 3, false, true, [13, 3]], [1, 3, false, false, [38, 3]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [1, 38, false, false, [22, 38]], [2, 38, true, false, [22, 42]]], \"expected\": [[1, 0, false, false, [13, 0]], [0, 13, false, true, [0, 0]], [1, 13, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [38, 0]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [1, 38, false, false, [22, 0]], [2, 38, true, false, [22, 42]]], \"passed\": false}, {\"check\": \"regression: scenario 2\", \"actual\": [[1, 0, false, false, [44, 0]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [1, 44, false, false, [96, 44]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]]], \"expected\": [[1, 0, false, false, [44, 0]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [1, 44, false, false, [96, 0]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]]], \"passed\": false}, {\"check\": \"regression: scenario 3\", \"actual\": [[1, 0, false, false, [41, 0]], [2, 0, true, false, [41, 30]], [2, 0, true, false, [41, 30]], [1, 41, false, false, [30, 41]], [2, 41, true, false, [30, 8]], [2, 41, true, false, [30, 8]], [1, 30, false, false, [8, 30]], [2, 30, true, false, [8, 95]], [2, 30, true, false, [8, 95]]], \"expected\": [[1, 0, false, false, [41, 0]], [2, 0, true, false, [41, 30]], [2, 0, true, false, [41, 30]], [1, 41, false, false, [30, 0]], [2, 41, true, false, [30, 8]], [2, 41, true, false, [30, 8]], [1, 30, false, false, [8, 0]], [2, 30, true, false, [8, 95]], [2, 30, true, false, [8, 95]]], \"passed\": false}, {\"check\": \"regression: scenario 4\", \"actual\": [[1, 0, false, false, [81, 0, 0, 0]], [2, 0, false, false, [81, 71, 0, 0]], [1, 81, false, false, [71, 0, 0, 81]], [2, 81, false, false, [71, 25, 0, 81]], [1, 71, false, false, [25, 0, 81, 71]], [2, 71, false, false, [25, 59, 81, 71]], [3, 71, false, false, [25, 59, 39, 71]], [2, 25, false, false, [59, 39, 71, 25]], [3, 25, false, false, [59, 39, 15, 25]]], \"expected\": [[1, 0, false, false, [81, 0, 0, 0]], [2, 0, false, false, [81, 71, 0, 0]], [1, 81, false, false, [71, 0, 0, 0]], [2, 81, false, false, [71, 25, 0, 0]], [1, 71, false, false, [25, 0, 0, 0]], [2, 71, false, false, [25, 59, 0, 0]], [3, 71, false, false, [25, 59, 39, 0]], [2, 25, false, false, [59, 39, 0, 0]], [3, 25, false, false, [59, 39, 15, 0]]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.338,"exit_code":1,"observations":[{"actual":[[0,0,false,true,[0,0]],[1,0,false,false,[5,0]],[2,0,true,false,[5,7]],[2,0,true,false,[5,7]],[1,5,false,false,[7,7]],[0,7,false,true,[7,7]],[0,7,false,true,[7,7]]],"check":"regression: fill overflow drain","expected":[[0,0,false,true,[0,0]],[1,0,false,false,[5,0]],[2,0,true,false,[5,7]],[2,0,true,false,[5,7]],[1,5,false,false,[7,0]],[0,7,false,true,[0,0]],[0,7,false,true,[0,0]]],"passed":false},{"actual":[[1,0,true,false,[4]],[1,0,true,false,[4]],[0,4,false,true,[4]],[1,4,true,false,[8]]],"check":"regression: single slot","expected":[[1,0,true,false,[4]],[1,0,true,false,[4]],[0,4,false,true,[0]],[1,4,true,false,[8]]],"passed":false},{"actual":[[1,0,false,false,[1,0,0]],[2,0,false,false,[1,2,0]],[1,1,false,false,[2,0,0]],[2,1,false,false,[2,3,0]],[1,2,false,false,[3,0,0]],[0,3,false,true,[0,0,0]]],"check":"regression: interleaved","expected":[[1,0,false,false,[1,0,0]],[2,0,false,false,[1,2,0]],[1,1,false,false,[2,0,0]],[2,1,false,false,[2,3,0]],[1,2,false,false,[3,0,0]],[0,3,false,true,[0,0,0]]],"passed":true},{"actual":[[1,0,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[0,0]],[0,0,false,true,[0,0]],[0,0,false,true,[0,0]]],"check":"regression: zero value part","expected":[[1,0,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[0,0]],[0,0,false,true,[0,0]],[0,0,false,true,[0,0]]],"passed":true},{"actual":[[1,0,false,false,[13,0]],[0,13,false,true,[0,0]],[1,13,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[38,0]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[1,38,false,false,[22,22]],[2,38,true,false,[22,42]]],"check":"regression: scenario 1","expected":[[1,0,false,false,[13,0]],[0,13,false,true,[0,0]],[1,13,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[38,0]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[1,38,false,false,[22,0]],[2,38,true,false,[22,42]]],"passed":false},{"actual":[[1,0,false,false,[44,0]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[1,44,false,false,[96,96]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]]],"check":"regression: scenario 2","expected":[[1,0,false,false,[44,0]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[1,44,false,false,[96,0]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]]],"passed":false},{"actual":[[1,0,false,false,[41,0]],[2,0,true,false,[41,30]],[2,0,true,false,[41,30]],[1,41,false,false,[30,30]],[2,41,true,false,[30,8]],[2,41,true,false,[30,8]],[1,30,false,false,[8,8]],[2,30,true,false,[8,95]],[2,30,true,false,[8,95]]],"check":"regression: scenario 3","expected":[[1,0,false,false,[41,0]],[2,0,true,false,[41,30]],[2,0,true,false,[41,30]],[1,41,false,false,[30,0]],[2,41,true,false,[30,8]],[2,41,true,false,[30,8]],[1,30,false,false,[8,0]],[2,30,true,false,[8,95]],[2,30,true,false,[8,95]]],"passed":false},{"actual":[[1,0,false,false,[81,0,0,0]],[2,0,false,false,[81,71,0,0]],[1,81,false,false,[71,0,0,0]],[2,81,false,false,[71,25,0,0]],[1,71,false,false,[25,0,0,0]],[2,71,false,false,[25,59,0,0]],[3,71,false,false,[25,59,39,0]],[2,25,false,false,[59,39,0,0]],[3,25,false,false,[59,39,15,0]]],"check":"regression: scenario 4","expected":[[1,0,false,false,[81,0,0,0]],[2,0,false,false,[81,71,0,0]],[1,81,false,false,[71,0,0,0]],[2,81,false,false,[71,25,0,0]],[1,71,false,false,[25,0,0,0]],[2,71,false,false,[25,59,0,0]],[3,71,false,false,[25,59,39,0]],[2,25,false,false,[59,39,0,0]],[3,25,false,false,[59,39,15,0]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: fill overflow drain\", \"actual\": [[0, 0, false, true, [0, 0]], [1, 0, false, false, [5, 0]], [2, 0, true, false, [5, 7]], [2, 0, true, false, [5, 7]], [1, 5, false, false, [7, 7]], [0, 7, false, true, [7, 7]], [0, 7, false, true, [7, 7]]], \"expected\": [[0, 0, false, true, [0, 0]], [1, 0, false, false, [5, 0]], [2, 0, true, false, [5, 7]], [2, 0, true, false, [5, 7]], [1, 5, false, false, [7, 0]], [0, 7, false, true, [0, 0]], [0, 7, false, true, [0, 0]]], \"passed\": false}, {\"check\": \"regression: single slot\", \"actual\": [[1, 0, true, false, [4]], [1, 0, true, false, [4]], [0, 4, false, true, [4]], [1, 4, true, false, [8]]], \"expected\": [[1, 0, true, false, [4]], [1, 0, true, false, [4]], [0, 4, false, true, [0]], [1, 4, true, false, [8]]], \"passed\": false}, {\"check\": \"regression: interleaved\", \"actual\": [[1, 0, false, false, [1, 0, 0]], [2, 0, false, false, [1, 2, 0]], [1, 1, false, false, [2, 0, 0]], [2, 1, false, false, [2, 3, 0]], [1, 2, false, false, [3, 0, 0]], [0, 3, false, true, [0, 0, 0]]], \"expected\": [[1, 0, false, false, [1, 0, 0]], [2, 0, false, false, [1, 2, 0]], [1, 1, false, false, [2, 0, 0]], [2, 1, false, false, [2, 3, 0]], [1, 2, false, false, [3, 0, 0]], [0, 3, false, true, [0, 0, 0]]], \"passed\": true}, {\"check\": \"regression: zero value part\", \"actual\": [[1, 0, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [0, 0]], [0, 0, false, true, [0, 0]], [0, 0, false, true, [0, 0]]], \"expected\": [[1, 0, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [0, 0]], [0, 0, false, true, [0, 0]], [0, 0, false, true, [0, 0]]], \"passed\": true}, {\"check\": \"regression: scenario 1\", \"actual\": [[1, 0, false, false, [13, 0]], [0, 13, false, true, [0, 0]], [1, 13, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [38, 0]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [1, 38, false, false, [22, 22]], [2, 38, true, false, [22, 42]]], \"expected\": [[1, 0, false, false, [13, 0]], [0, 13, false, true, [0, 0]], [1, 13, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [38, 0]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [1, 38, false, false, [22, 0]], [2, 38, true, false, [22, 42]]], \"passed\": false}, {\"check\": \"regression: scenario 2\", \"actual\": [[1, 0, false, false, [44, 0]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [1, 44, false, false, [96, 96]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]]], \"expected\": [[1, 0, false, false, [44, 0]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [1, 44, false, false, [96, 0]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]]], \"passed\": false}, {\"check\": \"regression: scenario 3\", \"actual\": [[1, 0, false, false, [41, 0]], [2, 0, true, false, [41, 30]], [2, 0, true, false, [41, 30]], [1, 41, false, false, [30, 30]], [2, 41, true, false, [30, 8]], [2, 41, true, false, [30, 8]], [1, 30, false, false, [8, 8]], [2, 30, true, false, [8, 95]], [2, 30, true, false, [8, 95]]], \"expected\": [[1, 0, false, false, [41, 0]], [2, 0, true, false, [41, 30]], [2, 0, true, false, [41, 30]], [1, 41, false, false, [30, 0]], [2, 41, true, false, [30, 8]], [2, 41, true, false, [30, 8]], [1, 30, false, false, [8, 0]], [2, 30, true, false, [8, 95]], [2, 30, true, false, [8, 95]]], \"passed\": false}, {\"check\": \"regression: scenario 4\", \"actual\": [[1, 0, false, false, [81, 0, 0, 0]], [2, 0, false, false, [81, 71, 0, 0]], [1, 81, false, false, [71, 0, 0, 0]], [2, 81, false, false, [71, 25, 0, 0]], [1, 71, false, false, [25, 0, 0, 0]], [2, 71, false, false, [25, 59, 0, 0]], [3, 71, false, false, [25, 59, 39, 0]], [2, 25, false, false, [59, 39, 0, 0]], [3, 25, false, false, [59, 39, 15, 0]]], \"expected\": [[1, 0, false, false, [81, 0, 0, 0]], [2, 0, false, false, [81, 71, 0, 0]], [1, 81, false, false, [71, 0, 0, 0]], [2, 81, false, false, [71, 25, 0, 0]], [1, 71, false, false, [25, 0, 0, 0]], [2, 71, false, false, [25, 59, 0, 0]], [3, 71, false, false, [25, 59, 39, 0]], [2, 25, false, false, [59, 39, 0, 0]], [3, 25, false, false, [59, 39, 15, 0]]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.664,"exit_code":0,"observations":[{"actual":[[0,0,false,true,[0,0]],[1,0,false,false,[5,0]],[2,0,true,false,[5,7]],[2,0,true,false,[5,7]],[1,5,false,false,[7,0]],[0,7,false,true,[0,0]],[0,7,false,true,[0,0]]],"check":"regression: fill overflow drain","expected":[[0,0,false,true,[0,0]],[1,0,false,false,[5,0]],[2,0,true,false,[5,7]],[2,0,true,false,[5,7]],[1,5,false,false,[7,0]],[0,7,false,true,[0,0]],[0,7,false,true,[0,0]]],"passed":true},{"actual":[[1,0,true,false,[4]],[1,0,true,false,[4]],[0,4,false,true,[0]],[1,4,true,false,[8]]],"check":"regression: single slot","expected":[[1,0,true,false,[4]],[1,0,true,false,[4]],[0,4,false,true,[0]],[1,4,true,false,[8]]],"passed":true},{"actual":[[1,0,false,false,[1,0,0]],[2,0,false,false,[1,2,0]],[1,1,false,false,[2,0,0]],[2,1,false,false,[2,3,0]],[1,2,false,false,[3,0,0]],[0,3,false,true,[0,0,0]]],"check":"regression: interleaved","expected":[[1,0,false,false,[1,0,0]],[2,0,false,false,[1,2,0]],[1,1,false,false,[2,0,0]],[2,1,false,false,[2,3,0]],[1,2,false,false,[3,0,0]],[0,3,false,true,[0,0,0]]],"passed":true},{"actual":[[1,0,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[0,0]],[0,0,false,true,[0,0]],[0,0,false,true,[0,0]]],"check":"regression: zero value part","expected":[[1,0,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[0,0]],[0,0,false,true,[0,0]],[0,0,false,true,[0,0]]],"passed":true},{"actual":[[1,0,false,false,[13,0]],[0,13,false,true,[0,0]],[1,13,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[38,0]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[1,38,false,false,[22,0]],[2,38,true,false,[22,42]]],"check":"regression: scenario 1","expected":[[1,0,false,false,[13,0]],[0,13,false,true,[0,0]],[1,13,false,false,[3,0]],[0,3,false,true,[0,0]],[1,3,false,false,[38,0]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[2,3,true,false,[38,22]],[1,38,false,false,[22,0]],[2,38,true,false,[22,42]]],"passed":true},{"actual":[[1,0,false,false,[44,0]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[1,44,false,false,[96,0]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]]],"check":"regression: scenario 2","expected":[[1,0,false,false,[44,0]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[2,0,true,false,[44,96]],[1,44,false,false,[96,0]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]],[2,44,true,false,[96,69]]],"passed":true},{"actual":[[1,0,false,false,[41,0]],[2,0,true,false,[41,30]],[2,0,true,false,[41,30]],[1,41,false,false,[30,0]],[2,41,true,false,[30,8]],[2,41,true,false,[30,8]],[1,30,false,false,[8,0]],[2,30,true,false,[8,95]],[2,30,true,false,[8,95]]],"check":"regression: scenario 3","expected":[[1,0,false,false,[41,0]],[2,0,true,false,[41,30]],[2,0,true,false,[41,30]],[1,41,false,false,[30,0]],[2,41,true,false,[30,8]],[2,41,true,false,[30,8]],[1,30,false,false,[8,0]],[2,30,true,false,[8,95]],[2,30,true,false,[8,95]]],"passed":true},{"actual":[[1,0,false,false,[81,0,0,0]],[2,0,false,false,[81,71,0,0]],[1,81,false,false,[71,0,0,0]],[2,81,false,false,[71,25,0,0]],[1,71,false,false,[25,0,0,0]],[2,71,false,false,[25,59,0,0]],[3,71,false,false,[25,59,39,0]],[2,25,false,false,[59,39,0,0]],[3,25,false,false,[59,39,15,0]]],"check":"regression: scenario 4","expected":[[1,0,false,false,[81,0,0,0]],[2,0,false,false,[81,71,0,0]],[1,81,false,false,[71,0,0,0]],[2,81,false,false,[71,25,0,0]],[1,71,false,false,[25,0,0,0]],[2,71,false,false,[25,59,0,0]],[3,71,false,false,[25,59,39,0]],[2,25,false,false,[59,39,0,0]],[3,25,false,false,[59,39,15,0]]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: fill overflow drain\", \"actual\": [[0, 0, false, true, [0, 0]], [1, 0, false, false, [5, 0]], [2, 0, true, false, [5, 7]], [2, 0, true, false, [5, 7]], [1, 5, false, false, [7, 0]], [0, 7, false, true, [0, 0]], [0, 7, false, true, [0, 0]]], \"expected\": [[0, 0, false, true, [0, 0]], [1, 0, false, false, [5, 0]], [2, 0, true, false, [5, 7]], [2, 0, true, false, [5, 7]], [1, 5, false, false, [7, 0]], [0, 7, false, true, [0, 0]], [0, 7, false, true, [0, 0]]], \"passed\": true}, {\"check\": \"regression: single slot\", \"actual\": [[1, 0, true, false, [4]], [1, 0, true, false, [4]], [0, 4, false, true, [0]], [1, 4, true, false, [8]]], \"expected\": [[1, 0, true, false, [4]], [1, 0, true, false, [4]], [0, 4, false, true, [0]], [1, 4, true, false, [8]]], \"passed\": true}, {\"check\": \"regression: interleaved\", \"actual\": [[1, 0, false, false, [1, 0, 0]], [2, 0, false, false, [1, 2, 0]], [1, 1, false, false, [2, 0, 0]], [2, 1, false, false, [2, 3, 0]], [1, 2, false, false, [3, 0, 0]], [0, 3, false, true, [0, 0, 0]]], \"expected\": [[1, 0, false, false, [1, 0, 0]], [2, 0, false, false, [1, 2, 0]], [1, 1, false, false, [2, 0, 0]], [2, 1, false, false, [2, 3, 0]], [1, 2, false, false, [3, 0, 0]], [0, 3, false, true, [0, 0, 0]]], \"passed\": true}, {\"check\": \"regression: zero value part\", \"actual\": [[1, 0, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [0, 0]], [0, 0, false, true, [0, 0]], [0, 0, false, true, [0, 0]]], \"expected\": [[1, 0, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [0, 0]], [0, 0, false, true, [0, 0]], [0, 0, false, true, [0, 0]]], \"passed\": true}, {\"check\": \"regression: scenario 1\", \"actual\": [[1, 0, false, false, [13, 0]], [0, 13, false, true, [0, 0]], [1, 13, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [38, 0]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [1, 38, false, false, [22, 0]], [2, 38, true, false, [22, 42]]], \"expected\": [[1, 0, false, false, [13, 0]], [0, 13, false, true, [0, 0]], [1, 13, false, false, [3, 0]], [0, 3, false, true, [0, 0]], [1, 3, false, false, [38, 0]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [2, 3, true, false, [38, 22]], [1, 38, false, false, [22, 0]], [2, 38, true, false, [22, 42]]], \"passed\": true}, {\"check\": \"regression: scenario 2\", \"actual\": [[1, 0, false, false, [44, 0]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [1, 44, false, false, [96, 0]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]]], \"expected\": [[1, 0, false, false, [44, 0]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [2, 0, true, false, [44, 96]], [1, 44, false, false, [96, 0]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]], [2, 44, true, false, [96, 69]]], \"passed\": true}, {\"check\": \"regression: scenario 3\", \"actual\": [[1, 0, false, false, [41, 0]], [2, 0, true, false, [41, 30]], [2, 0, true, false, [41, 30]], [1, 41, false, false, [30, 0]], [2, 41, true, false, [30, 8]], [2, 41, true, false, [30, 8]], [1, 30, false, false, [8, 0]], [2, 30, true, false, [8, 95]], [2, 30, true, false, [8, 95]]], \"expected\": [[1, 0, false, false, [41, 0]], [2, 0, true, false, [41, 30]], [2, 0, true, false, [41, 30]], [1, 41, false, false, [30, 0]], [2, 41, true, false, [30, 8]], [2, 41, true, false, [30, 8]], [1, 30, false, false, [8, 0]], [2, 30, true, false, [8, 95]], [2, 30, true, false, [8, 95]]], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [[1, 0, false, false, [81, 0, 0, 0]], [2, 0, false, false, [81, 71, 0, 0]], [1, 81, false, false, [71, 0, 0, 0]], [2, 81, false, false, [71, 25, 0, 0]], [1, 71, false, false, [25, 0, 0, 0]], [2, 71, false, false, [25, 59, 0, 0]], [3, 71, false, false, [25, 59, 39, 0]], [2, 25, false, false, [59, 39, 0, 0]], [3, 25, false, false, [59, 39, 15, 0]]], \"expected\": [[1, 0, false, false, [81, 0, 0, 0]], [2, 0, false, false, [81, 71, 0, 0]], [1, 81, false, false, [71, 0, 0, 0]], [2, 81, false, false, [71, 25, 0, 0]], [1, 71, false, false, [25, 0, 0, 0]], [2, 71, false, false, [25, 59, 0, 0]], [3, 71, false, false, [25, 59, 39, 0]], [2, 25, false, false, [59, 39, 0, 0]], [3, 25, false, false, [59, 39, 15, 0]]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}