{"abstract":"A five-digit value 12345 scans as 123450, changing its magnitude.","category":"Barcode symbology encoding","checks":8,"contract":"Encode ASCII digits as Interleaved 2 of 5 element widths (narrow 1, wide = ratio in {2, 2.5, 3}). An odd-length input gets a leading 0. Start is narrow bar/space/bar/space; each digit pair interleaves the first digit's pattern in the bars with the second digit's pattern in the spaces; stop is wide bar, narrow space, narrow bar. Digit patterns use weights 1,2,4,7 plus parity (0 = NNWWN). Invalid input returns None.","evaluation_group":"w2-barcode-symbology-encoding-itf-interleave","failed_approach":"Dropping the last digit loses data.","family":"w2-barcode-symbology-encoding-itf-interleave-odd-padding","id":"FA-79521","implementations":{"attempt":{"sha256":"0dc9c205af1dcf899dfcadd7f896074c14d294c7eba0fbccebd39b0efa14f4a0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(digits, ratio):\n    if not digits or not all(c in '0123456789' for c in digits) or ratio not in (2, 2.5, 3):\n        return None\n    P = {'0': 'NNWWN', '1': 'WNNNW', '2': 'NWNNW', '3': 'WWNNN', '4': 'NNWNW',\n         '5': 'WNWNN', '6': 'NWWNN', '7': 'NNNWW', '8': 'WNNWN', '9': 'NWNWN'}\n    if len(digits) % 2:\n        digits = digits[:-1]\n    wid = {'N': 1, 'W': ratio}\n    out = [1, 1, 1, 1]\n    for i in range(0, len(digits), 2):\n        a, b = P[digits[i]], P[digits[i + 1]]\n        for k in range(5):\n            out.append(wid[a[k]])\n            out.append(wid[b[k]])\n    out += [ratio, 1, 1]\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[('7', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1]], [('8', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1]], [('809220', 3), [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1]], [('596257', 4), None], [('37775', 4), None], [('683', 4), None], [('960081', 3), [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1]], [('2', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]]], [[('954', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1]], [('284', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 3, 1, 1]], [('746905', 3), [1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1]], [('83883', 4), None], [('246919', 2), [1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1]], [('6812', 2), [1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1]], [('6596', 2.5), [1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1]], [('76847', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1]]], [[('26563', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 1, 1]], [('0', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1]], [('539', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 1]], [('063', 4), None], [('205464', 2), [1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1]], [('313090', 2), [1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1]], [('3529', 3), [1, 1, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1]], [('8', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 1, 3, 1, 1]]], [[('28926', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 1]], [('03860', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1]], [('7573', 2), [1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1]], [('26127', 4), None], [('6298', 3), [1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1]], [('866370', 2), [1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1]], [('6592', 2.5), [1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]], [('2', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]]], [[('50677', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 2.5, 1, 1]], [('5', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1]], [('007422', 4), None], [('151516', 2.5), [1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1]], [('40', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1]], [('87', 2), [1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1]], [('5650', 3), [1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1]], [('420', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1]]]]\nlabels = [\"regression: odd length padding side\", \"repair trap\", \"combined fault\", \"control\", \"control\", \"boundary\", \"boundary\", \"control\"]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (labels[i % len(labels)], i), 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":"5d32eabd3db9eb2f678bf8255ba3d4939e102616760e8828b8a5b71cecbd7d68","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(digits, ratio):\n    if not digits or not all(c in '0123456789' for c in digits) or ratio not in (2, 2.5, 3):\n        return None\n    P = {'0': 'NNWWN', '1': 'WNNNW', '2': 'NWNNW', '3': 'WWNNN', '4': 'NNWNW',\n         '5': 'WNWNN', '6': 'NWWNN', '7': 'NNNWW', '8': 'WNNWN', '9': 'NWNWN'}\n    if len(digits) % 2:\n        digits = digits + '0'\n    wid = {'N': 1, 'W': ratio}\n    out = [1, 1, 1, 1]\n    for i in range(0, len(digits), 2):\n        a, b = P[digits[i]], P[digits[i + 1]]\n        for k in range(5):\n            out.append(wid[a[k]])\n            out.append(wid[b[k]])\n    out += [ratio, 1, 1]\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[('7', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1]], [('8', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1]], [('809220', 3), [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1]], [('596257', 4), None], [('37775', 4), None], [('683', 4), None], [('960081', 3), [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1]], [('2', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]]], [[('954', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1]], [('284', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 3, 1, 1]], [('746905', 3), [1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1]], [('83883', 4), None], [('246919', 2), [1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1]], [('6812', 2), [1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1]], [('6596', 2.5), [1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1]], [('76847', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1]]], [[('26563', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 1, 1]], [('0', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1]], [('539', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 1]], [('063', 4), None], [('205464', 2), [1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1]], [('313090', 2), [1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1]], [('3529', 3), [1, 1, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1]], [('8', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 1, 3, 1, 1]]], [[('28926', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 1]], [('03860', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1]], [('7573', 2), [1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1]], [('26127', 4), None], [('6298', 3), [1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1]], [('866370', 2), [1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1]], [('6592', 2.5), [1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]], [('2', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]]], [[('50677', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 2.5, 1, 1]], [('5', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1]], [('007422', 4), None], [('151516', 2.5), [1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1]], [('40', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1]], [('87', 2), [1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1]], [('5650', 3), [1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1]], [('420', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1]]]]\nlabels = [\"regression: odd length padding side\", \"repair trap\", \"combined fault\", \"control\", \"control\", \"boundary\", \"boundary\", \"control\"]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (labels[i % len(labels)], i), 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":"a02536072776e2f08c4ac81abf11f3638a291431fac1fe78b644390edf2a542c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(digits, ratio):\n    if not digits or not all(c in '0123456789' for c in digits) or ratio not in (2, 2.5, 3):\n        return None\n    P = {'0': 'NNWWN', '1': 'WNNNW', '2': 'NWNNW', '3': 'WWNNN', '4': 'NNWNW',\n         '5': 'WNWNN', '6': 'NWWNN', '7': 'NNNWW', '8': 'WNNWN', '9': 'NWNWN'}\n    if len(digits) % 2:\n        digits = '0' + digits\n    wid = {'N': 1, 'W': ratio}\n    out = [1, 1, 1, 1]\n    for i in range(0, len(digits), 2):\n        a, b = P[digits[i]], P[digits[i + 1]]\n        for k in range(5):\n            out.append(wid[a[k]])\n            out.append(wid[b[k]])\n    out += [ratio, 1, 1]\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[('7', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1]], [('8', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1]], [('809220', 3), [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1]], [('596257', 4), None], [('37775', 4), None], [('683', 4), None], [('960081', 3), [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1]], [('2', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]]], [[('954', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 3, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1]], [('284', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 3, 1, 1]], [('746905', 3), [1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 3, 1, 1]], [('83883', 4), None], [('246919', 2), [1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1]], [('6812', 2), [1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1]], [('6596', 2.5), [1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1]], [('76847', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1]]], [[('26563', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 1, 1]], [('0', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1]], [('539', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 1]], [('063', 4), None], [('205464', 2), [1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1]], [('313090', 2), [1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1]], [('3529', 3), [1, 1, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1]], [('8', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 1, 3, 1, 1]]], [[('28926', 3), [1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 3, 1, 1]], [('03860', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 1]], [('7573', 2), [1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 1]], [('26127', 4), None], [('6298', 3), [1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1]], [('866370', 2), [1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, 1]], [('6592', 2.5), [1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]], [('2', 2.5), [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1]]], [[('50677', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 2.5, 1, 1]], [('5', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1]], [('007422', 4), None], [('151516', 2.5), [1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1]], [('40', 2), [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1]], [('87', 2), [1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1]], [('5650', 3), [1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1]], [('420', 3), [1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1]]]]\nlabels = [\"regression: odd length padding side\", \"repair trap\", \"combined fault\", \"control\", \"control\", \"boundary\", \"boundary\", \"control\"]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (labels[i % len(labels)], i), 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 with a stipulated contract; it makes no claim of conformance to any published specification. 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-barcode-symbology-encoding-itf-interleave-odd-padding","generated_at":"2026-09-29T14:49:45.297058+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Retail, logistics, pharmacy and document workflows depend on encoders that produce exactly the module pattern, code-set switches, separators and quiet zones scanners expect; one misplaced module or separator makes a label unreadable or, worse, scan as different data.","repair":"Prepend a zero so the value is unchanged.","root_cause":"The pad digit is appended instead of prepended.","sha256":"6f7659960f8020582e3a37ee58ef7bbe84658e7cd69f2f564309cb921913bf94","title":"ITF pads odd-length data with a trailing zero · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.919,"exit_code":1,"observations":[{"actual":[1,1,1,1,3,1,1],"check":"regression: odd length padding side 0","expected":[1,1,1,1,1,1,1,1,3,1,3,3,1,3,3,1,1],"passed":false},{"actual":[1,1,1,1,2.5,1,1],"check":"repair trap 1","expected":[1,1,1,1,1,2.5,1,1,2.5,1,2.5,2.5,1,1,2.5,1,1],"passed":false},{"actual":[1,1,1,1,3,1,1,1,1,3,3,3,1,1,1,1,3,3,1,1,3,1,1,3,1,1,3,1,1,3,1,3,3,1,3,1,1],"check":"combined fault 2","expected":[1,1,1,1,3,1,1,1,1,3,3,3,1,1,1,1,3,3,1,1,3,1,1,3,1,1,3,1,1,3,1,3,3,1,3,1,1],"passed":true},{"actual":null,"check":"control 3","expected":null,"passed":true},{"actual":null,"check":"control 4","expected":null,"passed":true},{"actual":null,"check":"boundary 5","expected":null,"passed":true},{"actual":[1,1,1,1,1,1,3,3,1,3,3,1,1,1,1,1,1,1,3,3,3,3,1,1,3,3,1,1,1,1,3,1,1,3,3,1,1],"check":"boundary 6","expected":[1,1,1,1,1,1,3,3,1,3,3,1,1,1,1,1,1,1,3,3,3,3,1,1,3,3,1,1,1,1,3,1,1,3,3,1,1],"passed":true},{"actual":[1,1,1,1,2.5,1,1],"check":"control 7","expected":[1,1,1,1,1,1,1,2.5,2.5,1,2.5,1,1,2.5,2.5,1,1],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: odd length padding side 0\", \"actual\": [1, 1, 1, 1, 3, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1], \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": [1, 1, 1, 1, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1], \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1], \"expected\": [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1], \"passed\": true}, {\"check\": \"control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [1, 1, 1, 1, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.516,"exit_code":1,"observations":[{"actual":[1,1,1,1,1,1,1,1,1,3,3,3,3,1,3,1,1],"check":"regression: odd length padding side 0","expected":[1,1,1,1,1,1,1,1,3,1,3,3,1,3,3,1,1],"passed":false},{"actual":[1,1,1,1,2.5,1,1,1,1,2.5,2.5,2.5,1,1,2.5,1,1],"check":"repair trap 1","expected":[1,1,1,1,1,2.5,1,1,2.5,1,2.5,2.5,1,1,2.5,1,1],"passed":false},{"actual":[1,1,1,1,3,1,1,1,1,3,3,3,1,1,1,1,3,3,1,1,3,1,1,3,1,1,3,1,1,3,1,3,3,1,3,1,1],"check":"combined fault 2","expected":[1,1,1,1,3,1,1,1,1,3,3,3,1,1,1,1,3,3,1,1,3,1,1,3,1,1,3,1,1,3,1,3,3,1,3,1,1],"passed":true},{"actual":null,"check":"control 3","expected":null,"passed":true},{"actual":null,"check":"control 4","expected":null,"passed":true},{"actual":null,"check":"boundary 5","expected":null,"passed":true},{"actual":[1,1,1,1,1,1,3,3,1,3,3,1,1,1,1,1,1,1,3,3,3,3,1,1,3,3,1,1,1,1,3,1,1,3,3,1,1],"check":"boundary 6","expected":[1,1,1,1,1,1,3,3,1,3,3,1,1,1,1,1,1,1,3,3,3,3,1,1,3,3,1,1,1,1,3,1,1,3,3,1,1],"passed":true},{"actual":[1,1,1,1,1,1,2.5,1,1,2.5,1,2.5,2.5,1,2.5,1,1],"check":"control 7","expected":[1,1,1,1,1,1,1,2.5,2.5,1,2.5,1,1,2.5,2.5,1,1],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: odd length padding side 0\", \"actual\": [1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 3, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1], \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": [1, 1, 1, 1, 2.5, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1], \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1], \"expected\": [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1], \"passed\": true}, {\"check\": \"control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [1, 1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.815,"exit_code":0,"observations":[{"actual":[1,1,1,1,1,1,1,1,3,1,3,3,1,3,3,1,1],"check":"regression: odd length padding side 0","expected":[1,1,1,1,1,1,1,1,3,1,3,3,1,3,3,1,1],"passed":true},{"actual":[1,1,1,1,1,2.5,1,1,2.5,1,2.5,2.5,1,1,2.5,1,1],"check":"repair trap 1","expected":[1,1,1,1,1,2.5,1,1,2.5,1,2.5,2.5,1,1,2.5,1,1],"passed":true},{"actual":[1,1,1,1,3,1,1,1,1,3,3,3,1,1,1,1,3,3,1,1,3,1,1,3,1,1,3,1,1,3,1,3,3,1,3,1,1],"check":"combined fault 2","expected":[1,1,1,1,3,1,1,1,1,3,3,3,1,1,1,1,3,3,1,1,3,1,1,3,1,1,3,1,1,3,1,3,3,1,3,1,1],"passed":true},{"actual":null,"check":"control 3","expected":null,"passed":true},{"actual":null,"check":"control 4","expected":null,"passed":true},{"actual":null,"check":"boundary 5","expected":null,"passed":true},{"actual":[1,1,1,1,1,1,3,3,1,3,3,1,1,1,1,1,1,1,3,3,3,3,1,1,3,3,1,1,1,1,3,1,1,3,3,1,1],"check":"boundary 6","expected":[1,1,1,1,1,1,3,3,1,3,3,1,1,1,1,1,1,1,3,3,3,3,1,1,3,3,1,1,1,1,3,1,1,3,3,1,1],"passed":true},{"actual":[1,1,1,1,1,1,1,2.5,2.5,1,2.5,1,1,2.5,2.5,1,1],"check":"control 7","expected":[1,1,1,1,1,1,1,2.5,2.5,1,2.5,1,1,2.5,2.5,1,1],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: odd length padding side 0\", \"actual\": [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, 3, 3, 1, 1], \"passed\": true}, {\"check\": \"repair trap 1\", \"actual\": [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1], \"passed\": true}, {\"check\": \"combined fault 2\", \"actual\": [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1], \"expected\": [1, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 3, 3, 1, 3, 1, 1], \"passed\": true}, {\"check\": \"control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 4\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 3, 3, 1, 1, 1, 1, 3, 1, 1, 3, 3, 1, 1], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}