{"abstract":"At a site whose outside code is 81, \"81555...\" is rejected.","category":"Phone number formatting","checks":10,"contract":"Input [dialed, site] with site ext_len, outside prefix and intl prefix. \"+\" (after stripping) means international: outside + intl + digits. Otherwise on digits: exactly ext_len digits is internal; digits that start with the outside prefix and have 7 or 11 digits after it are already external; 7 digits get the outside prefix; 10 digits get outside + \"1\"; anything else is invalid.","evaluation_group":"w2-phone-number-formatting-pbx-dial-plan","failed_approach":"Accepting any remainder of at least seven digits reads ten-digit numbers that start with the outside digit as already prefixed.","family":"w2-phone-number-formatting-pbx-dial-plan-prefixed-length","id":"FA-96651","implementations":{"attempt":{"sha256":"5c9fd1059c9901112ee3e2910ff05eb8b1ef8c78bec8af44e4f20897439f766c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    dialed, site = x\n    plus = dialed.strip().startswith('+')\n    d = ''.join(c for c in dialed if c.isdigit())\n    n_ext, out = site['ext_len'], site['outside']\n    if plus:\n        return ['external', out + site['intl'] + d] if d else ['invalid', '']\n    if len(d) == n_ext:\n        return ['internal', d]\n    if d.startswith(out) and len(d) - len(out) >= 7:\n        return ['external', d]\n    if len(d) == 7:\n        return ['external', out + d]\n    if len(d) == 10:\n        return ['external', out + '1' + d]\n    return ['invalid', d]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['international from site A', ['+42 555 0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550114']], ['international with a leading space at site B', [' +42 555 0114', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550114']], ['four-digit extension', ['2111', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2111']], ['five-digit extension at site B', ['31111', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '31111']], ['three digits are not an extension', ['111', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '111']], ['already prefixed local number', ['95550114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550114']], ['already prefixed with two-digit outside code', ['815550114', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550114']], ['seven-digit local number', ['555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550114']], ['ten-digit national number', ['202-555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550114']], ['ten-digit number starting with the outside digit', ['955-555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550114']]], [['international from site A', ['+42 555 0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550125']], ['international with a leading space at site B', [' +42 555 0125', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550125']], ['four-digit extension', ['2222', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2222']], ['five-digit extension at site B', ['32222', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '32222']], ['three digits are not an extension', ['122', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '122']], ['already prefixed local number', ['95550125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550125']], ['already prefixed with two-digit outside code', ['815550125', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550125']], ['seven-digit local number', ['555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550125']], ['ten-digit national number', ['202-555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550125']], ['ten-digit number starting with the outside digit', ['955-555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550125']]], [['international from site A', ['+42 555 0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550136']], ['international with a leading space at site B', [' +42 555 0136', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550136']], ['four-digit extension', ['2333', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2333']], ['five-digit extension at site B', ['33333', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '33333']], ['three digits are not an extension', ['133', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '133']], ['already prefixed local number', ['95550136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550136']], ['already prefixed with two-digit outside code', ['815550136', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550136']], ['seven-digit local number', ['555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550136']], ['ten-digit national number', ['202-555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550136']], ['ten-digit number starting with the outside digit', ['955-555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550136']]], [['international from site A', ['+42 555 0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550147']], ['international with a leading space at site B', [' +42 555 0147', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550147']], ['four-digit extension', ['2444', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2444']], ['five-digit extension at site B', ['34444', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '34444']], ['three digits are not an extension', ['144', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '144']], ['already prefixed local number', ['95550147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550147']], ['already prefixed with two-digit outside code', ['815550147', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550147']], ['seven-digit local number', ['555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550147']], ['ten-digit national number', ['202-555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550147']], ['ten-digit number starting with the outside digit', ['955-555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550147']]], [['international from site A', ['+42 555 0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550158']], ['international with a leading space at site B', [' +42 555 0158', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550158']], ['four-digit extension', ['2555', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2555']], ['five-digit extension at site B', ['35555', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '35555']], ['three digits are not an extension', ['155', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '155']], ['already prefixed local number', ['95550158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550158']], ['already prefixed with two-digit outside code', ['815550158', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550158']], ['seven-digit local number', ['555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550158']], ['ten-digit national number', ['202-555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550158']], ['ten-digit number starting with the outside digit', ['955-555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550158']]]]\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":"557924c2dd7600ab587685b12c0e29136b2a5c9cbe2c8a5fdc95aa2465b0dd1d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    dialed, site = x\n    plus = dialed.strip().startswith('+')\n    d = ''.join(c for c in dialed if c.isdigit())\n    n_ext, out = site['ext_len'], site['outside']\n    if plus:\n        return ['external', out + site['intl'] + d] if d else ['invalid', '']\n    if len(d) == n_ext:\n        return ['internal', d]\n    if d.startswith(out) and len(d) in (8, 12):\n        return ['external', d]\n    if len(d) == 7:\n        return ['external', out + d]\n    if len(d) == 10:\n        return ['external', out + '1' + d]\n    return ['invalid', d]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['international from site A', ['+42 555 0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550114']], ['international with a leading space at site B', [' +42 555 0114', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550114']], ['four-digit extension', ['2111', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2111']], ['five-digit extension at site B', ['31111', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '31111']], ['three digits are not an extension', ['111', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '111']], ['already prefixed local number', ['95550114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550114']], ['already prefixed with two-digit outside code', ['815550114', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550114']], ['seven-digit local number', ['555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550114']], ['ten-digit national number', ['202-555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550114']], ['ten-digit number starting with the outside digit', ['955-555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550114']]], [['international from site A', ['+42 555 0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550125']], ['international with a leading space at site B', [' +42 555 0125', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550125']], ['four-digit extension', ['2222', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2222']], ['five-digit extension at site B', ['32222', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '32222']], ['three digits are not an extension', ['122', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '122']], ['already prefixed local number', ['95550125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550125']], ['already prefixed with two-digit outside code', ['815550125', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550125']], ['seven-digit local number', ['555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550125']], ['ten-digit national number', ['202-555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550125']], ['ten-digit number starting with the outside digit', ['955-555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550125']]], [['international from site A', ['+42 555 0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550136']], ['international with a leading space at site B', [' +42 555 0136', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550136']], ['four-digit extension', ['2333', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2333']], ['five-digit extension at site B', ['33333', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '33333']], ['three digits are not an extension', ['133', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '133']], ['already prefixed local number', ['95550136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550136']], ['already prefixed with two-digit outside code', ['815550136', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550136']], ['seven-digit local number', ['555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550136']], ['ten-digit national number', ['202-555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550136']], ['ten-digit number starting with the outside digit', ['955-555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550136']]], [['international from site A', ['+42 555 0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550147']], ['international with a leading space at site B', [' +42 555 0147', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550147']], ['four-digit extension', ['2444', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2444']], ['five-digit extension at site B', ['34444', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '34444']], ['three digits are not an extension', ['144', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '144']], ['already prefixed local number', ['95550147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550147']], ['already prefixed with two-digit outside code', ['815550147', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550147']], ['seven-digit local number', ['555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550147']], ['ten-digit national number', ['202-555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550147']], ['ten-digit number starting with the outside digit', ['955-555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550147']]], [['international from site A', ['+42 555 0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550158']], ['international with a leading space at site B', [' +42 555 0158', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550158']], ['four-digit extension', ['2555', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2555']], ['five-digit extension at site B', ['35555', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '35555']], ['three digits are not an extension', ['155', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '155']], ['already prefixed local number', ['95550158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550158']], ['already prefixed with two-digit outside code', ['815550158', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550158']], ['seven-digit local number', ['555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550158']], ['ten-digit national number', ['202-555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550158']], ['ten-digit number starting with the outside digit', ['955-555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550158']]]]\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":"8352764af9b8159288410c23161ebb18b0b3b95f033c9b133aef8cf5665a2e85","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    dialed, site = x\n    plus = dialed.strip().startswith('+')\n    d = ''.join(c for c in dialed if c.isdigit())\n    n_ext, out = site['ext_len'], site['outside']\n    if plus:\n        return ['external', out + site['intl'] + d] if d else ['invalid', '']\n    if len(d) == n_ext:\n        return ['internal', d]\n    if d.startswith(out) and len(d) - len(out) in (7, 11):\n        return ['external', d]\n    if len(d) == 7:\n        return ['external', out + d]\n    if len(d) == 10:\n        return ['external', out + '1' + d]\n    return ['invalid', d]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['international from site A', ['+42 555 0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550114']], ['international with a leading space at site B', [' +42 555 0114', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550114']], ['four-digit extension', ['2111', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2111']], ['five-digit extension at site B', ['31111', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '31111']], ['three digits are not an extension', ['111', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '111']], ['already prefixed local number', ['95550114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550114']], ['already prefixed with two-digit outside code', ['815550114', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550114']], ['seven-digit local number', ['555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550114']], ['ten-digit national number', ['202-555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550114']], ['ten-digit number starting with the outside digit', ['955-555-0114', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550114']]], [['international from site A', ['+42 555 0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550125']], ['international with a leading space at site B', [' +42 555 0125', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550125']], ['four-digit extension', ['2222', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2222']], ['five-digit extension at site B', ['32222', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '32222']], ['three digits are not an extension', ['122', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '122']], ['already prefixed local number', ['95550125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550125']], ['already prefixed with two-digit outside code', ['815550125', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550125']], ['seven-digit local number', ['555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550125']], ['ten-digit national number', ['202-555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550125']], ['ten-digit number starting with the outside digit', ['955-555-0125', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550125']]], [['international from site A', ['+42 555 0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550136']], ['international with a leading space at site B', [' +42 555 0136', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550136']], ['four-digit extension', ['2333', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2333']], ['five-digit extension at site B', ['33333', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '33333']], ['three digits are not an extension', ['133', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '133']], ['already prefixed local number', ['95550136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550136']], ['already prefixed with two-digit outside code', ['815550136', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550136']], ['seven-digit local number', ['555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550136']], ['ten-digit national number', ['202-555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550136']], ['ten-digit number starting with the outside digit', ['955-555-0136', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550136']]], [['international from site A', ['+42 555 0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550147']], ['international with a leading space at site B', [' +42 555 0147', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550147']], ['four-digit extension', ['2444', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2444']], ['five-digit extension at site B', ['34444', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '34444']], ['three digits are not an extension', ['144', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '144']], ['already prefixed local number', ['95550147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550147']], ['already prefixed with two-digit outside code', ['815550147', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550147']], ['seven-digit local number', ['555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550147']], ['ten-digit national number', ['202-555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550147']], ['ten-digit number starting with the outside digit', ['955-555-0147', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550147']]], [['international from site A', ['+42 555 0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '9011425550158']], ['international with a leading space at site B', [' +42 555 0158', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '8100425550158']], ['four-digit extension', ['2555', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['internal', '2555']], ['five-digit extension at site B', ['35555', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['internal', '35555']], ['three digits are not an extension', ['155', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['invalid', '155']], ['already prefixed local number', ['95550158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550158']], ['already prefixed with two-digit outside code', ['815550158', {'ext_len': 5, 'outside': '81', 'intl': '00'}], ['external', '815550158']], ['seven-digit local number', ['555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '95550158']], ['ten-digit national number', ['202-555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '912025550158']], ['ten-digit number starting with the outside digit', ['955-555-0158', {'ext_len': 4, 'outside': '9', 'intl': '011'}], ['external', '919555550158']]]]\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 telephone numbers and toy country tables. The rules are stipulated for this model only and make no claim of conformance with any numbering plan or telecommunications 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-phone-number-formatting-pbx-dial-plan-prefixed-length","generated_at":"2026-09-29T14:52:24.687438+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Desk phones and softphones share one dial plan; a wrong prefix rule either rings an internal extension or places an unintended external call.","repair":"Compare the length after removing the actual outside prefix with 7 or 11.","root_cause":"The prefixed-number test assumes a one-digit outside code (total length 8 or 12).","sha256":"c8f3da9bb6771f760759482a96653e572ab0bb41e4211d61b4abc997c84eb70d","title":"PBX dial plan normalizer: a two-digit outside code breaks prefixed numbers · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.637,"exit_code":1,"observations":[{"actual":["external","9011425550114"],"check":"international from site A","expected":["external","9011425550114"],"passed":true},{"actual":["external","8100425550114"],"check":"international with a leading space at site B","expected":["external","8100425550114"],"passed":true},{"actual":["internal","2111"],"check":"four-digit extension","expected":["internal","2111"],"passed":true},{"actual":["internal","31111"],"check":"five-digit extension at site B","expected":["internal","31111"],"passed":true},{"actual":["invalid","111"],"check":"three digits are not an extension","expected":["invalid","111"],"passed":true},{"actual":["external","95550114"],"check":"already prefixed local number","expected":["external","95550114"],"passed":true},{"actual":["external","815550114"],"check":"already prefixed with two-digit outside code","expected":["external","815550114"],"passed":true},{"actual":["external","95550114"],"check":"seven-digit local number","expected":["external","95550114"],"passed":true},{"actual":["external","912025550114"],"check":"ten-digit national number","expected":["external","912025550114"],"passed":true},{"actual":["external","9555550114"],"check":"ten-digit number starting with the outside digit","expected":["external","919555550114"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"international from site A\", \"actual\": [\"external\", \"9011425550114\"], \"expected\": [\"external\", \"9011425550114\"], \"passed\": true}, {\"check\": \"international with a leading space at site B\", \"actual\": [\"external\", \"8100425550114\"], \"expected\": [\"external\", \"8100425550114\"], \"passed\": true}, {\"check\": \"four-digit extension\", \"actual\": [\"internal\", \"2111\"], \"expected\": [\"internal\", \"2111\"], \"passed\": true}, {\"check\": \"five-digit extension at site B\", \"actual\": [\"internal\", \"31111\"], \"expected\": [\"internal\", \"31111\"], \"passed\": true}, {\"check\": \"three digits are not an extension\", \"actual\": [\"invalid\", \"111\"], \"expected\": [\"invalid\", \"111\"], \"passed\": true}, {\"check\": \"already prefixed local number\", \"actual\": [\"external\", \"95550114\"], \"expected\": [\"external\", \"95550114\"], \"passed\": true}, {\"check\": \"already prefixed with two-digit outside code\", \"actual\": [\"external\", \"815550114\"], \"expected\": [\"external\", \"815550114\"], \"passed\": true}, {\"check\": \"seven-digit local number\", \"actual\": [\"external\", \"95550114\"], \"expected\": [\"external\", \"95550114\"], \"passed\": true}, {\"check\": \"ten-digit national number\", \"actual\": [\"external\", \"912025550114\"], \"expected\": [\"external\", \"912025550114\"], \"passed\": true}, {\"check\": \"ten-digit number starting with the outside digit\", \"actual\": [\"external\", \"9555550114\"], \"expected\": [\"external\", \"919555550114\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.882,"exit_code":1,"observations":[{"actual":["external","9011425550114"],"check":"international from site A","expected":["external","9011425550114"],"passed":true},{"actual":["external","8100425550114"],"check":"international with a leading space at site B","expected":["external","8100425550114"],"passed":true},{"actual":["internal","2111"],"check":"four-digit extension","expected":["internal","2111"],"passed":true},{"actual":["internal","31111"],"check":"five-digit extension at site B","expected":["internal","31111"],"passed":true},{"actual":["invalid","111"],"check":"three digits are not an extension","expected":["invalid","111"],"passed":true},{"actual":["external","95550114"],"check":"already prefixed local number","expected":["external","95550114"],"passed":true},{"actual":["invalid","815550114"],"check":"already prefixed with two-digit outside code","expected":["external","815550114"],"passed":false},{"actual":["external","95550114"],"check":"seven-digit local number","expected":["external","95550114"],"passed":true},{"actual":["external","912025550114"],"check":"ten-digit national number","expected":["external","912025550114"],"passed":true},{"actual":["external","919555550114"],"check":"ten-digit number starting with the outside digit","expected":["external","919555550114"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"international from site A\", \"actual\": [\"external\", \"9011425550114\"], \"expected\": [\"external\", \"9011425550114\"], \"passed\": true}, {\"check\": \"international with a leading space at site B\", \"actual\": [\"external\", \"8100425550114\"], \"expected\": [\"external\", \"8100425550114\"], \"passed\": true}, {\"check\": \"four-digit extension\", \"actual\": [\"internal\", \"2111\"], \"expected\": [\"internal\", \"2111\"], \"passed\": true}, {\"check\": \"five-digit extension at site B\", \"actual\": [\"internal\", \"31111\"], \"expected\": [\"internal\", \"31111\"], \"passed\": true}, {\"check\": \"three digits are not an extension\", \"actual\": [\"invalid\", \"111\"], \"expected\": [\"invalid\", \"111\"], \"passed\": true}, {\"check\": \"already prefixed local number\", \"actual\": [\"external\", \"95550114\"], \"expected\": [\"external\", \"95550114\"], \"passed\": true}, {\"check\": \"already prefixed with two-digit outside code\", \"actual\": [\"invalid\", \"815550114\"], \"expected\": [\"external\", \"815550114\"], \"passed\": false}, {\"check\": \"seven-digit local number\", \"actual\": [\"external\", \"95550114\"], \"expected\": [\"external\", \"95550114\"], \"passed\": true}, {\"check\": \"ten-digit national number\", \"actual\": [\"external\", \"912025550114\"], \"expected\": [\"external\", \"912025550114\"], \"passed\": true}, {\"check\": \"ten-digit number starting with the outside digit\", \"actual\": [\"external\", \"919555550114\"], \"expected\": [\"external\", \"919555550114\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.847,"exit_code":0,"observations":[{"actual":["external","9011425550114"],"check":"international from site A","expected":["external","9011425550114"],"passed":true},{"actual":["external","8100425550114"],"check":"international with a leading space at site B","expected":["external","8100425550114"],"passed":true},{"actual":["internal","2111"],"check":"four-digit extension","expected":["internal","2111"],"passed":true},{"actual":["internal","31111"],"check":"five-digit extension at site B","expected":["internal","31111"],"passed":true},{"actual":["invalid","111"],"check":"three digits are not an extension","expected":["invalid","111"],"passed":true},{"actual":["external","95550114"],"check":"already prefixed local number","expected":["external","95550114"],"passed":true},{"actual":["external","815550114"],"check":"already prefixed with two-digit outside code","expected":["external","815550114"],"passed":true},{"actual":["external","95550114"],"check":"seven-digit local number","expected":["external","95550114"],"passed":true},{"actual":["external","912025550114"],"check":"ten-digit national number","expected":["external","912025550114"],"passed":true},{"actual":["external","919555550114"],"check":"ten-digit number starting with the outside digit","expected":["external","919555550114"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"international from site A\", \"actual\": [\"external\", \"9011425550114\"], \"expected\": [\"external\", \"9011425550114\"], \"passed\": true}, {\"check\": \"international with a leading space at site B\", \"actual\": [\"external\", \"8100425550114\"], \"expected\": [\"external\", \"8100425550114\"], \"passed\": true}, {\"check\": \"four-digit extension\", \"actual\": [\"internal\", \"2111\"], \"expected\": [\"internal\", \"2111\"], \"passed\": true}, {\"check\": \"five-digit extension at site B\", \"actual\": [\"internal\", \"31111\"], \"expected\": [\"internal\", \"31111\"], \"passed\": true}, {\"check\": \"three digits are not an extension\", \"actual\": [\"invalid\", \"111\"], \"expected\": [\"invalid\", \"111\"], \"passed\": true}, {\"check\": \"already prefixed local number\", \"actual\": [\"external\", \"95550114\"], \"expected\": [\"external\", \"95550114\"], \"passed\": true}, {\"check\": \"already prefixed with two-digit outside code\", \"actual\": [\"external\", \"815550114\"], \"expected\": [\"external\", \"815550114\"], \"passed\": true}, {\"check\": \"seven-digit local number\", \"actual\": [\"external\", \"95550114\"], \"expected\": [\"external\", \"95550114\"], \"passed\": true}, {\"check\": \"ten-digit national number\", \"actual\": [\"external\", \"912025550114\"], \"expected\": [\"external\", \"912025550114\"], \"passed\": true}, {\"check\": \"ten-digit number starting with the outside digit\", \"actual\": [\"external\", \"919555550114\"], \"expected\": [\"external\", \"919555550114\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}