FA-36641 / Tab interfaces / Open access
Panel background tasks: background index retention · case 01
The tab workspace reports an incorrect background index retention.
ROOT CAUSE
The background index retention decision uses [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='index'] instead of [j for j in x['jobs'] if j[0] in x['mounted'] and j[1]=='index'].
VERIFIED REPAIR
Use the stipulated workspace rule: [j for j in x['jobs'] if j[0] in x['mounted'] and j[1]=='index'].
Unsuccessful approach: The partial repair [j for j in x['jobs'] if j[1]=='index' and j[0] not in x['visible']] still violates a workspace boundary or normal case.
Case contract
Tab panel jobs are classified into visible rendering, background-safe work and paused work. Hidden panes pause render-only jobs but retain explicit background-safe tasks.
Why this case matters
Offline tab/panel workspace behavior; no browser or desktop framework is emulated.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
r0 = [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='render']
r1 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render']
r2 = [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='index']
r3 = [j for j in x['jobs'] if j[0] in x['closed']]
r4 = sorted(set(j[0] for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render'))
r5 = [j for j in x['jobs'] if j[0] in x['mounted'] and (j[1]=='index' or j[0] in x['visible'])]
return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a', 'b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b', 'c'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': [], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]])], 2: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index']]])], 3: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']]])], 4: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]])], 5: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
check("workspace regression "+str(i), solve(inputs), 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 |
|---|---|---|---|
| workspace regression 0 | [[['a', 'render']], [['b', 'render']], [['a', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | Failed |
| workspace regression 1 | [[['b', 'render']], [['a', 'render']], [['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]] | [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]] | Failed |
| workspace regression 2 | [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]] | [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]] | Passed |
| workspace regression 3 | [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | Failed |
| workspace regression 4 | [[], [['a', 'render'], ['b', 'render']], [], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]] | [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]] | Failed |
| workspace regression 5 | [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]] | [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]] | Passed |
SHA-256 / bb74b1c271e94e4f236a2bc4a4ce65b2781801b3c7890774e9a65bfac8fd5730
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
r0 = [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='render']
r1 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render']
r2 = [j for j in x['jobs'] if j[1]=='index' and j[0] not in x['visible']]
r3 = [j for j in x['jobs'] if j[0] in x['closed']]
r4 = sorted(set(j[0] for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render'))
r5 = [j for j in x['jobs'] if j[0] in x['mounted'] and (j[1]=='index' or j[0] in x['visible'])]
return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a', 'b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b', 'c'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': [], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]])], 2: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index']]])], 3: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']]])], 4: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]])], 5: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
check("workspace regression "+str(i), solve(inputs), 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 |
|---|---|---|---|
| workspace regression 0 | [[['a', 'render']], [['b', 'render']], [['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | Failed |
| workspace regression 1 | [[['b', 'render']], [['a', 'render']], [['a', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]] | [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]] | Failed |
| workspace regression 2 | [[['a', 'render'], ['b', 'render']], [], [], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]] | [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]] | Failed |
| workspace regression 3 | [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | Failed |
| workspace regression 4 | [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]] | [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]] | Passed |
| workspace regression 5 | [[], [['b', 'render']], [], [], ['b'], [['a', 'index']]] | [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]] | Failed |
SHA-256 / a89f98aa14b4de47b11f210fc0ea7dba0560753f4f91ffa3cc0462444f9d1640
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
r0 = [j for j in x['jobs'] if j[0] in x['visible'] and j[1]=='render']
r1 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render']
r2 = [j for j in x['jobs'] if j[0] in x['mounted'] and j[1]=='index']
r3 = [j for j in x['jobs'] if j[0] in x['closed']]
r4 = sorted(set(j[0] for j in x['jobs'] if j[0] in x['mounted'] and j[0] not in x['visible'] and j[1]=='render'))
r5 = [j for j in x['jobs'] if j[0] in x['mounted'] and (j[1]=='index' or j[0] in x['visible'])]
return [r0,r1,r2,r3,r4,r5]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a', 'b'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': ['a'], 'mounted': ['a', 'b', 'c'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render']], 'visible': [], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render']], 'visible': ['a'], 'mounted': ['a', 'b'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]])], 2: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index']]])], 3: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index']]])], 4: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index']]])], 5: [({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a', 'b'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'c', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': []}, [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index'], ['c', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': [], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]]), ({'jobs': [['a', 'index'], ['b', 'render'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], 'visible': ['a'], 'mounted': ['a', 'b', 'extra0', 'extra1', 'extra2', 'extra3'], 'closed': ['c']}, [[], [['b', 'render']], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']], [], ['b'], [['a', 'index'], ['extra0', 'index'], ['extra1', 'index'], ['extra2', 'index'], ['extra3', 'index']]])]}
for i, (inputs, expected) in enumerate(fixtures[N]):
check("workspace regression "+str(i), solve(inputs), 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 |
|---|---|---|---|
| workspace regression 0 | [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | [[['a', 'render']], [['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['b'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | Passed |
| workspace regression 1 | [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]] | [[['b', 'render']], [['a', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a'], [['a', 'index'], ['b', 'render'], ['b', 'index']]] | Passed |
| workspace regression 2 | [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]] | [[['a', 'render'], ['b', 'render']], [], [['a', 'index'], ['b', 'index']], [['c', 'render']], [], [['a', 'render'], ['a', 'index'], ['b', 'render'], ['b', 'index']]] | Passed |
| workspace regression 3 | [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | [[['a', 'render']], [['b', 'render'], ['c', 'render']], [['a', 'index'], ['b', 'index']], [], ['b', 'c'], [['a', 'render'], ['a', 'index'], ['b', 'index']]] | Passed |
| workspace regression 4 | [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]] | [[], [['a', 'render'], ['b', 'render']], [['a', 'index'], ['b', 'index']], [['c', 'render']], ['a', 'b'], [['a', 'index'], ['b', 'index']]] | Passed |
| workspace regression 5 | [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]] | [[], [['b', 'render']], [['a', 'index']], [], ['b'], [['a', 'index']]] | Passed |
SHA-256 / d42c2db7bbb6a2309365a6cec6a2fe5a9c524366515fc5428012ff33625577e4
Verification & scope
Finite stipulated workspace snapshots only. Independent result fields describe observable obligations, not a full UI runtime. 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:42:53.321315+00:00.
Case digest / 61bfa2046bad8bc57e23ed02e2a6aaf0377fd8e0619e172229d7f3205478befe