FA-25886 / Filter interfaces / Open access
Reversed draft ranges show an error while equal endpoints remain valid · case 01
Reversed draft ranges show an error while equal endpoints remain valid is violated by the widget projection.
ROOT CAUSE
The reversal-warning decision uses `d['lo'] is not None and d['hi'] is not None and d['lo']>=d['hi']` instead of the stipulated coupled-range-edit projection.
VERIFIED REPAIR
Implement the declared reversal-warning projection: `d['lo'] is not None and d['hi'] is not None and d['lo']>d['hi']`.
Unsuccessful approach: The attempted correction `False` still violates the explicit contract fixtures.
Case contract
Editing one numeric endpoint clamps only when the range lock is enabled; linked-width edits translate the opposite endpoint, and unbounded sides remain unbounded. This example checks: Reversed draft ranges show an error while equal endpoints remain valid.
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 {'lower-clamp':(min(d['new'],d['hi']) if d['lock'] and d['hi'] is not None else d['new']), 'upper-clamp':(max(d['new'],d['lo']) if d['lock'] and d['lo'] is not None else d['new']), 'linked-upper':(d['hi']+d['new']-d['lo'] if d['linked'] and d['hi'] is not None and d['lo'] is not None else d['hi']), 'linked-lower':(d['lo']+d['new']-d['hi'] if d['linked'] and d['hi'] is not None and d['lo'] is not None else d['lo']), 'link-enabled':(d['lo'] is not None and d['hi'] is not None), 'reversal-warning':(d['lo'] is not None and d['hi'] is not None and d['lo']>=d['hi'])}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -4, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': None, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 2, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 4, 'linked-lower': -6, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False})], 2: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': -1, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 5, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 2, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 2, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 2, 'upper-clamp': 7, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 2, 'upper-clamp': 7, 'linked-upper': 9, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False})], 3: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 4, 'linked-lower': 10, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 9, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True})], 4: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -1, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 3, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 5, 'linked-upper': -2, 'linked-lower': 4, 'link-enabled': True, 'reversal-warning': True})], 5: [({'lo': 5, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -4, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 3, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 12, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': -2, 'linked-lower': 4, 'link-enabled': True, 'reversal-warning': True}), ({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': 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 | {'link-enabled': True, 'linked-lower': 5, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': True, 'upper-clamp': -1} | {'link-enabled': True, 'linked-lower': 5, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Failed |
| contract fixture 1 | {'link-enabled': True, 'linked-lower': 2, 'linked-upper': -4, 'lower-clamp': -1, 'reversal-warning': True, 'upper-clamp': 5} | {'link-enabled': True, 'linked-lower': 2, 'linked-upper': -4, 'lower-clamp': -1, 'reversal-warning': True, 'upper-clamp': 5} | Passed |
| contract fixture 2 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 3 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 4 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Passed |
| contract fixture 5 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | Passed |
| contract fixture 6 | {'link-enabled': False, 'linked-lower': 0, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': 0, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 7 | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 8 | {'link-enabled': True, 'linked-lower': -6, 'linked-upper': 4, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | {'link-enabled': True, 'linked-lower': -6, 'linked-upper': 4, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Passed |
| contract fixture 9 | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | Passed |
SHA-256 / 1e3231adc3a1f54f890b872a8ec931ed913df045b72cd6a27cec4513f0b68607
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'lower-clamp':(min(d['new'],d['hi']) if d['lock'] and d['hi'] is not None else d['new']), 'upper-clamp':(max(d['new'],d['lo']) if d['lock'] and d['lo'] is not None else d['new']), 'linked-upper':(d['hi']+d['new']-d['lo'] if d['linked'] and d['hi'] is not None and d['lo'] is not None else d['hi']), 'linked-lower':(d['lo']+d['new']-d['hi'] if d['linked'] and d['hi'] is not None and d['lo'] is not None else d['lo']), 'link-enabled':(d['lo'] is not None and d['hi'] is not None), 'reversal-warning':(False)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -4, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': None, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 2, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 4, 'linked-lower': -6, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False})], 2: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': -1, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 5, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 2, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 2, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 2, 'upper-clamp': 7, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 2, 'upper-clamp': 7, 'linked-upper': 9, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False})], 3: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 4, 'linked-lower': 10, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 9, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True})], 4: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -1, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 3, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 5, 'linked-upper': -2, 'linked-lower': 4, 'link-enabled': True, 'reversal-warning': True})], 5: [({'lo': 5, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -4, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 3, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 12, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': -2, 'linked-lower': 4, 'link-enabled': True, 'reversal-warning': True}), ({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': 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 | {'link-enabled': True, 'linked-lower': 5, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | {'link-enabled': True, 'linked-lower': 5, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Passed |
| contract fixture 1 | {'link-enabled': True, 'linked-lower': 2, 'linked-upper': -4, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': 5} | {'link-enabled': True, 'linked-lower': 2, 'linked-upper': -4, 'lower-clamp': -1, 'reversal-warning': True, 'upper-clamp': 5} | Failed |
| contract fixture 2 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 3 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 4 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Passed |
| contract fixture 5 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | Passed |
| contract fixture 6 | {'link-enabled': False, 'linked-lower': 0, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': 0, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 7 | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 8 | {'link-enabled': True, 'linked-lower': -6, 'linked-upper': 4, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | {'link-enabled': True, 'linked-lower': -6, 'linked-upper': 4, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Passed |
| contract fixture 9 | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | Passed |
SHA-256 / 174aacba3da00088c5c02b6f67f0f8b4e54e75d5b64ad1a10a23530f9379f10a
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'lower-clamp':(min(d['new'],d['hi']) if d['lock'] and d['hi'] is not None else d['new']), 'upper-clamp':(max(d['new'],d['lo']) if d['lock'] and d['lo'] is not None else d['new']), 'linked-upper':(d['hi']+d['new']-d['lo'] if d['linked'] and d['hi'] is not None and d['lo'] is not None else d['hi']), 'linked-lower':(d['lo']+d['new']-d['hi'] if d['linked'] and d['hi'] is not None and d['lo'] is not None else d['lo']), 'link-enabled':(d['lo'] is not None and d['hi'] is not None), 'reversal-warning':(d['lo'] is not None and d['hi'] is not None and d['lo']>d['hi'])}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -4, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': None, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 2, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 4, 'linked-lower': -6, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False})], 2: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': -1, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 5, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 2, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 2, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 2, 'upper-clamp': 7, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 2, 'upper-clamp': 7, 'linked-upper': 9, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False})], 3: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 4, 'linked-lower': 10, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 2, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': None, 'hi': 5, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 7, 'lock': False, 'linked': True}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': 9, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 1, 'lock': True, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True})], 4: [({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -1, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': False, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': 2, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 3, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': -1, 'lock': False, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': -1, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 7, 'lock': True, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': True, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 5, 'linked-upper': -2, 'linked-lower': 4, 'link-enabled': True, 'reversal-warning': True})], 5: [({'lo': 5, 'hi': 5, 'new': 1, 'lock': False, 'linked': False}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': -1, 'lock': True, 'linked': True}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': -4, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': True}), ({'lo': None, 'hi': 5, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 5, 'linked-lower': None, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': None, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 0, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 0, 'hi': 2, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': 3, 'linked-lower': -1, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 0, 'linked-upper': 5, 'linked-lower': 0, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 0, 'hi': 5, 'new': 7, 'lock': True, 'linked': True}, {'lower-clamp': 5, 'upper-clamp': 7, 'linked-upper': 12, 'linked-lower': 2, 'link-enabled': True, 'reversal-warning': False}), ({'lo': 5, 'hi': None, 'new': 7, 'lock': False, 'linked': False}, {'lower-clamp': 7, 'upper-clamp': 7, 'linked-upper': None, 'linked-lower': 5, 'link-enabled': False, 'reversal-warning': False}), ({'lo': 5, 'hi': 2, 'new': 1, 'lock': False, 'linked': True}, {'lower-clamp': 1, 'upper-clamp': 1, 'linked-upper': -2, 'linked-lower': 4, 'link-enabled': True, 'reversal-warning': True}), ({'lo': 5, 'hi': 5, 'new': -1, 'lock': True, 'linked': False}, {'lower-clamp': -1, 'upper-clamp': 5, 'linked-upper': 5, 'linked-lower': 5, 'link-enabled': True, 'reversal-warning': 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 | {'link-enabled': True, 'linked-lower': 5, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | {'link-enabled': True, 'linked-lower': 5, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Passed |
| contract fixture 1 | {'link-enabled': True, 'linked-lower': 2, 'linked-upper': -4, 'lower-clamp': -1, 'reversal-warning': True, 'upper-clamp': 5} | {'link-enabled': True, 'linked-lower': 2, 'linked-upper': -4, 'lower-clamp': -1, 'reversal-warning': True, 'upper-clamp': 5} | Passed |
| contract fixture 2 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 3 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 4 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Passed |
| contract fixture 5 | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | {'link-enabled': False, 'linked-lower': None, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | Passed |
| contract fixture 6 | {'link-enabled': False, 'linked-lower': 0, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': False, 'linked-lower': 0, 'linked-upper': None, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 7 | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 2, 'lower-clamp': 1, 'reversal-warning': False, 'upper-clamp': 1} | Passed |
| contract fixture 8 | {'link-enabled': True, 'linked-lower': -6, 'linked-upper': 4, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | {'link-enabled': True, 'linked-lower': -6, 'linked-upper': 4, 'lower-clamp': -1, 'reversal-warning': False, 'upper-clamp': -1} | Passed |
| contract fixture 9 | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | {'link-enabled': True, 'linked-lower': 0, 'linked-upper': 5, 'lower-clamp': 5, 'reversal-warning': False, 'upper-clamp': 7} | Passed |
SHA-256 / b10cc350080acbc2d858a679c884132c20e9a45732ee1d6a49e8e644a85fc9a2
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:10.871487+00:00.
Case digest / 1c0f21e762ca84ded687c31815851770c73225e88eed9e18bf52d112e1266a20