{"abstract":"\"NEW FAKETOWN HEIGHTS\" becomes \"HEIGHTS\".","category":"Postal address normalization","checks":10,"contract":"Uppercase, turn commas into spaces and split. If the last token is 5 digits or 5 digits, hyphen, 4 digits it is the code and is removed. The new last token must be a state in the toy table (ZZ, QX, XJ or the spelled names ZEDLAND, QUIXOTA, XANJOR mapping to them) and at least one city token must precede it. Return [city, state code, postal code or \"\"] or None.","evaluation_group":"w2-postal-address-normalization-last-line","failed_approach":"Joining without separators produces \"NEWFAKETOWNHEIGHTS\".","family":"w2-postal-address-normalization-last-line-city-join","id":"FA-96106","implementations":{"attempt":{"sha256":"d801065c3f71e4c37e3fa8477501535822657577abeca7924bd51c6bc7fb2820","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    STATES = {'ZZ': 'ZZ', 'QX': 'QX', 'XJ': 'XJ', 'ZEDLAND': 'ZZ', 'QUIXOTA': 'QX', 'XANJOR': 'XJ'}\n    t = x.upper().replace(',', ' ').split()\n    code = ''\n    if t and (len(t[-1]) == 5 or (len(t[-1]) == 10 and t[-1][5] == '-')) and t[-1].replace('-', '').isdigit():\n        code = t.pop()\n    if len(t) < 2 or t[-1] not in STATES:\n        return None\n    state = STATES[t.pop()]\n    return [''.join(t), state, code]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['comma and space', 'Faketown, ZZ 11101', ['FAKETOWN', 'ZZ', '11101']], ['comma without space', 'FAKETOWN,ZZ 11101', ['FAKETOWN', 'ZZ', '11101']], ['multi-word city with plus-four', 'New Faketown Heights, Qx 11101-1214', ['NEW FAKETOWN HEIGHTS', 'QX', '11101-1214']], ['spelled state without code', 'FAKETOWN Zedland', ['FAKETOWN', 'ZZ', '']], ['missing city', 'ZZ 11101', None], ['ten bare digits are not a code', 'FAKETOWN ZZ 1110112345', None], ['short plus-four is not a code', 'FAKETOWN ZZ 11101-6', None], ['six digits are not a code', 'FAKETOWN XJ 111019', None], ['nine bare digits are not a code', 'FAKETOWN XJ 111011234', None], ['unknown state', 'FAKETOWN YY 11101', None]], [['comma and space', 'Nowhereville, ZZ 22202', ['NOWHEREVILLE', 'ZZ', '22202']], ['comma without space', 'NOWHEREVILLE,ZZ 22202', ['NOWHEREVILLE', 'ZZ', '22202']], ['multi-word city with plus-four', 'New Nowhereville Heights, Qx 22202-1224', ['NEW NOWHEREVILLE HEIGHTS', 'QX', '22202-1224']], ['spelled state without code', 'NOWHEREVILLE Zedland', ['NOWHEREVILLE', 'ZZ', '']], ['missing city', 'ZZ 22202', None], ['ten bare digits are not a code', 'NOWHEREVILLE ZZ 2220212345', None], ['short plus-four is not a code', 'NOWHEREVILLE ZZ 22202-6', None], ['six digits are not a code', 'NOWHEREVILLE XJ 222029', None], ['nine bare digits are not a code', 'NOWHEREVILLE XJ 222022234', None], ['unknown state', 'NOWHEREVILLE YY 22202', None]], [['comma and space', 'Zorbleton, ZZ 33303', ['ZORBLETON', 'ZZ', '33303']], ['comma without space', 'ZORBLETON,ZZ 33303', ['ZORBLETON', 'ZZ', '33303']], ['multi-word city with plus-four', 'New Zorbleton Heights, Qx 33303-1234', ['NEW ZORBLETON HEIGHTS', 'QX', '33303-1234']], ['spelled state without code', 'ZORBLETON Zedland', ['ZORBLETON', 'ZZ', '']], ['missing city', 'ZZ 33303', None], ['ten bare digits are not a code', 'ZORBLETON ZZ 3330312345', None], ['short plus-four is not a code', 'ZORBLETON ZZ 33303-6', None], ['six digits are not a code', 'ZORBLETON XJ 333039', None], ['nine bare digits are not a code', 'ZORBLETON XJ 333033234', None], ['unknown state', 'ZORBLETON YY 33303', None]], [['comma and space', 'Quillby, ZZ 44404', ['QUILLBY', 'ZZ', '44404']], ['comma without space', 'QUILLBY,ZZ 44404', ['QUILLBY', 'ZZ', '44404']], ['multi-word city with plus-four', 'New Quillby Heights, Qx 44404-1244', ['NEW QUILLBY HEIGHTS', 'QX', '44404-1244']], ['spelled state without code', 'QUILLBY Zedland', ['QUILLBY', 'ZZ', '']], ['missing city', 'ZZ 44404', None], ['ten bare digits are not a code', 'QUILLBY ZZ 4440412345', None], ['short plus-four is not a code', 'QUILLBY ZZ 44404-6', None], ['six digits are not a code', 'QUILLBY XJ 444049', None], ['nine bare digits are not a code', 'QUILLBY XJ 444044234', None], ['unknown state', 'QUILLBY YY 44404', None]], [['comma and space', 'Spraxham, ZZ 55505', ['SPRAXHAM', 'ZZ', '55505']], ['comma without space', 'SPRAXHAM,ZZ 55505', ['SPRAXHAM', 'ZZ', '55505']], ['multi-word city with plus-four', 'New Spraxham Heights, Qx 55505-1254', ['NEW SPRAXHAM HEIGHTS', 'QX', '55505-1254']], ['spelled state without code', 'SPRAXHAM Zedland', ['SPRAXHAM', 'ZZ', '']], ['missing city', 'ZZ 55505', None], ['ten bare digits are not a code', 'SPRAXHAM ZZ 5550512345', None], ['short plus-four is not a code', 'SPRAXHAM ZZ 55505-6', None], ['six digits are not a code', 'SPRAXHAM XJ 555059', None], ['nine bare digits are not a code', 'SPRAXHAM XJ 555055234', None], ['unknown state', 'SPRAXHAM YY 55505', 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":"6e6521d957953b2e36aecdc55e771ef1f8461adf95e1995715efa125564a5b41","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    STATES = {'ZZ': 'ZZ', 'QX': 'QX', 'XJ': 'XJ', 'ZEDLAND': 'ZZ', 'QUIXOTA': 'QX', 'XANJOR': 'XJ'}\n    t = x.upper().replace(',', ' ').split()\n    code = ''\n    if t and (len(t[-1]) == 5 or (len(t[-1]) == 10 and t[-1][5] == '-')) and t[-1].replace('-', '').isdigit():\n        code = t.pop()\n    if len(t) < 2 or t[-1] not in STATES:\n        return None\n    state = STATES[t.pop()]\n    return [t[-1], state, code]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['comma and space', 'Faketown, ZZ 11101', ['FAKETOWN', 'ZZ', '11101']], ['comma without space', 'FAKETOWN,ZZ 11101', ['FAKETOWN', 'ZZ', '11101']], ['multi-word city with plus-four', 'New Faketown Heights, Qx 11101-1214', ['NEW FAKETOWN HEIGHTS', 'QX', '11101-1214']], ['spelled state without code', 'FAKETOWN Zedland', ['FAKETOWN', 'ZZ', '']], ['missing city', 'ZZ 11101', None], ['ten bare digits are not a code', 'FAKETOWN ZZ 1110112345', None], ['short plus-four is not a code', 'FAKETOWN ZZ 11101-6', None], ['six digits are not a code', 'FAKETOWN XJ 111019', None], ['nine bare digits are not a code', 'FAKETOWN XJ 111011234', None], ['unknown state', 'FAKETOWN YY 11101', None]], [['comma and space', 'Nowhereville, ZZ 22202', ['NOWHEREVILLE', 'ZZ', '22202']], ['comma without space', 'NOWHEREVILLE,ZZ 22202', ['NOWHEREVILLE', 'ZZ', '22202']], ['multi-word city with plus-four', 'New Nowhereville Heights, Qx 22202-1224', ['NEW NOWHEREVILLE HEIGHTS', 'QX', '22202-1224']], ['spelled state without code', 'NOWHEREVILLE Zedland', ['NOWHEREVILLE', 'ZZ', '']], ['missing city', 'ZZ 22202', None], ['ten bare digits are not a code', 'NOWHEREVILLE ZZ 2220212345', None], ['short plus-four is not a code', 'NOWHEREVILLE ZZ 22202-6', None], ['six digits are not a code', 'NOWHEREVILLE XJ 222029', None], ['nine bare digits are not a code', 'NOWHEREVILLE XJ 222022234', None], ['unknown state', 'NOWHEREVILLE YY 22202', None]], [['comma and space', 'Zorbleton, ZZ 33303', ['ZORBLETON', 'ZZ', '33303']], ['comma without space', 'ZORBLETON,ZZ 33303', ['ZORBLETON', 'ZZ', '33303']], ['multi-word city with plus-four', 'New Zorbleton Heights, Qx 33303-1234', ['NEW ZORBLETON HEIGHTS', 'QX', '33303-1234']], ['spelled state without code', 'ZORBLETON Zedland', ['ZORBLETON', 'ZZ', '']], ['missing city', 'ZZ 33303', None], ['ten bare digits are not a code', 'ZORBLETON ZZ 3330312345', None], ['short plus-four is not a code', 'ZORBLETON ZZ 33303-6', None], ['six digits are not a code', 'ZORBLETON XJ 333039', None], ['nine bare digits are not a code', 'ZORBLETON XJ 333033234', None], ['unknown state', 'ZORBLETON YY 33303', None]], [['comma and space', 'Quillby, ZZ 44404', ['QUILLBY', 'ZZ', '44404']], ['comma without space', 'QUILLBY,ZZ 44404', ['QUILLBY', 'ZZ', '44404']], ['multi-word city with plus-four', 'New Quillby Heights, Qx 44404-1244', ['NEW QUILLBY HEIGHTS', 'QX', '44404-1244']], ['spelled state without code', 'QUILLBY Zedland', ['QUILLBY', 'ZZ', '']], ['missing city', 'ZZ 44404', None], ['ten bare digits are not a code', 'QUILLBY ZZ 4440412345', None], ['short plus-four is not a code', 'QUILLBY ZZ 44404-6', None], ['six digits are not a code', 'QUILLBY XJ 444049', None], ['nine bare digits are not a code', 'QUILLBY XJ 444044234', None], ['unknown state', 'QUILLBY YY 44404', None]], [['comma and space', 'Spraxham, ZZ 55505', ['SPRAXHAM', 'ZZ', '55505']], ['comma without space', 'SPRAXHAM,ZZ 55505', ['SPRAXHAM', 'ZZ', '55505']], ['multi-word city with plus-four', 'New Spraxham Heights, Qx 55505-1254', ['NEW SPRAXHAM HEIGHTS', 'QX', '55505-1254']], ['spelled state without code', 'SPRAXHAM Zedland', ['SPRAXHAM', 'ZZ', '']], ['missing city', 'ZZ 55505', None], ['ten bare digits are not a code', 'SPRAXHAM ZZ 5550512345', None], ['short plus-four is not a code', 'SPRAXHAM ZZ 55505-6', None], ['six digits are not a code', 'SPRAXHAM XJ 555059', None], ['nine bare digits are not a code', 'SPRAXHAM XJ 555055234', None], ['unknown state', 'SPRAXHAM YY 55505', 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":"0f9f36ddcbdeeefb148e19305dfa1a2f4318a1b965b40c3eb5f01d7784f0d906","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    STATES = {'ZZ': 'ZZ', 'QX': 'QX', 'XJ': 'XJ', 'ZEDLAND': 'ZZ', 'QUIXOTA': 'QX', 'XANJOR': 'XJ'}\n    t = x.upper().replace(',', ' ').split()\n    code = ''\n    if t and (len(t[-1]) == 5 or (len(t[-1]) == 10 and t[-1][5] == '-')) and t[-1].replace('-', '').isdigit():\n        code = t.pop()\n    if len(t) < 2 or t[-1] not in STATES:\n        return None\n    state = STATES[t.pop()]\n    return [' '.join(t), state, code]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['comma and space', 'Faketown, ZZ 11101', ['FAKETOWN', 'ZZ', '11101']], ['comma without space', 'FAKETOWN,ZZ 11101', ['FAKETOWN', 'ZZ', '11101']], ['multi-word city with plus-four', 'New Faketown Heights, Qx 11101-1214', ['NEW FAKETOWN HEIGHTS', 'QX', '11101-1214']], ['spelled state without code', 'FAKETOWN Zedland', ['FAKETOWN', 'ZZ', '']], ['missing city', 'ZZ 11101', None], ['ten bare digits are not a code', 'FAKETOWN ZZ 1110112345', None], ['short plus-four is not a code', 'FAKETOWN ZZ 11101-6', None], ['six digits are not a code', 'FAKETOWN XJ 111019', None], ['nine bare digits are not a code', 'FAKETOWN XJ 111011234', None], ['unknown state', 'FAKETOWN YY 11101', None]], [['comma and space', 'Nowhereville, ZZ 22202', ['NOWHEREVILLE', 'ZZ', '22202']], ['comma without space', 'NOWHEREVILLE,ZZ 22202', ['NOWHEREVILLE', 'ZZ', '22202']], ['multi-word city with plus-four', 'New Nowhereville Heights, Qx 22202-1224', ['NEW NOWHEREVILLE HEIGHTS', 'QX', '22202-1224']], ['spelled state without code', 'NOWHEREVILLE Zedland', ['NOWHEREVILLE', 'ZZ', '']], ['missing city', 'ZZ 22202', None], ['ten bare digits are not a code', 'NOWHEREVILLE ZZ 2220212345', None], ['short plus-four is not a code', 'NOWHEREVILLE ZZ 22202-6', None], ['six digits are not a code', 'NOWHEREVILLE XJ 222029', None], ['nine bare digits are not a code', 'NOWHEREVILLE XJ 222022234', None], ['unknown state', 'NOWHEREVILLE YY 22202', None]], [['comma and space', 'Zorbleton, ZZ 33303', ['ZORBLETON', 'ZZ', '33303']], ['comma without space', 'ZORBLETON,ZZ 33303', ['ZORBLETON', 'ZZ', '33303']], ['multi-word city with plus-four', 'New Zorbleton Heights, Qx 33303-1234', ['NEW ZORBLETON HEIGHTS', 'QX', '33303-1234']], ['spelled state without code', 'ZORBLETON Zedland', ['ZORBLETON', 'ZZ', '']], ['missing city', 'ZZ 33303', None], ['ten bare digits are not a code', 'ZORBLETON ZZ 3330312345', None], ['short plus-four is not a code', 'ZORBLETON ZZ 33303-6', None], ['six digits are not a code', 'ZORBLETON XJ 333039', None], ['nine bare digits are not a code', 'ZORBLETON XJ 333033234', None], ['unknown state', 'ZORBLETON YY 33303', None]], [['comma and space', 'Quillby, ZZ 44404', ['QUILLBY', 'ZZ', '44404']], ['comma without space', 'QUILLBY,ZZ 44404', ['QUILLBY', 'ZZ', '44404']], ['multi-word city with plus-four', 'New Quillby Heights, Qx 44404-1244', ['NEW QUILLBY HEIGHTS', 'QX', '44404-1244']], ['spelled state without code', 'QUILLBY Zedland', ['QUILLBY', 'ZZ', '']], ['missing city', 'ZZ 44404', None], ['ten bare digits are not a code', 'QUILLBY ZZ 4440412345', None], ['short plus-four is not a code', 'QUILLBY ZZ 44404-6', None], ['six digits are not a code', 'QUILLBY XJ 444049', None], ['nine bare digits are not a code', 'QUILLBY XJ 444044234', None], ['unknown state', 'QUILLBY YY 44404', None]], [['comma and space', 'Spraxham, ZZ 55505', ['SPRAXHAM', 'ZZ', '55505']], ['comma without space', 'SPRAXHAM,ZZ 55505', ['SPRAXHAM', 'ZZ', '55505']], ['multi-word city with plus-four', 'New Spraxham Heights, Qx 55505-1254', ['NEW SPRAXHAM HEIGHTS', 'QX', '55505-1254']], ['spelled state without code', 'SPRAXHAM Zedland', ['SPRAXHAM', 'ZZ', '']], ['missing city', 'ZZ 55505', None], ['ten bare digits are not a code', 'SPRAXHAM ZZ 5550512345', None], ['short plus-four is not a code', 'SPRAXHAM ZZ 55505-6', None], ['six digits are not a code', 'SPRAXHAM XJ 555059', None], ['nine bare digits are not a code', 'SPRAXHAM XJ 555055234', None], ['unknown state', 'SPRAXHAM YY 55505', 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-last-line-city-join","generated_at":"2026-09-29T14:52:19.698572+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Last lines are parsed from the right because city names have any number of words; a mistaken boundary moves words between city, state and code.","repair":"Join all remaining tokens with single spaces.","root_cause":"The city is taken from the final remaining token.","sha256":"b62b569be34605a766c0785f2df0f92cd4fe894cf84cf587e86369dddb32d255","title":"City-state-code last line parser: only the last city word is kept · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":44.022,"exit_code":1,"observations":[{"actual":["FAKETOWN","ZZ","11101"],"check":"comma and space","expected":["FAKETOWN","ZZ","11101"],"passed":true},{"actual":["FAKETOWN","ZZ","11101"],"check":"comma without space","expected":["FAKETOWN","ZZ","11101"],"passed":true},{"actual":["NEWFAKETOWNHEIGHTS","QX","11101-1214"],"check":"multi-word city with plus-four","expected":["NEW FAKETOWN HEIGHTS","QX","11101-1214"],"passed":false},{"actual":["FAKETOWN","ZZ",""],"check":"spelled state without code","expected":["FAKETOWN","ZZ",""],"passed":true},{"actual":null,"check":"missing city","expected":null,"passed":true},{"actual":null,"check":"ten bare digits are not a code","expected":null,"passed":true},{"actual":null,"check":"short plus-four is not a code","expected":null,"passed":true},{"actual":null,"check":"six digits are not a code","expected":null,"passed":true},{"actual":null,"check":"nine bare digits are not a code","expected":null,"passed":true},{"actual":null,"check":"unknown state","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"comma and space\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"passed\": true}, {\"check\": \"comma without space\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"passed\": true}, {\"check\": \"multi-word city with plus-four\", \"actual\": [\"NEWFAKETOWNHEIGHTS\", \"QX\", \"11101-1214\"], \"expected\": [\"NEW FAKETOWN HEIGHTS\", \"QX\", \"11101-1214\"], \"passed\": false}, {\"check\": \"spelled state without code\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"\"], \"passed\": true}, {\"check\": \"missing city\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"ten bare digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"short plus-four is not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"six digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"nine bare digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"unknown state\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.294,"exit_code":1,"observations":[{"actual":["FAKETOWN","ZZ","11101"],"check":"comma and space","expected":["FAKETOWN","ZZ","11101"],"passed":true},{"actual":["FAKETOWN","ZZ","11101"],"check":"comma without space","expected":["FAKETOWN","ZZ","11101"],"passed":true},{"actual":["HEIGHTS","QX","11101-1214"],"check":"multi-word city with plus-four","expected":["NEW FAKETOWN HEIGHTS","QX","11101-1214"],"passed":false},{"actual":["FAKETOWN","ZZ",""],"check":"spelled state without code","expected":["FAKETOWN","ZZ",""],"passed":true},{"actual":null,"check":"missing city","expected":null,"passed":true},{"actual":null,"check":"ten bare digits are not a code","expected":null,"passed":true},{"actual":null,"check":"short plus-four is not a code","expected":null,"passed":true},{"actual":null,"check":"six digits are not a code","expected":null,"passed":true},{"actual":null,"check":"nine bare digits are not a code","expected":null,"passed":true},{"actual":null,"check":"unknown state","expected":null,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"comma and space\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"passed\": true}, {\"check\": \"comma without space\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"passed\": true}, {\"check\": \"multi-word city with plus-four\", \"actual\": [\"HEIGHTS\", \"QX\", \"11101-1214\"], \"expected\": [\"NEW FAKETOWN HEIGHTS\", \"QX\", \"11101-1214\"], \"passed\": false}, {\"check\": \"spelled state without code\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"\"], \"passed\": true}, {\"check\": \"missing city\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"ten bare digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"short plus-four is not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"six digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"nine bare digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"unknown state\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.886,"exit_code":0,"observations":[{"actual":["FAKETOWN","ZZ","11101"],"check":"comma and space","expected":["FAKETOWN","ZZ","11101"],"passed":true},{"actual":["FAKETOWN","ZZ","11101"],"check":"comma without space","expected":["FAKETOWN","ZZ","11101"],"passed":true},{"actual":["NEW FAKETOWN HEIGHTS","QX","11101-1214"],"check":"multi-word city with plus-four","expected":["NEW FAKETOWN HEIGHTS","QX","11101-1214"],"passed":true},{"actual":["FAKETOWN","ZZ",""],"check":"spelled state without code","expected":["FAKETOWN","ZZ",""],"passed":true},{"actual":null,"check":"missing city","expected":null,"passed":true},{"actual":null,"check":"ten bare digits are not a code","expected":null,"passed":true},{"actual":null,"check":"short plus-four is not a code","expected":null,"passed":true},{"actual":null,"check":"six digits are not a code","expected":null,"passed":true},{"actual":null,"check":"nine bare digits are not a code","expected":null,"passed":true},{"actual":null,"check":"unknown state","expected":null,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"comma and space\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"passed\": true}, {\"check\": \"comma without space\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"11101\"], \"passed\": true}, {\"check\": \"multi-word city with plus-four\", \"actual\": [\"NEW FAKETOWN HEIGHTS\", \"QX\", \"11101-1214\"], \"expected\": [\"NEW FAKETOWN HEIGHTS\", \"QX\", \"11101-1214\"], \"passed\": true}, {\"check\": \"spelled state without code\", \"actual\": [\"FAKETOWN\", \"ZZ\", \"\"], \"expected\": [\"FAKETOWN\", \"ZZ\", \"\"], \"passed\": true}, {\"check\": \"missing city\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"ten bare digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"short plus-four is not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"six digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"nine bare digits are not a code\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"unknown state\", \"actual\": null, \"expected\": null, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}