FAILURE MAP
← Case archive

FA-51386 / Raster clipping / Open access

Pick buffer clip coverage: depth tie · case 01

Equal-depth fragments replace the earlier pick ID despite strict-nearer policy.

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

ROOT CAUSE

Equal-depth fragments replace the earlier pick ID despite strict-nearer policy.

VERIFIED REPAIR

Apply the documented state transition at depth tie. Each draw has an object ID, coverage samples, clip samples, integer depth, depth-test flag and ID-write flag. ID zero is a valid object. Pick samples start empty with infinite depth. With depth test enabled, strictly nearer fragments replace stored IDs and depth; equal depth keeps the earlier fragment. Disabled depth testing writes without changing depth. ID-write-disabled draws still update depth when tested. Queries return IDs or null for out-of-target samples.

Unsuccessful approach: Special-casing only empty object IDs does not preserve ties between real objects.

Case contract

Each draw has an object ID, coverage samples, clip samples, integer depth, depth-test flag and ID-write flag. ID zero is a valid object. Pick samples start empty with infinite depth. With depth test enabled, strictly nearer fragments replace stored IDs and depth; equal depth keeps the earlier fragment. Disabled depth testing writes without changing depth. ID-write-disabled draws still update depth when tested. Queries return IDs or null for out-of-target samples.

Why this case matters

Raster clip state can leak coverage across draws even when every individual region is valid.

1 / The failure

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

N = 1
observations = []
def solve(commands, size):
    full=set(range(size))
    ids=[None]*size
    depths=[float('inf')]*size
    out=[]
    for cmd in commands:
        if cmd[0]=='clear':
            for x in set(cmd[1])&full: ids[x]=None; depths[x]=float('inf')
        elif cmd[0]=='draw':
            _,key,coverage,clip,depth,test,write=cmd
            for x in set(coverage)&set(clip)&full:
                if test and depth>depths[x]: continue
                if test: depths[x]=depth
                if write: ids[x]=key
        else:
            out.append([ids[x] if x in full else None for x in cmd[1]])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 4), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 4), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 4), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 4), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 4), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 4), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 4), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 4), [[None]])
if N == 2:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 5), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 5), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 5), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 5), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 5), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 5), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 5), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 5), [[None]])
if N == 3:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 6), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 6), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 6), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 6), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 6), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 6), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 6), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 6), [[None]])
if N == 4:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 7), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 7), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 7), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 7), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 7), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 7), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 7), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 7), [[None]])
if N == 5:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 8), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 8), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 8), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 8), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 8), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 8), [[None, 'a', None, 'a']])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 8), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 8), [[None]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
explicit sequence 0[['a', None]][['a', None]]Passed
explicit sequence 1[['b']][['a']]Failed
explicit sequence 2[['b']][['b']]Passed
explicit sequence 3[[None]][[None]]Passed
explicit sequence 4[[0]][[0]]Passed
explicit sequence 5[[None]][[None]]Passed
explicit sequence 6[['b']][['b']]Passed
explicit sequence 7[[None, 'a'], ['a']][[None, 'a'], ['a']]Passed
explicit sequence 8[[None, 'a', None, None]][[None, 'a', None, None]]Passed
explicit sequence 9[['b', 'a', 'b']][['b', 'a', 'b']]Passed
explicit sequence 10[[None]][[None]]Passed

SHA-256 / 781c05cd42b970344ce94f1a0e9fb8c321f013941b392463fb71636c90257935

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(commands, size):
    full=set(range(size))
    ids=[None]*size
    depths=[float('inf')]*size
    out=[]
    for cmd in commands:
        if cmd[0]=='clear':
            for x in set(cmd[1])&full: ids[x]=None; depths[x]=float('inf')
        elif cmd[0]=='draw':
            _,key,coverage,clip,depth,test,write=cmd
            for x in set(coverage)&set(clip)&full:
                if test and depth>depths[x] or (depth==depths[x] and key is None): continue
                if test: depths[x]=depth
                if write: ids[x]=key
        else:
            out.append([ids[x] if x in full else None for x in cmd[1]])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 4), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 4), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 4), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 4), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 4), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 4), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 4), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 4), [[None]])
if N == 2:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 5), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 5), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 5), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 5), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 5), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 5), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 5), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 5), [[None]])
if N == 3:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 6), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 6), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 6), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 6), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 6), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 6), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 6), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 6), [[None]])
if N == 4:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 7), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 7), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 7), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 7), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 7), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 7), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 7), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 7), [[None]])
if N == 5:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 8), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 8), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 8), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 8), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 8), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 8), [[None, 'a', None, 'a']])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 8), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 8), [[None]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
explicit sequence 0[['a', None]][['a', None]]Passed
explicit sequence 1[['b']][['a']]Failed
explicit sequence 2[['b']][['b']]Passed
explicit sequence 3[[None]][[None]]Passed
explicit sequence 4[[0]][[0]]Passed
explicit sequence 5[[None]][[None]]Passed
explicit sequence 6[['b']][['b']]Passed
explicit sequence 7[[None, 'a'], ['a']][[None, 'a'], ['a']]Passed
explicit sequence 8[[None, 'a', None, None]][[None, 'a', None, None]]Passed
explicit sequence 9[['b', 'a', 'b']][['b', 'a', 'b']]Passed
explicit sequence 10[[None]][[None]]Passed

SHA-256 / 3794c8a7aac785ee08ff0ce09c385ffee1484573ebac54bbce07058c7f6baeec

3 / The verified repair

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

N = 1
observations = []
def solve(commands, size):
    full=set(range(size))
    ids=[None]*size
    depths=[float('inf')]*size
    out=[]
    for cmd in commands:
        if cmd[0]=='clear':
            for x in set(cmd[1])&full: ids[x]=None; depths[x]=float('inf')
        elif cmd[0]=='draw':
            _,key,coverage,clip,depth,test,write=cmd
            for x in set(coverage)&set(clip)&full:
                if test and depth>=depths[x]: continue
                if test: depths[x]=depth
                if write: ids[x]=key
        else:
            out.append([ids[x] if x in full else None for x in cmd[1]])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 4), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 4), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 4), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 4), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 4), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 4), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 4), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 4), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 4), [[None]])
if N == 2:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 5), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 5), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 5), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 5), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 5), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 5), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 5), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 5), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 5), [[None]])
if N == 3:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 6), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 6), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 6), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 6), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 6), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 6), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 6), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 6), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 6), [[None]])
if N == 4:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 7), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 7), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 7), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 7), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 7), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 7), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 7), [[None, 'a', None, None]])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 7), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 7), [[None]])
if N == 5:
    check('explicit sequence 0', solve([['draw', 'a', [0, 1], [0], 3, True, True], ['read', [0, 1]]], 8), [['a', None]])
    check('explicit sequence 1', solve([['draw', 'a', [0], [0], 3, True, True], ['draw', 'b', [0], [0], 3, True, True], ['read', [0]]], 8), [['a']])
    check('explicit sequence 2', solve([['draw', 'a', [0], [0], 1, False, True], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [['b']])
    check('explicit sequence 3', solve([['draw', 'a', [0], [0], 1, True, False], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [[None]])
    check('explicit sequence 4', solve([['draw', 0, [0], [0], 1, True, True], ['read', [0]]], 8), [[0]])
    check('explicit sequence 5', solve([['draw', 'a', [0], [0], 1, False, False], ['read', [0]]], 8), [[None]])
    check('explicit sequence 6', solve([['draw', 'a', [0], [0], 1, True, True], ['clear', [0]], ['draw', 'b', [0], [0], 2, True, True], ['read', [0]]], 8), [['b']])
    check('explicit sequence 7', solve([['draw', 'a', [0, 1], [0, 1], 1, True, True], ['clear', [0]], ['read', [0, 1]], ['clear', []], ['read', [1]]], 8), [[None, 'a'], ['a']])
    check('explicit sequence 8', solve([['draw', 'a', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 1, True, True], ['read', [-1, 0, 99, 7]]], 8), [[None, 'a', None, 'a']])
    check('explicit sequence 9', solve([['draw', 'a', [0], [0], 1, True, True], ['draw', 'b', [1], [1], 1, True, True], ['read', [1, 0, 1]]], 8), [['b', 'a', 'b']])
    check('explicit sequence 10', solve([['draw', 'a', [0], [], 1, True, True], ['read', [0]]], 8), [[None]])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
explicit sequence 0[['a', None]][['a', None]]Passed
explicit sequence 1[['a']][['a']]Passed
explicit sequence 2[['b']][['b']]Passed
explicit sequence 3[[None]][[None]]Passed
explicit sequence 4[[0]][[0]]Passed
explicit sequence 5[[None]][[None]]Passed
explicit sequence 6[['b']][['b']]Passed
explicit sequence 7[[None, 'a'], ['a']][[None, 'a'], ['a']]Passed
explicit sequence 8[[None, 'a', None, None]][[None, 'a', None, None]]Passed
explicit sequence 9[['b', 'a', 'b']][['b', 'a', 'b']]Passed
explicit sequence 10[[None]][[None]]Passed

SHA-256 / ddce81e28eafea2cc8699a4c0f550469a57ecdfdb88604693f39680b5f241206

Verification & scope

Finite one-dimensional integer sample sets model coverage state only; no geometric intersection, memory layout, GPU or graphics-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:45:18.420329+00:00.

Case digest / ec86f42a9a669862d882f0369ea6165ec7c9b8fd0561b169bde39f02e1b05646