{"abstract":"Symbols printed at a 3:1 ratio have data elements at 2:1 but a 3:1 stop bar.","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":"round() turns 2.5 into 2 with banker's rounding.","family":"w2-barcode-symbology-encoding-itf-interleave-wide-ratio","id":"FA-79541","implementations":{"attempt":{"sha256":"29d69e0818ce14966ea483ea67131b5a0b12e94da502c5022bd0cb149bddf659","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': round(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 = [[[('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]], [('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]], [('670621', 2.5), [1, 1, 1, 1, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1]], [('596257', 4), None], [('37775', 4), None], [('683', 4), None], [('395208', 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]]], [[('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]], [('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]], [('7765', 2.5), [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 2.5, 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]], [('13', 4), None], [('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]]], [[('486862', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1]], [('268679', 2.5), [1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 2.5, 1, 1]], [('875', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 2.5, 1, 1]], [('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]], [('05', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1]], [('1819', 4), None], [('15', 3), [1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 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]], [('559', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1, 2.5, 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]], [('84', 2), [1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1]], [('6', 4), None], [('00', 4), None], [('17', 3), [1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1]]], [[('48', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1]], [('15631', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 1]], [('12702', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 1, 2.5, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 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]], [('6644', 2), [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1]], [('8', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 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: wide element width\", \"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":"c2acb10e65fe26b146a5119179528f34b9966ef785b801231df998ee64033bee","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': 2}\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 = [[[('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]], [('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]], [('670621', 2.5), [1, 1, 1, 1, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1]], [('596257', 4), None], [('37775', 4), None], [('683', 4), None], [('395208', 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]]], [[('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]], [('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]], [('7765', 2.5), [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 2.5, 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]], [('13', 4), None], [('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]]], [[('486862', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1]], [('268679', 2.5), [1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 2.5, 1, 1]], [('875', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 2.5, 1, 1]], [('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]], [('05', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1]], [('1819', 4), None], [('15', 3), [1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 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]], [('559', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1, 2.5, 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]], [('84', 2), [1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1]], [('6', 4), None], [('00', 4), None], [('17', 3), [1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1]]], [[('48', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1]], [('15631', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 1]], [('12702', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 1, 2.5, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 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]], [('6644', 2), [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1]], [('8', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 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: wide element width\", \"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":"4899218ca38190958eca6eefc0b5eaf12b317ad733feec9227e4e8f35f5ab6ff","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 = [[[('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]], [('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]], [('670621', 2.5), [1, 1, 1, 1, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1]], [('596257', 4), None], [('37775', 4), None], [('683', 4), None], [('395208', 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]]], [[('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]], [('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]], [('7765', 2.5), [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 2.5, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 2.5, 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]], [('13', 4), None], [('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]]], [[('486862', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 3, 1, 1, 3, 3, 1, 3, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 1, 1, 1, 1, 3, 3, 1, 1]], [('268679', 2.5), [1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 2.5, 1, 1]], [('875', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 2.5, 1, 1]], [('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]], [('05', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1]], [('1819', 4), None], [('15', 3), [1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 1, 1, 3, 1, 3, 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]], [('559', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1, 2.5, 1, 1, 2.5, 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]], [('84', 2), [1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1]], [('6', 4), None], [('00', 4), None], [('17', 3), [1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1]]], [[('48', 3), [1, 1, 1, 1, 1, 3, 1, 1, 3, 1, 1, 3, 3, 1, 3, 1, 1]], [('15631', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 2.5, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 1, 1, 1, 2.5, 2.5, 1, 1]], [('12702', 2.5), [1, 1, 1, 1, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 1, 2.5, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1, 1, 2.5, 2.5, 1, 2.5, 1, 1, 2.5, 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]], [('6644', 2), [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1, 1]], [('8', 2), [1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 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: wide element width\", \"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-wide-ratio","generated_at":"2026-09-29T14:49:45.628720+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":"Use the configured ratio for every wide element.","root_cause":"Wide data elements use a hard-coded width of 2.","sha256":"c8f30b0d3752a5b3a4c3cc10f28776df617bd4df7314881f399dbdec8cee36f0","title":"ITF data elements ignore the configured wide ratio · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.282,"exit_code":1,"observations":[{"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":"regression: wide element width 0","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":[1,1,1,1,1,1,1,2,2,1,2,1,1,2,2.5,1,1],"check":"repair trap 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},{"actual":[1,1,1,1,1,1,2,1,2,1,1,2,1,2,1,1,1,2,2,2,2,1,1,1,1,2,2,1,1,1,1,1,2,2,2.5,1,1],"check":"combined fault 2","expected":[1,1,1,1,1,1,2.5,1,2.5,1,1,2.5,1,2.5,1,1,1,2.5,2.5,2.5,2.5,1,1,1,1,2.5,2.5,1,1,1,1,1,2.5,2.5,2.5,1,1],"passed":false},{"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":null,"check":"boundary 6","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":"control 7","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}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: wide element width 0\", \"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\": \"repair trap 1\", \"actual\": [1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 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}, {\"check\": \"combined fault 2\", \"actual\": [1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1], \"passed\": false}, {\"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\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 7\", \"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}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.917,"exit_code":1,"observations":[{"actual":[1,1,1,1,2,1,1,1,1,2,2,2,1,1,1,1,2,2,1,1,2,1,1,2,1,1,2,1,1,2,1,2,2,1,3,1,1],"check":"regression: wide element width 0","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":false},{"actual":[1,1,1,1,1,1,1,2,2,1,2,1,1,2,2.5,1,1],"check":"repair trap 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},{"actual":[1,1,1,1,1,1,2,1,2,1,1,2,1,2,1,1,1,2,2,2,2,1,1,1,1,2,2,1,1,1,1,1,2,2,2.5,1,1],"check":"combined fault 2","expected":[1,1,1,1,1,1,2.5,1,2.5,1,1,2.5,1,2.5,1,1,1,2.5,2.5,2.5,2.5,1,1,1,1,2.5,2.5,1,1,1,1,1,2.5,2.5,2.5,1,1],"passed":false},{"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":null,"check":"boundary 6","expected":null,"passed":true},{"actual":[1,1,1,1,1,1,2,2,1,2,2,1,1,1,1,1,1,1,2,2,2,2,1,1,2,2,1,1,1,1,2,1,1,2,3,1,1],"check":"control 7","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":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: wide element width 0\", \"actual\": [1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 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\": false}, {\"check\": \"repair trap 1\", \"actual\": [1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 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}, {\"check\": \"combined fault 2\", \"actual\": [1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1], \"passed\": false}, {\"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\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 7\", \"actual\": [1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 1, 1, 2, 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\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.017,"exit_code":0,"observations":[{"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":"regression: wide element width 0","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":[1,1,1,1,1,1,1,2.5,2.5,1,2.5,1,1,2.5,2.5,1,1],"check":"repair trap 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},{"actual":[1,1,1,1,1,1,2.5,1,2.5,1,1,2.5,1,2.5,1,1,1,2.5,2.5,2.5,2.5,1,1,1,1,2.5,2.5,1,1,1,1,1,2.5,2.5,2.5,1,1],"check":"combined fault 2","expected":[1,1,1,1,1,1,2.5,1,2.5,1,1,2.5,1,2.5,1,1,1,2.5,2.5,2.5,2.5,1,1,1,1,2.5,2.5,1,1,1,1,1,2.5,2.5,2.5,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":null,"check":"boundary 6","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":"control 7","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}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: wide element width 0\", \"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\": \"repair trap 1\", \"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}, {\"check\": \"combined fault 2\", \"actual\": [1, 1, 1, 1, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 1, 1], \"expected\": [1, 1, 1, 1, 1, 1, 2.5, 1, 2.5, 1, 1, 2.5, 1, 2.5, 1, 1, 1, 2.5, 2.5, 2.5, 2.5, 1, 1, 1, 1, 2.5, 2.5, 1, 1, 1, 1, 1, 2.5, 2.5, 2.5, 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\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 7\", \"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}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}