FAILURE MAP
← Case archive

FA-96661 / Phone number formatting / Open access

PBX dial plan normalizer: extension length is hard-coded · case 01

Five-digit extensions at site B are treated as invalid numbers.

Verified by executionVariant 1 · 10 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Internal numbers are recognized by a fixed length of four.

VERIFIED REPAIR

Use the site ext_len.

Unsuccessful approach: Accepting anything up to ext_len digits treats short garbage as an internal extension.

Case 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.

Why this case matters

Desk phones and softphones share one dial plan; a wrong prefix rule either rings an internal extension or places an unintended external call.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    dialed, site = x
    plus = dialed.strip().startswith('+')
    d = ''.join(c for c in dialed if c.isdigit())
    n_ext, out = site['ext_len'], site['outside']
    if plus:
        return ['external', out + site['intl'] + d] if d else ['invalid', '']
    if len(d) == 4:
        return ['internal', d]
    if d.startswith(out) and len(d) - len(out) in (7, 11):
        return ['external', d]
    if len(d) == 7:
        return ['external', out + d]
    if len(d) == 10:
        return ['external', out + '1' + d]
    return ['invalid', d]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['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']]]]
for label, arg, expected in fixtures[N - 1]:
    check(label, solve(arg), 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 fixtureActualExpectedOutcome
international from site A['external', '9011425550114']['external', '9011425550114']Passed
international with a leading space at site B['external', '8100425550114']['external', '8100425550114']Passed
four-digit extension['internal', '2111']['internal', '2111']Passed
five-digit extension at site B['invalid', '31111']['internal', '31111']Failed
three digits are not an extension['invalid', '111']['invalid', '111']Passed
already prefixed local number['external', '95550114']['external', '95550114']Passed
already prefixed with two-digit outside code['external', '815550114']['external', '815550114']Passed
seven-digit local number['external', '95550114']['external', '95550114']Passed
ten-digit national number['external', '912025550114']['external', '912025550114']Passed
ten-digit number starting with the outside digit['external', '919555550114']['external', '919555550114']Passed

SHA-256 / 22f3743b17713df2bbc89bf616c93889978f51a80207a9e16a51e9048ebb9dae

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    dialed, site = x
    plus = dialed.strip().startswith('+')
    d = ''.join(c for c in dialed if c.isdigit())
    n_ext, out = site['ext_len'], site['outside']
    if plus:
        return ['external', out + site['intl'] + d] if d else ['invalid', '']
    if len(d) <= n_ext:
        return ['internal', d]
    if d.startswith(out) and len(d) - len(out) in (7, 11):
        return ['external', d]
    if len(d) == 7:
        return ['external', out + d]
    if len(d) == 10:
        return ['external', out + '1' + d]
    return ['invalid', d]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['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']]]]
for label, arg, expected in fixtures[N - 1]:
    check(label, solve(arg), 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 fixtureActualExpectedOutcome
international from site A['external', '9011425550114']['external', '9011425550114']Passed
international with a leading space at site B['external', '8100425550114']['external', '8100425550114']Passed
four-digit extension['internal', '2111']['internal', '2111']Passed
five-digit extension at site B['internal', '31111']['internal', '31111']Passed
three digits are not an extension['internal', '111']['invalid', '111']Failed
already prefixed local number['external', '95550114']['external', '95550114']Passed
already prefixed with two-digit outside code['external', '815550114']['external', '815550114']Passed
seven-digit local number['external', '95550114']['external', '95550114']Passed
ten-digit national number['external', '912025550114']['external', '912025550114']Passed
ten-digit number starting with the outside digit['external', '919555550114']['external', '919555550114']Passed

SHA-256 / a0671e6995c326e38d2b34e2408d25658004cfa5aebc4fa012eead1d931c2ba4

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    dialed, site = x
    plus = dialed.strip().startswith('+')
    d = ''.join(c for c in dialed if c.isdigit())
    n_ext, out = site['ext_len'], site['outside']
    if plus:
        return ['external', out + site['intl'] + d] if d else ['invalid', '']
    if len(d) == n_ext:
        return ['internal', d]
    if d.startswith(out) and len(d) - len(out) in (7, 11):
        return ['external', d]
    if len(d) == 7:
        return ['external', out + d]
    if len(d) == 10:
        return ['external', out + '1' + d]
    return ['invalid', d]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['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']]]]
for label, arg, expected in fixtures[N - 1]:
    check(label, solve(arg), 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 fixtureActualExpectedOutcome
international from site A['external', '9011425550114']['external', '9011425550114']Passed
international with a leading space at site B['external', '8100425550114']['external', '8100425550114']Passed
four-digit extension['internal', '2111']['internal', '2111']Passed
five-digit extension at site B['internal', '31111']['internal', '31111']Passed
three digits are not an extension['invalid', '111']['invalid', '111']Passed
already prefixed local number['external', '95550114']['external', '95550114']Passed
already prefixed with two-digit outside code['external', '815550114']['external', '815550114']Passed
seven-digit local number['external', '95550114']['external', '95550114']Passed
ten-digit national number['external', '912025550114']['external', '912025550114']Passed
ten-digit number starting with the outside digit['external', '919555550114']['external', '919555550114']Passed

SHA-256 / 8352764af9b8159288410c23161ebb18b0b3b95f033c9b133aef8cf5665a2e85

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:52:24.768174+00:00.

Case digest / 4abd1e890c30d5bc24c196f4d5b20da8e6181bc33fc1b49c594e0d8e4346bd40