FA-25346 / Filter interfaces / Open access
Exponent syntax is rejected even with uppercase exponent markers · case 01
Exponent syntax is rejected even with uppercase exponent markers is violated by the widget projection.
ROOT CAUSE
The exponent-rejection decision uses `'e' in d['text']` instead of the stipulated numeric-text-editor projection.
VERIFIED REPAIR
Implement the declared exponent-rejection projection: `'e' in d['text'].lower()`.
Unsuccessful approach: The attempted correction `d['text'].lower().endswith('e')` still violates the explicit contract fixtures.
Case contract
This bounded numeric editor accepts ASCII signed integers with surrounding spaces, preserving incomplete drafts and disallowing exponent, decimal and non-ASCII forms. This example checks: Exponent syntax is rejected even with uppercase exponent markers.
Why this case matters
Filter-widget state and serialization must preserve user constraints while the view changes.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'trim-draft':(d['text'].strip()), 'complete-integer':(bool(d['text'].strip()) and d['text'].strip().lstrip('+-').isascii() and d['text'].strip().lstrip('+-').isdigit() and d['text'].strip().count('+')+d['text'].strip().count('-')<=1), 'incomplete-sign':(d['text'].strip() in ('+','-')), 'blank-open':(d['text'].strip()==''), 'fraction-rejection':('.' in d['text'].strip()), 'exponent-rejection':('e' in d['text'])}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False})], 2: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '0'}, {'trim-draft': '0', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' 2 '}, {'trim-draft': '2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1 2'}, {'trim-draft': '1 2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})], 3: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False})], 4: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '0'}, {'trim-draft': '0', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' 2 '}, {'trim-draft': '2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1 2'}, {'trim-draft': '1 2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})], 5: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})]}
for index, (data, expected) in enumerate(fixtures[N]):
check("contract fixture " + str(index), solve(data), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| contract fixture 0 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1E2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1E2'} | Failed |
| contract fixture 1 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '+'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '+'} | Passed |
| contract fixture 2 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '-'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '-'} | Passed |
| contract fixture 3 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.0'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.0'} | Passed |
| contract fixture 4 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.5'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.5'} | Passed |
| contract fixture 5 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1e2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1e2'} | Passed |
| contract fixture 6 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '++2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '++2'} | Passed |
| contract fixture 7 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '٢'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '٢'} | Passed |
| contract fixture 8 | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | Passed |
| contract fixture 9 | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | Passed |
SHA-256 / de370127617581b235b8f0ff1a25bd071014eec334713a69091f227e40e9c87e
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'trim-draft':(d['text'].strip()), 'complete-integer':(bool(d['text'].strip()) and d['text'].strip().lstrip('+-').isascii() and d['text'].strip().lstrip('+-').isdigit() and d['text'].strip().count('+')+d['text'].strip().count('-')<=1), 'incomplete-sign':(d['text'].strip() in ('+','-')), 'blank-open':(d['text'].strip()==''), 'fraction-rejection':('.' in d['text'].strip()), 'exponent-rejection':(d['text'].lower().endswith('e'))}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False})], 2: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '0'}, {'trim-draft': '0', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' 2 '}, {'trim-draft': '2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1 2'}, {'trim-draft': '1 2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})], 3: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False})], 4: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '0'}, {'trim-draft': '0', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' 2 '}, {'trim-draft': '2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1 2'}, {'trim-draft': '1 2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})], 5: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})]}
for index, (data, expected) in enumerate(fixtures[N]):
check("contract fixture " + str(index), solve(data), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| contract fixture 0 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1E2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1E2'} | Failed |
| contract fixture 1 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '+'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '+'} | Passed |
| contract fixture 2 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '-'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '-'} | Passed |
| contract fixture 3 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.0'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.0'} | Passed |
| contract fixture 4 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.5'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.5'} | Passed |
| contract fixture 5 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1e2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1e2'} | Failed |
| contract fixture 6 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '++2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '++2'} | Passed |
| contract fixture 7 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '٢'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '٢'} | Passed |
| contract fixture 8 | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | Passed |
| contract fixture 9 | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | Passed |
SHA-256 / 1c20fa69473db7f74d382ba91c02754a9ef0dfea0e05d684cc5a44f1a5f8bb21
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'trim-draft':(d['text'].strip()), 'complete-integer':(bool(d['text'].strip()) and d['text'].strip().lstrip('+-').isascii() and d['text'].strip().lstrip('+-').isdigit() and d['text'].strip().count('+')+d['text'].strip().count('-')<=1), 'incomplete-sign':(d['text'].strip() in ('+','-')), 'blank-open':(d['text'].strip()==''), 'fraction-rejection':('.' in d['text'].strip()), 'exponent-rejection':('e' in d['text'].lower())}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False})], 2: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '0'}, {'trim-draft': '0', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' 2 '}, {'trim-draft': '2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1 2'}, {'trim-draft': '1 2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})], 3: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False})], 4: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ''}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' '}, {'trim-draft': '', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': True, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '0'}, {'trim-draft': '0', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' 2 '}, {'trim-draft': '2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1 2'}, {'trim-draft': '1 2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})], 5: [({'text': '1E2'}, {'trim-draft': '1E2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '+2'}, {'trim-draft': '+2', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-3'}, {'trim-draft': '-3', 'complete-integer': True, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': ' + '}, {'trim-draft': '+', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '-'}, {'trim-draft': '-', 'complete-integer': False, 'incomplete-sign': True, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '1.0'}, {'trim-draft': '1.0', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1.5'}, {'trim-draft': '1.5', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': True, 'exponent-rejection': False}), ({'text': '1e2'}, {'trim-draft': '1e2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': True}), ({'text': '++2'}, {'trim-draft': '++2', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False}), ({'text': '٢'}, {'trim-draft': '٢', 'complete-integer': False, 'incomplete-sign': False, 'blank-open': False, 'fraction-rejection': False, 'exponent-rejection': False})]}
for index, (data, expected) in enumerate(fixtures[N]):
check("contract fixture " + str(index), solve(data), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| contract fixture 0 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1E2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1E2'} | Passed |
| contract fixture 1 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '+'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '+'} | Passed |
| contract fixture 2 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '-'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': True, 'trim-draft': '-'} | Passed |
| contract fixture 3 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.0'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.0'} | Passed |
| contract fixture 4 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.5'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': True, 'incomplete-sign': False, 'trim-draft': '1.5'} | Passed |
| contract fixture 5 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1e2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': True, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '1e2'} | Passed |
| contract fixture 6 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '++2'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '++2'} | Passed |
| contract fixture 7 | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '٢'} | {'blank-open': False, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': '٢'} | Passed |
| contract fixture 8 | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | Passed |
| contract fixture 9 | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | {'blank-open': True, 'complete-integer': False, 'exponent-rejection': False, 'fraction-rejection': False, 'incomplete-sign': False, 'trim-draft': ''} | Passed |
SHA-256 / 5f14c4d7237437abda936f3a422342a4605f94f0f064b3bd942f92d5bbb2fa0a
Verification & scope
Deterministic bounded UI-state model only; no browser, query engine, network, or production-standard conformance is claimed. 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:41:05.830997+00:00.
Case digest / 1c495029f68a34061c28c137cc8b09a8843964ba5d3fb082c5487ae75ac5e991