FA-79821 / Barcode symbology encoding / Open access
Pharmacode accepts a seventeen-bar value · case 01
Value 131071 produces 17 narrow bars that exceed the symbol definition.
ROOT CAUSE
The upper bound allows 131071.
VERIFIED REPAIR
Accept values up to 131070.
Unsuccessful approach: A 16-bit bound rejects valid values between 65536 and 131070.
Case contract
Encode an integer 3..131070 as a one-track Pharmacode: repeatedly, an even value adds a wide bar and becomes (n - 2) / 2, an odd value adds a narrow bar and becomes (n - 1) / 2, until zero; bars are read in the reverse order of generation (left to right). Width: narrow 1, wide 3, spaces 2 between bars. Return [pattern, width] or None outside the range.
Why this case matters
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.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(n):
if not isinstance(n, int) or n < 3 or n > 131071:
return None
bars = []
while n > 0:
if n % 2 == 0:
bars.append('w')
n = (n - 2) // 2
else:
bars.append('n')
n = (n - 1) // 2
bars.reverse()
width = sum(3 if b == 'w' else 1 for b in bars) + 2 * (len(bars) - 1)
return [''.join(bars), width]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[[131071, None], [88037, ['nwnwnwwwwwwnnwwn', 66]], [34, ['nnnww', 17]], [306, ['nnwwnnww', 30]], [371, ['nwwwnwnn', 30]], [120, ['wwwnnw', 24]], [98, ['wnnnww', 22]], [124778, ['wwwnnwwwnwwnwnww', 68]]], [[131071, None], [96385, ['nwwwwnnnwnnnnnwn', 58]], [6, ['ww', 8]], [85, ['nwnwwn', 22]], [155, ['nnwwwnn', 25]], [306, ['nnwwnnww', 30]], [201, ['wnnwnwn', 25]], [106660, ['wnwnnnnnwnwnnwnw', 58]]], [[131071, None], [93303, ['nwwnwwnnnwwwwnnn', 62]], [142, ['nnnwwww', 27]], [335, ['nwnwnnnn', 26]], [232, ['wwnwnnw', 27]], [397, ['wnnnwwwn', 30]], [147, ['nnwnwnn', 23]], [130692, ['wwwwwwwnwnnnnwnw', 66]]], [[131071, None], [80722, ['nnwwwnwwnwnwnnww', 64]], [229, ['wwnnwwn', 27]], [157, ['nnwwwwn', 27]], [19, ['nwnn', 12]], [27, ['wwnn', 14]], [36, ['nnwnw', 17]], [72515, ['nnnwwnwwnwnnnwnn', 58]]], [[131071, None], [98004, ['nwwwwwwnwwnwnwnw', 68]], [157, ['nnwwwwn', 27]], [228, ['wwnnwnw', 27]], [361, ['nwwnwnwn', 30]], [153, ['nnwwnwn', 25]], [326, ['nwnnnwww', 30]], [84211, ['nwnnwnnnwwwwnwnn', 60]]]]
labels = ["regression: maximum encodable value", "repair trap", "combined fault", "control", "control", "boundary", "boundary", "control"]
for i, (args, expected) in enumerate(fixtures[N-1]):
check("%s %d" % (labels[i % len(labels)], i), solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: maximum encodable value 0 | ['nnnnnnnnnnnnnnnnn', 49] | None | Failed |
| repair trap 1 | ['nwnwnwwwwwwnnwwn', 66] | ['nwnwnwwwwwwnnwwn', 66] | Passed |
| combined fault 2 | ['nnnww', 17] | ['nnnww', 17] | Passed |
| control 3 | ['nnwwnnww', 30] | ['nnwwnnww', 30] | Passed |
| control 4 | ['nwwwnwnn', 30] | ['nwwwnwnn', 30] | Passed |
| boundary 5 | ['wwwnnw', 24] | ['wwwnnw', 24] | Passed |
| boundary 6 | ['wnnnww', 22] | ['wnnnww', 22] | Passed |
| control 7 | ['wwwnnwwwnwwnwnww', 68] | ['wwwnnwwwnwwnwnww', 68] | Passed |
SHA-256 / 7f7795525e68ac935e084db8cd62c93fffad4ebcbcc4c4c72caccd271d38e55c
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(n):
if not isinstance(n, int) or n < 3 or n > 65535:
return None
bars = []
while n > 0:
if n % 2 == 0:
bars.append('w')
n = (n - 2) // 2
else:
bars.append('n')
n = (n - 1) // 2
bars.reverse()
width = sum(3 if b == 'w' else 1 for b in bars) + 2 * (len(bars) - 1)
return [''.join(bars), width]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[[131071, None], [88037, ['nwnwnwwwwwwnnwwn', 66]], [34, ['nnnww', 17]], [306, ['nnwwnnww', 30]], [371, ['nwwwnwnn', 30]], [120, ['wwwnnw', 24]], [98, ['wnnnww', 22]], [124778, ['wwwnnwwwnwwnwnww', 68]]], [[131071, None], [96385, ['nwwwwnnnwnnnnnwn', 58]], [6, ['ww', 8]], [85, ['nwnwwn', 22]], [155, ['nnwwwnn', 25]], [306, ['nnwwnnww', 30]], [201, ['wnnwnwn', 25]], [106660, ['wnwnnnnnwnwnnwnw', 58]]], [[131071, None], [93303, ['nwwnwwnnnwwwwnnn', 62]], [142, ['nnnwwww', 27]], [335, ['nwnwnnnn', 26]], [232, ['wwnwnnw', 27]], [397, ['wnnnwwwn', 30]], [147, ['nnwnwnn', 23]], [130692, ['wwwwwwwnwnnnnwnw', 66]]], [[131071, None], [80722, ['nnwwwnwwnwnwnnww', 64]], [229, ['wwnnwwn', 27]], [157, ['nnwwwwn', 27]], [19, ['nwnn', 12]], [27, ['wwnn', 14]], [36, ['nnwnw', 17]], [72515, ['nnnwwnwwnwnnnwnn', 58]]], [[131071, None], [98004, ['nwwwwwwnwwnwnwnw', 68]], [157, ['nnwwwwn', 27]], [228, ['wwnnwnw', 27]], [361, ['nwwnwnwn', 30]], [153, ['nnwwnwn', 25]], [326, ['nwnnnwww', 30]], [84211, ['nwnnwnnnwwwwnwnn', 60]]]]
labels = ["regression: maximum encodable value", "repair trap", "combined fault", "control", "control", "boundary", "boundary", "control"]
for i, (args, expected) in enumerate(fixtures[N-1]):
check("%s %d" % (labels[i % len(labels)], i), solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: maximum encodable value 0 | None | None | Passed |
| repair trap 1 | None | ['nwnwnwwwwwwnnwwn', 66] | Failed |
| combined fault 2 | ['nnnww', 17] | ['nnnww', 17] | Passed |
| control 3 | ['nnwwnnww', 30] | ['nnwwnnww', 30] | Passed |
| control 4 | ['nwwwnwnn', 30] | ['nwwwnwnn', 30] | Passed |
| boundary 5 | ['wwwnnw', 24] | ['wwwnnw', 24] | Passed |
| boundary 6 | ['wnnnww', 22] | ['wnnnww', 22] | Passed |
| control 7 | None | ['wwwnnwwwnwwnwnww', 68] | Failed |
SHA-256 / 44266b55b1dd990874c64f5e1425e3b0740ed49d89e99dfbf808d832b0f5a6fd
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(n):
if not isinstance(n, int) or n < 3 or n > 131070:
return None
bars = []
while n > 0:
if n % 2 == 0:
bars.append('w')
n = (n - 2) // 2
else:
bars.append('n')
n = (n - 1) // 2
bars.reverse()
width = sum(3 if b == 'w' else 1 for b in bars) + 2 * (len(bars) - 1)
return [''.join(bars), width]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[[131071, None], [88037, ['nwnwnwwwwwwnnwwn', 66]], [34, ['nnnww', 17]], [306, ['nnwwnnww', 30]], [371, ['nwwwnwnn', 30]], [120, ['wwwnnw', 24]], [98, ['wnnnww', 22]], [124778, ['wwwnnwwwnwwnwnww', 68]]], [[131071, None], [96385, ['nwwwwnnnwnnnnnwn', 58]], [6, ['ww', 8]], [85, ['nwnwwn', 22]], [155, ['nnwwwnn', 25]], [306, ['nnwwnnww', 30]], [201, ['wnnwnwn', 25]], [106660, ['wnwnnnnnwnwnnwnw', 58]]], [[131071, None], [93303, ['nwwnwwnnnwwwwnnn', 62]], [142, ['nnnwwww', 27]], [335, ['nwnwnnnn', 26]], [232, ['wwnwnnw', 27]], [397, ['wnnnwwwn', 30]], [147, ['nnwnwnn', 23]], [130692, ['wwwwwwwnwnnnnwnw', 66]]], [[131071, None], [80722, ['nnwwwnwwnwnwnnww', 64]], [229, ['wwnnwwn', 27]], [157, ['nnwwwwn', 27]], [19, ['nwnn', 12]], [27, ['wwnn', 14]], [36, ['nnwnw', 17]], [72515, ['nnnwwnwwnwnnnwnn', 58]]], [[131071, None], [98004, ['nwwwwwwnwwnwnwnw', 68]], [157, ['nnwwwwn', 27]], [228, ['wwnnwnw', 27]], [361, ['nwwnwnwn', 30]], [153, ['nnwwnwn', 25]], [326, ['nwnnnwww', 30]], [84211, ['nwnnwnnnwwwwnwnn', 60]]]]
labels = ["regression: maximum encodable value", "repair trap", "combined fault", "control", "control", "boundary", "boundary", "control"]
for i, (args, expected) in enumerate(fixtures[N-1]):
check("%s %d" % (labels[i % len(labels)], i), solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: maximum encodable value 0 | None | None | Passed |
| repair trap 1 | ['nwnwnwwwwwwnnwwn', 66] | ['nwnwnwwwwwwnnwwn', 66] | Passed |
| combined fault 2 | ['nnnww', 17] | ['nnnww', 17] | Passed |
| control 3 | ['nnwwnnww', 30] | ['nnwwnnww', 30] | Passed |
| control 4 | ['nwwwnwnn', 30] | ['nwwwnwnn', 30] | Passed |
| boundary 5 | ['wwwnnw', 24] | ['wwwnnw', 24] | Passed |
| boundary 6 | ['wnnnww', 22] | ['wnnnww', 22] | Passed |
| control 7 | ['wwwnnwwwnwwnwnww', 68] | ['wwwnnwwwnwwnwnww', 68] | Passed |
SHA-256 / c2845ba3caffaff739487b331b065a3b160b8087c0475cadef5d260a4e0e115f
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:49:48.202191+00:00.
Case digest / 8e55dcaec4a12f71d9ff62b7f7e1bd6d85191fae675304ca78a633229d7c957f