{"abstract":"\"0 FAKE ST\" parses as house number 0.","category":"Postal address normalization","checks":12,"contract":"Uppercase and split the line. The first token must start with digits: the digits form the house number (an int, which must not be 0); an optional single hyphen is dropped and at most one letter may follow as the suffix. If the second token is a/b with b in 2,3,4 and 0 < a < b it is the fraction and is consumed. Return [number, suffix, fraction, rest] or None.","evaluation_group":"w2-postal-address-normalization-house-number","failed_approach":"Comparing the digit text with \"0\" still accepts the padded form \"00\".","family":"w2-postal-address-normalization-house-number-zero-number","id":"FA-96046","implementations":{"attempt":{"sha256":"80b5e1c977b03f2cfdb89beb15579c0ab89803ce9e488ffa5a33a1eaf5635c33","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    t = x.upper().split()\n    if not t:\n        return None\n    head = t[0]\n    i = 0\n    while i < len(head) and head[i].isdigit():\n        i += 1\n    if i == 0:\n        return None\n    number, tail = int(head[:i]), head[i:]\n    if head[:i] == '0':\n        return None\n    if tail.startswith('-'):\n        tail = tail[1:]\n    if len(tail) > 1 or (tail and not tail.isalpha()):\n        return None\n    frac, k = '', 1\n    if len(t) > 1 and t[1].count('/') == 1:\n        a, b = t[1].split('/')\n        if a.isdigit() and b.isdigit() and b in ('2', '3', '4') and 0 < int(a) < int(b):\n            frac, k = t[1], 2\n    return [number, tail, frac, ' '.join(t[k:])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['plain number', '13 FAKE ST', [13, '', '', 'FAKE ST']], ['letter suffix', '13b Fake St', [13, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '13-B FAKE ST', [13, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '13--B FAKE ST', None], ['two-letter suffix rejected', '13AB FAKE ST', None], ['half fraction consumed', '13 1/2 FAKE ST', [13, '', '1/2', 'FAKE ST']], ['third fraction consumed', '13 1/3 FAKE ST', [13, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '13 5/8 FAKE ST', [13, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '13 2/2 FAKE ST', [13, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '13 0/4 FAKE ST', [13, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '23 FAKE ST', [23, '', '', 'FAKE ST']], ['letter suffix', '23b Fake St', [23, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '23-B FAKE ST', [23, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '23--B FAKE ST', None], ['two-letter suffix rejected', '23AB FAKE ST', None], ['half fraction consumed', '23 1/2 FAKE ST', [23, '', '1/2', 'FAKE ST']], ['third fraction consumed', '23 1/3 FAKE ST', [23, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '23 5/8 FAKE ST', [23, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '23 2/2 FAKE ST', [23, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '23 0/4 FAKE ST', [23, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '33 FAKE ST', [33, '', '', 'FAKE ST']], ['letter suffix', '33b Fake St', [33, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '33-B FAKE ST', [33, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '33--B FAKE ST', None], ['two-letter suffix rejected', '33AB FAKE ST', None], ['half fraction consumed', '33 1/2 FAKE ST', [33, '', '1/2', 'FAKE ST']], ['third fraction consumed', '33 1/3 FAKE ST', [33, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '33 5/8 FAKE ST', [33, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '33 2/2 FAKE ST', [33, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '33 0/4 FAKE ST', [33, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '43 FAKE ST', [43, '', '', 'FAKE ST']], ['letter suffix', '43b Fake St', [43, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '43-B FAKE ST', [43, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '43--B FAKE ST', None], ['two-letter suffix rejected', '43AB FAKE ST', None], ['half fraction consumed', '43 1/2 FAKE ST', [43, '', '1/2', 'FAKE ST']], ['third fraction consumed', '43 1/3 FAKE ST', [43, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '43 5/8 FAKE ST', [43, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '43 2/2 FAKE ST', [43, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '43 0/4 FAKE ST', [43, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '53 FAKE ST', [53, '', '', 'FAKE ST']], ['letter suffix', '53b Fake St', [53, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '53-B FAKE ST', [53, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '53--B FAKE ST', None], ['two-letter suffix rejected', '53AB FAKE ST', None], ['half fraction consumed', '53 1/2 FAKE ST', [53, '', '1/2', 'FAKE ST']], ['third fraction consumed', '53 1/3 FAKE ST', [53, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '53 5/8 FAKE ST', [53, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '53 2/2 FAKE ST', [53, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '53 0/4 FAKE ST', [53, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]]]\nfor label, arg, expected in fixtures[N - 1]:\n    check(label, solve(arg), 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":"665028f5d8b20c760c91e5e37d094c814c67676c53caaa1deda2d0b878407f29","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    t = x.upper().split()\n    if not t:\n        return None\n    head = t[0]\n    i = 0\n    while i < len(head) and head[i].isdigit():\n        i += 1\n    if i == 0:\n        return None\n    number, tail = int(head[:i]), head[i:]\n    if tail.startswith('-'):\n        tail = tail[1:]\n    if len(tail) > 1 or (tail and not tail.isalpha()):\n        return None\n    frac, k = '', 1\n    if len(t) > 1 and t[1].count('/') == 1:\n        a, b = t[1].split('/')\n        if a.isdigit() and b.isdigit() and b in ('2', '3', '4') and 0 < int(a) < int(b):\n            frac, k = t[1], 2\n    return [number, tail, frac, ' '.join(t[k:])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['plain number', '13 FAKE ST', [13, '', '', 'FAKE ST']], ['letter suffix', '13b Fake St', [13, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '13-B FAKE ST', [13, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '13--B FAKE ST', None], ['two-letter suffix rejected', '13AB FAKE ST', None], ['half fraction consumed', '13 1/2 FAKE ST', [13, '', '1/2', 'FAKE ST']], ['third fraction consumed', '13 1/3 FAKE ST', [13, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '13 5/8 FAKE ST', [13, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '13 2/2 FAKE ST', [13, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '13 0/4 FAKE ST', [13, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '23 FAKE ST', [23, '', '', 'FAKE ST']], ['letter suffix', '23b Fake St', [23, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '23-B FAKE ST', [23, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '23--B FAKE ST', None], ['two-letter suffix rejected', '23AB FAKE ST', None], ['half fraction consumed', '23 1/2 FAKE ST', [23, '', '1/2', 'FAKE ST']], ['third fraction consumed', '23 1/3 FAKE ST', [23, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '23 5/8 FAKE ST', [23, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '23 2/2 FAKE ST', [23, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '23 0/4 FAKE ST', [23, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '33 FAKE ST', [33, '', '', 'FAKE ST']], ['letter suffix', '33b Fake St', [33, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '33-B FAKE ST', [33, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '33--B FAKE ST', None], ['two-letter suffix rejected', '33AB FAKE ST', None], ['half fraction consumed', '33 1/2 FAKE ST', [33, '', '1/2', 'FAKE ST']], ['third fraction consumed', '33 1/3 FAKE ST', [33, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '33 5/8 FAKE ST', [33, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '33 2/2 FAKE ST', [33, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '33 0/4 FAKE ST', [33, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '43 FAKE ST', [43, '', '', 'FAKE ST']], ['letter suffix', '43b Fake St', [43, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '43-B FAKE ST', [43, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '43--B FAKE ST', None], ['two-letter suffix rejected', '43AB FAKE ST', None], ['half fraction consumed', '43 1/2 FAKE ST', [43, '', '1/2', 'FAKE ST']], ['third fraction consumed', '43 1/3 FAKE ST', [43, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '43 5/8 FAKE ST', [43, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '43 2/2 FAKE ST', [43, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '43 0/4 FAKE ST', [43, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '53 FAKE ST', [53, '', '', 'FAKE ST']], ['letter suffix', '53b Fake St', [53, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '53-B FAKE ST', [53, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '53--B FAKE ST', None], ['two-letter suffix rejected', '53AB FAKE ST', None], ['half fraction consumed', '53 1/2 FAKE ST', [53, '', '1/2', 'FAKE ST']], ['third fraction consumed', '53 1/3 FAKE ST', [53, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '53 5/8 FAKE ST', [53, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '53 2/2 FAKE ST', [53, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '53 0/4 FAKE ST', [53, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]]]\nfor label, arg, expected in fixtures[N - 1]:\n    check(label, solve(arg), 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":"eaed61f9a53eeba73422981afcd5e065a0cdb1b01ff4621bb02f09bd98753c2c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    t = x.upper().split()\n    if not t:\n        return None\n    head = t[0]\n    i = 0\n    while i < len(head) and head[i].isdigit():\n        i += 1\n    if i == 0:\n        return None\n    number, tail = int(head[:i]), head[i:]\n    if number == 0:\n        return None\n    if tail.startswith('-'):\n        tail = tail[1:]\n    if len(tail) > 1 or (tail and not tail.isalpha()):\n        return None\n    frac, k = '', 1\n    if len(t) > 1 and t[1].count('/') == 1:\n        a, b = t[1].split('/')\n        if a.isdigit() and b.isdigit() and b in ('2', '3', '4') and 0 < int(a) < int(b):\n            frac, k = t[1], 2\n    return [number, tail, frac, ' '.join(t[k:])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['plain number', '13 FAKE ST', [13, '', '', 'FAKE ST']], ['letter suffix', '13b Fake St', [13, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '13-B FAKE ST', [13, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '13--B FAKE ST', None], ['two-letter suffix rejected', '13AB FAKE ST', None], ['half fraction consumed', '13 1/2 FAKE ST', [13, '', '1/2', 'FAKE ST']], ['third fraction consumed', '13 1/3 FAKE ST', [13, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '13 5/8 FAKE ST', [13, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '13 2/2 FAKE ST', [13, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '13 0/4 FAKE ST', [13, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '23 FAKE ST', [23, '', '', 'FAKE ST']], ['letter suffix', '23b Fake St', [23, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '23-B FAKE ST', [23, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '23--B FAKE ST', None], ['two-letter suffix rejected', '23AB FAKE ST', None], ['half fraction consumed', '23 1/2 FAKE ST', [23, '', '1/2', 'FAKE ST']], ['third fraction consumed', '23 1/3 FAKE ST', [23, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '23 5/8 FAKE ST', [23, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '23 2/2 FAKE ST', [23, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '23 0/4 FAKE ST', [23, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '33 FAKE ST', [33, '', '', 'FAKE ST']], ['letter suffix', '33b Fake St', [33, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '33-B FAKE ST', [33, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '33--B FAKE ST', None], ['two-letter suffix rejected', '33AB FAKE ST', None], ['half fraction consumed', '33 1/2 FAKE ST', [33, '', '1/2', 'FAKE ST']], ['third fraction consumed', '33 1/3 FAKE ST', [33, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '33 5/8 FAKE ST', [33, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '33 2/2 FAKE ST', [33, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '33 0/4 FAKE ST', [33, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '43 FAKE ST', [43, '', '', 'FAKE ST']], ['letter suffix', '43b Fake St', [43, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '43-B FAKE ST', [43, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '43--B FAKE ST', None], ['two-letter suffix rejected', '43AB FAKE ST', None], ['half fraction consumed', '43 1/2 FAKE ST', [43, '', '1/2', 'FAKE ST']], ['third fraction consumed', '43 1/3 FAKE ST', [43, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '43 5/8 FAKE ST', [43, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '43 2/2 FAKE ST', [43, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '43 0/4 FAKE ST', [43, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]], [['plain number', '53 FAKE ST', [53, '', '', 'FAKE ST']], ['letter suffix', '53b Fake St', [53, 'B', '', 'FAKE ST']], ['hyphenated letter suffix', '53-B FAKE ST', [53, 'B', '', 'FAKE ST']], ['doubled hyphen is malformed', '53--B FAKE ST', None], ['two-letter suffix rejected', '53AB FAKE ST', None], ['half fraction consumed', '53 1/2 FAKE ST', [53, '', '1/2', 'FAKE ST']], ['third fraction consumed', '53 1/3 FAKE ST', [53, '', '1/3', 'FAKE ST']], ['eighths are not house fractions', '53 5/8 FAKE ST', [53, '', '', '5/8 FAKE ST']], ['improper fraction stays in the street', '53 2/2 FAKE ST', [53, '', '', '2/2 FAKE ST']], ['zero numerator stays in the street', '53 0/4 FAKE ST', [53, '', '', '0/4 FAKE ST']], ['house number zero rejected', '0 FAKE ST', None], ['padded zero rejected', '00 FAKE ST', None]]]\nfor label, arg, expected in fixtures[N - 1]:\n    check(label, solve(arg), 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 toy contract over synthetic, obviously fictitious addresses. The rules are stipulated for this model only and make no claim of conformance with any postal authority standard. 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-postal-address-normalization-house-number-zero-number","generated_at":"2026-09-29T14:52:19.241905+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"House-number parsing decides the delivery point; fractions and suffixes distinguish separate dwellings on one lot.","repair":"Reject the line when the parsed number equals zero.","root_cause":"There is no check that the numeric value is non-zero.","sha256":"4b4d8a4d85a43ef1ba5a09b37780260c6fa15b230092e74ae7c6364eeff14e77","title":"House number parser: house number zero is accepted · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.944,"exit_code":1,"observations":[{"actual":[13,"","","FAKE ST"],"check":"plain number","expected":[13,"","","FAKE ST"],"passed":true},{"actual":[13,"B","","FAKE ST"],"check":"letter suffix","expected":[13,"B","","FAKE ST"],"passed":true},{"actual":[13,"B","","FAKE ST"],"check":"hyphenated letter suffix","expected":[13,"B","","FAKE ST"],"passed":true},{"actual":null,"check":"doubled hyphen is malformed","expected":null,"passed":true},{"actual":null,"check":"two-letter suffix rejected","expected":null,"passed":true},{"actual":[13,"","1/2","FAKE ST"],"check":"half fraction consumed","expected":[13,"","1/2","FAKE ST"],"passed":true},{"actual":[13,"","1/3","FAKE ST"],"check":"third fraction consumed","expected":[13,"","1/3","FAKE ST"],"passed":true},{"actual":[13,"","","5/8 FAKE ST"],"check":"eighths are not house fractions","expected":[13,"","","5/8 FAKE ST"],"passed":true},{"actual":[13,"","","2/2 FAKE ST"],"check":"improper fraction stays in the street","expected":[13,"","","2/2 FAKE ST"],"passed":true},{"actual":[13,"","","0/4 FAKE ST"],"check":"zero numerator stays in the street","expected":[13,"","","0/4 FAKE ST"],"passed":true},{"actual":null,"check":"house number zero rejected","expected":null,"passed":true},{"actual":[0,"","","FAKE ST"],"check":"padded zero rejected","expected":null,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"plain number\", \"actual\": [13, \"\", \"\", \"FAKE ST\"], \"expected\": [13, \"\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"letter suffix\", \"actual\": [13, \"B\", \"\", \"FAKE ST\"], \"expected\": [13, \"B\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"hyphenated letter suffix\", \"actual\": [13, \"B\", \"\", \"FAKE ST\"], \"expected\": [13, \"B\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"doubled hyphen is malformed\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"two-letter suffix rejected\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"half fraction consumed\", \"actual\": [13, \"\", \"1/2\", \"FAKE ST\"], \"expected\": [13, \"\", \"1/2\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"third fraction consumed\", \"actual\": [13, \"\", \"1/3\", \"FAKE ST\"], \"expected\": [13, \"\", \"1/3\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"eighths are not house fractions\", \"actual\": [13, \"\", \"\", \"5/8 FAKE ST\"], \"expected\": [13, \"\", \"\", \"5/8 FAKE ST\"], \"passed\": true}, {\"check\": \"improper fraction stays in the street\", \"actual\": [13, \"\", \"\", \"2/2 FAKE ST\"], \"expected\": [13, \"\", \"\", \"2/2 FAKE ST\"], \"passed\": true}, {\"check\": \"zero numerator stays in the street\", \"actual\": [13, \"\", \"\", \"0/4 FAKE ST\"], \"expected\": [13, \"\", \"\", \"0/4 FAKE ST\"], \"passed\": true}, {\"check\": \"house number zero rejected\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"padded zero rejected\", \"actual\": [0, \"\", \"\", \"FAKE ST\"], \"expected\": null, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.207,"exit_code":1,"observations":[{"actual":[13,"","","FAKE ST"],"check":"plain number","expected":[13,"","","FAKE ST"],"passed":true},{"actual":[13,"B","","FAKE ST"],"check":"letter suffix","expected":[13,"B","","FAKE ST"],"passed":true},{"actual":[13,"B","","FAKE ST"],"check":"hyphenated letter suffix","expected":[13,"B","","FAKE ST"],"passed":true},{"actual":null,"check":"doubled hyphen is malformed","expected":null,"passed":true},{"actual":null,"check":"two-letter suffix rejected","expected":null,"passed":true},{"actual":[13,"","1/2","FAKE ST"],"check":"half fraction consumed","expected":[13,"","1/2","FAKE ST"],"passed":true},{"actual":[13,"","1/3","FAKE ST"],"check":"third fraction consumed","expected":[13,"","1/3","FAKE ST"],"passed":true},{"actual":[13,"","","5/8 FAKE ST"],"check":"eighths are not house fractions","expected":[13,"","","5/8 FAKE ST"],"passed":true},{"actual":[13,"","","2/2 FAKE ST"],"check":"improper fraction stays in the street","expected":[13,"","","2/2 FAKE ST"],"passed":true},{"actual":[13,"","","0/4 FAKE ST"],"check":"zero numerator stays in the street","expected":[13,"","","0/4 FAKE ST"],"passed":true},{"actual":[0,"","","FAKE ST"],"check":"house number zero rejected","expected":null,"passed":false},{"actual":[0,"","","FAKE ST"],"check":"padded zero rejected","expected":null,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"plain number\", \"actual\": [13, \"\", \"\", \"FAKE ST\"], \"expected\": [13, \"\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"letter suffix\", \"actual\": [13, \"B\", \"\", \"FAKE ST\"], \"expected\": [13, \"B\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"hyphenated letter suffix\", \"actual\": [13, \"B\", \"\", \"FAKE ST\"], \"expected\": [13, \"B\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"doubled hyphen is malformed\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"two-letter suffix rejected\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"half fraction consumed\", \"actual\": [13, \"\", \"1/2\", \"FAKE ST\"], \"expected\": [13, \"\", \"1/2\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"third fraction consumed\", \"actual\": [13, \"\", \"1/3\", \"FAKE ST\"], \"expected\": [13, \"\", \"1/3\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"eighths are not house fractions\", \"actual\": [13, \"\", \"\", \"5/8 FAKE ST\"], \"expected\": [13, \"\", \"\", \"5/8 FAKE ST\"], \"passed\": true}, {\"check\": \"improper fraction stays in the street\", \"actual\": [13, \"\", \"\", \"2/2 FAKE ST\"], \"expected\": [13, \"\", \"\", \"2/2 FAKE ST\"], \"passed\": true}, {\"check\": \"zero numerator stays in the street\", \"actual\": [13, \"\", \"\", \"0/4 FAKE ST\"], \"expected\": [13, \"\", \"\", \"0/4 FAKE ST\"], \"passed\": true}, {\"check\": \"house number zero rejected\", \"actual\": [0, \"\", \"\", \"FAKE ST\"], \"expected\": null, \"passed\": false}, {\"check\": \"padded zero rejected\", \"actual\": [0, \"\", \"\", \"FAKE ST\"], \"expected\": null, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.784,"exit_code":0,"observations":[{"actual":[13,"","","FAKE ST"],"check":"plain number","expected":[13,"","","FAKE ST"],"passed":true},{"actual":[13,"B","","FAKE ST"],"check":"letter suffix","expected":[13,"B","","FAKE ST"],"passed":true},{"actual":[13,"B","","FAKE ST"],"check":"hyphenated letter suffix","expected":[13,"B","","FAKE ST"],"passed":true},{"actual":null,"check":"doubled hyphen is malformed","expected":null,"passed":true},{"actual":null,"check":"two-letter suffix rejected","expected":null,"passed":true},{"actual":[13,"","1/2","FAKE ST"],"check":"half fraction consumed","expected":[13,"","1/2","FAKE ST"],"passed":true},{"actual":[13,"","1/3","FAKE ST"],"check":"third fraction consumed","expected":[13,"","1/3","FAKE ST"],"passed":true},{"actual":[13,"","","5/8 FAKE ST"],"check":"eighths are not house fractions","expected":[13,"","","5/8 FAKE ST"],"passed":true},{"actual":[13,"","","2/2 FAKE ST"],"check":"improper fraction stays in the street","expected":[13,"","","2/2 FAKE ST"],"passed":true},{"actual":[13,"","","0/4 FAKE ST"],"check":"zero numerator stays in the street","expected":[13,"","","0/4 FAKE ST"],"passed":true},{"actual":null,"check":"house number zero rejected","expected":null,"passed":true},{"actual":null,"check":"padded zero rejected","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"plain number\", \"actual\": [13, \"\", \"\", \"FAKE ST\"], \"expected\": [13, \"\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"letter suffix\", \"actual\": [13, \"B\", \"\", \"FAKE ST\"], \"expected\": [13, \"B\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"hyphenated letter suffix\", \"actual\": [13, \"B\", \"\", \"FAKE ST\"], \"expected\": [13, \"B\", \"\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"doubled hyphen is malformed\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"two-letter suffix rejected\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"half fraction consumed\", \"actual\": [13, \"\", \"1/2\", \"FAKE ST\"], \"expected\": [13, \"\", \"1/2\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"third fraction consumed\", \"actual\": [13, \"\", \"1/3\", \"FAKE ST\"], \"expected\": [13, \"\", \"1/3\", \"FAKE ST\"], \"passed\": true}, {\"check\": \"eighths are not house fractions\", \"actual\": [13, \"\", \"\", \"5/8 FAKE ST\"], \"expected\": [13, \"\", \"\", \"5/8 FAKE ST\"], \"passed\": true}, {\"check\": \"improper fraction stays in the street\", \"actual\": [13, \"\", \"\", \"2/2 FAKE ST\"], \"expected\": [13, \"\", \"\", \"2/2 FAKE ST\"], \"passed\": true}, {\"check\": \"zero numerator stays in the street\", \"actual\": [13, \"\", \"\", \"0/4 FAKE ST\"], \"expected\": [13, \"\", \"\", \"0/4 FAKE ST\"], \"passed\": true}, {\"check\": \"house number zero rejected\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"padded zero rejected\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}