{"abstract":"Bars lose twice the intended ink-spread compensation and read as too narrow.","category":"Barcode symbology encoding","checks":8,"contract":"Render a module string (\"1\" bar, \"0\" space) at xn/xd device pixels per module after `quiet` leading quiet-zone modules. Module boundary k lies at round-half-up((quiet + k) * X), computed from the exact fraction so errors do not accumulate. Adjacent bar modules merge into one bar [start, end); bar width reduction shaves `bwr` pixels from the right edge of each bar, but a bar is never narrower than 1 pixel.","contract_signature":"mods, xn, xd, bwr, quiet","evaluation_group":"w2-barcode-symbology-encoding-device-pixel-rendering","failed_approach":"Removing 2*bwr from one edge over-reduces just the same.","family":"w2-barcode-symbology-encoding-device-pixel-rendering-bwr-side","id":"FA-79756","implementations":{"attempt":{"sha256":"41328ec83535f75c449a0730897dcb00a2e42a579ff5532ef1742b71ce0495cb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(mods, xn, xd, bwr, quiet):\n    X = Fraction(xn, xd)\n    def edge(i):\n        return math.floor((quiet + i) * X + Fraction(1, 2))\n    bars = []\n    i = 0\n    n = len(mods)\n    while i < n:\n        if mods[i] == '1':\n            j = i\n            while j < n and mods[j] == '1':\n                j += 1\n            s, e = edge(i), edge(j) - 2 * bwr\n            if e - s < 1:\n                e = s + 1\n            bars.append([s, e])\n            i = j\n        else:\n            i += 1\n    return bars\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[('011', 5, 2, 1, 10), [[28, 32]]], [('000011011110', 4, 3, 1, 1), [[7, 8], [11, 15]]], [('0001111', 2, 1, 0, 1), [[8, 16]]], [('00001010', 1, 1, 0, 1), [[5, 6], [7, 8]]], [('101100101', 11, 5, 0, 0), [[0, 2], [4, 9], [13, 15], [18, 20]]], [('00101', 3, 1, 0, 0), [[6, 9], [12, 15]]], [('100011111000', 7, 3, 0, 1), [[2, 5], [12, 23]]], [('010111110', 11, 5, 2, 0), [[2, 3], [7, 16]]]], [[('000010010001', 9, 4, 1, 0), [[9, 10], [16, 17], [25, 26]]], [('0011000', 3, 1, 2, 3), [[15, 19]]], [('10000111', 9, 4, 2, 3), [[7, 8], [18, 23]]], [('0010101000110', 7, 3, 0, 0), [[5, 7], [9, 12], [14, 16], [23, 28]]], [('1100001111', 9, 4, 0, 0), [[0, 5], [14, 23]]], [('110', 11, 5, 0, 3), [[7, 11]]], [('110101', 2, 1, 0, 0), [[0, 4], [6, 8], [10, 12]]], [('1000110000', 2, 1, 1, 0), [[0, 1], [8, 11]]]], [[('00010110011', 7, 3, 2, 3), [[14, 15], [19, 21], [28, 31]]], [('101011110001', 11, 5, 2, 3), [[7, 8], [11, 12], [15, 22], [31, 32]]], [('11', 5, 2, 1, 3), [[8, 12]]], [('1101101001', 3, 1, 0, 3), [[9, 15], [18, 24], [27, 30], [36, 39]]], [('100110010100', 1, 1, 0, 1), [[1, 2], [4, 6], [8, 9], [10, 11]]], [('0110001110', 2, 1, 0, 10), [[22, 26], [32, 38]]], [('01011', 3, 1, 0, 0), [[3, 6], [9, 15]]], [('11000100111001', 5, 2, 1, 10), [[25, 29], [38, 39], [45, 52], [58, 59]]]], [[('1', 5, 2, 1, 0), [[0, 2]]], [('0100001000101', 3, 1, 1, 3), [[12, 14], [27, 29], [39, 41], [45, 47]]], [('10110', 5, 2, 0, 0), [[0, 3], [5, 10]]], [('01110000', 2, 1, 0, 3), [[8, 14]]], [('10111010100111', 5, 2, 0, 1), [[3, 5], [8, 15], [18, 20], [23, 25], [30, 38]]], [('11010', 7, 3, 0, 10), [[23, 28], [30, 33]]], [('1000010110000', 7, 3, 0, 1), [[2, 5], [14, 16], [19, 23]]], [('00101011101', 7, 3, 1, 10), [[28, 29], [33, 34], [37, 43], [47, 48]]]], [[('011111', 2, 1, 2, 3), [[8, 16]]], [('1000110111010', 2, 1, 1, 1), [[2, 3], [10, 13], [16, 21], [24, 25]]], [('0111110010101', 7, 3, 0, 10), [[26, 37], [42, 44], [47, 49], [51, 54]]], [('1', 5, 2, 0, 3), [[8, 10]]], [('1011111001100', 2, 1, 0, 3), [[6, 8], [10, 20], [24, 28]]], [('010101111001', 2, 1, 0, 0), [[2, 4], [6, 8], [10, 18], [22, 24]]], [('01110011', 5, 2, 0, 10), [[28, 35], [40, 45]]], [('011110111', 9, 4, 1, 10), [[25, 33], [36, 42]]]]]\nlabels = [\"regression: bar width reduction 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":"f56e035e7efd71b99e430a66d0df4cbe46eeb36c0bbc1046ee427c9739fa49ed","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(mods, xn, xd, bwr, quiet):\n    X = Fraction(xn, xd)\n    def edge(i):\n        return math.floor((quiet + i) * X + Fraction(1, 2))\n    bars = []\n    i = 0\n    n = len(mods)\n    while i < n:\n        if mods[i] == '1':\n            j = i\n            while j < n and mods[j] == '1':\n                j += 1\n            s, e = edge(i) + bwr, edge(j) - bwr\n            if e - s < 1:\n                e = s + 1\n            bars.append([s, e])\n            i = j\n        else:\n            i += 1\n    return bars\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[('011', 5, 2, 1, 10), [[28, 32]]], [('000011011110', 4, 3, 1, 1), [[7, 8], [11, 15]]], [('0001111', 2, 1, 0, 1), [[8, 16]]], [('00001010', 1, 1, 0, 1), [[5, 6], [7, 8]]], [('101100101', 11, 5, 0, 0), [[0, 2], [4, 9], [13, 15], [18, 20]]], [('00101', 3, 1, 0, 0), [[6, 9], [12, 15]]], [('100011111000', 7, 3, 0, 1), [[2, 5], [12, 23]]], [('010111110', 11, 5, 2, 0), [[2, 3], [7, 16]]]], [[('000010010001', 9, 4, 1, 0), [[9, 10], [16, 17], [25, 26]]], [('0011000', 3, 1, 2, 3), [[15, 19]]], [('10000111', 9, 4, 2, 3), [[7, 8], [18, 23]]], [('0010101000110', 7, 3, 0, 0), [[5, 7], [9, 12], [14, 16], [23, 28]]], [('1100001111', 9, 4, 0, 0), [[0, 5], [14, 23]]], [('110', 11, 5, 0, 3), [[7, 11]]], [('110101', 2, 1, 0, 0), [[0, 4], [6, 8], [10, 12]]], [('1000110000', 2, 1, 1, 0), [[0, 1], [8, 11]]]], [[('00010110011', 7, 3, 2, 3), [[14, 15], [19, 21], [28, 31]]], [('101011110001', 11, 5, 2, 3), [[7, 8], [11, 12], [15, 22], [31, 32]]], [('11', 5, 2, 1, 3), [[8, 12]]], [('1101101001', 3, 1, 0, 3), [[9, 15], [18, 24], [27, 30], [36, 39]]], [('100110010100', 1, 1, 0, 1), [[1, 2], [4, 6], [8, 9], [10, 11]]], [('0110001110', 2, 1, 0, 10), [[22, 26], [32, 38]]], [('01011', 3, 1, 0, 0), [[3, 6], [9, 15]]], [('11000100111001', 5, 2, 1, 10), [[25, 29], [38, 39], [45, 52], [58, 59]]]], [[('1', 5, 2, 1, 0), [[0, 2]]], [('0100001000101', 3, 1, 1, 3), [[12, 14], [27, 29], [39, 41], [45, 47]]], [('10110', 5, 2, 0, 0), [[0, 3], [5, 10]]], [('01110000', 2, 1, 0, 3), [[8, 14]]], [('10111010100111', 5, 2, 0, 1), [[3, 5], [8, 15], [18, 20], [23, 25], [30, 38]]], [('11010', 7, 3, 0, 10), [[23, 28], [30, 33]]], [('1000010110000', 7, 3, 0, 1), [[2, 5], [14, 16], [19, 23]]], [('00101011101', 7, 3, 1, 10), [[28, 29], [33, 34], [37, 43], [47, 48]]]], [[('011111', 2, 1, 2, 3), [[8, 16]]], [('1000110111010', 2, 1, 1, 1), [[2, 3], [10, 13], [16, 21], [24, 25]]], [('0111110010101', 7, 3, 0, 10), [[26, 37], [42, 44], [47, 49], [51, 54]]], [('1', 5, 2, 0, 3), [[8, 10]]], [('1011111001100', 2, 1, 0, 3), [[6, 8], [10, 20], [24, 28]]], [('010101111001', 2, 1, 0, 0), [[2, 4], [6, 8], [10, 18], [22, 24]]], [('01110011', 5, 2, 0, 10), [[28, 35], [40, 45]]], [('011110111', 9, 4, 1, 10), [[25, 33], [36, 42]]]]]\nlabels = [\"regression: bar width reduction 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-device-pixel-rendering-bwr-side","generated_at":"2026-09-29T14:49:47.533064+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.","root_cause":"The reduction is subtracted from both sides of every bar.","sha256":"b2493c5ef49aadc5185d108a62ddfbbee11d2858aa2e1c7e50842745111708d2","title":"Bar width reduction is applied on both edges · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":40.656,"exit_code":1,"observations":[{"actual":[[28,31]],"check":"regression: bar width reduction side 0","expected":[[28,32]],"passed":false},{"actual":[[7,8],[11,14]],"check":"repair trap 1","expected":[[7,8],[11,15]],"passed":false},{"actual":[[8,16]],"check":"combined fault 2","expected":[[8,16]],"passed":true},{"actual":[[5,6],[7,8]],"check":"control 3","expected":[[5,6],[7,8]],"passed":true},{"actual":[[0,2],[4,9],[13,15],[18,20]],"check":"control 4","expected":[[0,2],[4,9],[13,15],[18,20]],"passed":true},{"actual":[[6,9],[12,15]],"check":"boundary 5","expected":[[6,9],[12,15]],"passed":true},{"actual":[[2,5],[12,23]],"check":"boundary 6","expected":[[2,5],[12,23]],"passed":true},{"actual":[[2,3],[7,14]],"check":"control 7","expected":[[2,3],[7,16]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: bar width reduction side 0\", \"actual\": [[28, 31]], \"expected\": [[28, 32]], \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": [[7, 8], [11, 14]], \"expected\": [[7, 8], [11, 15]], \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": [[8, 16]], \"expected\": [[8, 16]], \"passed\": true}, {\"check\": \"control 3\", \"actual\": [[5, 6], [7, 8]], \"expected\": [[5, 6], [7, 8]], \"passed\": true}, {\"check\": \"control 4\", \"actual\": [[0, 2], [4, 9], [13, 15], [18, 20]], \"expected\": [[0, 2], [4, 9], [13, 15], [18, 20]], \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": [[6, 9], [12, 15]], \"expected\": [[6, 9], [12, 15]], \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": [[2, 5], [12, 23]], \"expected\": [[2, 5], [12, 23]], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [[2, 3], [7, 14]], \"expected\": [[2, 3], [7, 16]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.293,"exit_code":1,"observations":[{"actual":[[29,32]],"check":"regression: bar width reduction side 0","expected":[[28,32]],"passed":false},{"actual":[[8,9],[12,15]],"check":"repair trap 1","expected":[[7,8],[11,15]],"passed":false},{"actual":[[8,16]],"check":"combined fault 2","expected":[[8,16]],"passed":true},{"actual":[[5,6],[7,8]],"check":"control 3","expected":[[5,6],[7,8]],"passed":true},{"actual":[[0,2],[4,9],[13,15],[18,20]],"check":"control 4","expected":[[0,2],[4,9],[13,15],[18,20]],"passed":true},{"actual":[[6,9],[12,15]],"check":"boundary 5","expected":[[6,9],[12,15]],"passed":true},{"actual":[[2,5],[12,23]],"check":"boundary 6","expected":[[2,5],[12,23]],"passed":true},{"actual":[[4,5],[9,16]],"check":"control 7","expected":[[2,3],[7,16]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: bar width reduction side 0\", \"actual\": [[29, 32]], \"expected\": [[28, 32]], \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": [[8, 9], [12, 15]], \"expected\": [[7, 8], [11, 15]], \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": [[8, 16]], \"expected\": [[8, 16]], \"passed\": true}, {\"check\": \"control 3\", \"actual\": [[5, 6], [7, 8]], \"expected\": [[5, 6], [7, 8]], \"passed\": true}, {\"check\": \"control 4\", \"actual\": [[0, 2], [4, 9], [13, 15], [18, 20]], \"expected\": [[0, 2], [4, 9], [13, 15], [18, 20]], \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": [[6, 9], [12, 15]], \"expected\": [[6, 9], [12, 15]], \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": [[2, 5], [12, 23]], \"expected\": [[2, 5], [12, 23]], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [[4, 5], [9, 16]], \"expected\": [[2, 3], [7, 16]], \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}