FAILURE MAP
← Case archive

FA-51161 / Raster clipping / Open access

Multiview clip routing: viewclip route confusion · case 01

Rerouting the viewport also reroutes the per-view clip, losing view-local coverage.

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

ROOT CAUSE

Rerouting the viewport also reroutes the per-view clip, losing view-local coverage.

VERIFIED REPAIR

Apply the documented state transition at viewclip route confusion. A draw provides per-view clip sets, active-view bits, primitive view bits, optional viewport routing, enabled viewport clips, and primitive sample coverage. A view renders only if both masks include it. Route entries select the viewport clip while preserving output view identity. A null viewport route suppresses that view; absent route defaults to matching view index. Disabled viewport scissor passes full extent.

Unsuccessful approach: Using a single shared view clip drops distinct per-view masks.

Case contract

A draw provides per-view clip sets, active-view bits, primitive view bits, optional viewport routing, enabled viewport clips, and primitive sample coverage. A view renders only if both masks include it. Route entries select the viewport clip while preserving output view identity. A null viewport route suppresses that view; absent route defaults to matching view index. Disabled viewport scissor passes full extent.

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))
    out=[]
    for viewclips,active,primitive,routes,scissors,scissor_enabled,samples in commands:
        rendered=[]
        for view in range(len(viewclips)):
            bit=1<<view
            if not (active & bit and primitive & bit): continue
            viewport=routes[view] if view<len(routes) else view
            if viewport is None: continue
            if viewport<0 or viewport>=len(scissors): continue
            viewport_clip=set(scissors[viewport]) if viewport in scissor_enabled else full
            visible=set(samples)&set(viewclips[viewport % len(viewclips)])&viewport_clip&full
            rendered.append([view,sorted(visible)])
        out.append(rendered)
    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([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 4), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 4), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 4), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 4), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 4), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 4), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 4), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 4), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 4), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 4), [[[0, [0, 1, 2, 3]]]])
if N == 2:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 5), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 5), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 5), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 5), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 5), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 5), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 5), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 5), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 5), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 5), [[[0, [0, 1, 2, 3, 4]]]])
if N == 3:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 6), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 6), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 6), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 6), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 6), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 6), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 6), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 6), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 6), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 6), [[[0, [0, 1, 2, 3, 4, 5]]]])
if N == 4:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 7), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 7), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 7), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 7), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 7), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 7), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 7), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 7), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 7), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 7), [[[0, [0, 1, 2, 3, 4, 5, 6]]]])
if N == 5:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 8), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 8), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 8), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 8), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 8), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 8), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 8), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 8), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 8), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 8), [[[0, [0, 1, 2, 3, 4, 5, 6, 7]]]])
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[[[0, [0]], [1, [1]], [2, [2]]]][[[0, [0]], [1, [1]], [2, [2]]]]Passed
explicit sequence 1[[]][[]]Passed
explicit sequence 2[[[0, [1]], [1, [0]]]][[[0, [1]], [1, []]]]Failed
explicit sequence 3[[]][[]]Passed
explicit sequence 4[[]][[]]Passed
explicit sequence 5[[[0, [0, 1]], [1, [0]]]][[[0, [0, 1]], [1, [0]]]]Passed
explicit sequence 6[[[0, [0]]]][[[0, [0]]]]Passed
explicit sequence 7[[[2, [2]]]][[[2, [2]]]]Passed
explicit sequence 8[[[0, [0]]]][[[0, [0]]]]Passed
explicit sequence 9[[[0, [0, 1, 2, 3]]]][[[0, [0, 1, 2, 3]]]]Passed

SHA-256 / 37171cdf2d1c0bfb09a1ef6df6ab7b87f929ec47ae0b2bf0b85b4f01c7174c97

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))
    out=[]
    for viewclips,active,primitive,routes,scissors,scissor_enabled,samples in commands:
        rendered=[]
        for view in range(len(viewclips)):
            bit=1<<view
            if not (active & bit and primitive & bit): continue
            viewport=routes[view] if view<len(routes) else view
            if viewport is None: continue
            if viewport<0 or viewport>=len(scissors): continue
            viewport_clip=set(scissors[viewport]) if viewport in scissor_enabled else full
            visible=set(samples)&set(viewclips[0])&viewport_clip&full
            rendered.append([view,sorted(visible)])
        out.append(rendered)
    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([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 4), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 4), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 4), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 4), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 4), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 4), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 4), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 4), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 4), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 4), [[[0, [0, 1, 2, 3]]]])
if N == 2:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 5), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 5), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 5), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 5), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 5), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 5), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 5), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 5), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 5), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 5), [[[0, [0, 1, 2, 3, 4]]]])
if N == 3:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 6), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 6), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 6), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 6), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 6), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 6), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 6), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 6), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 6), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 6), [[[0, [0, 1, 2, 3, 4, 5]]]])
if N == 4:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 7), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 7), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 7), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 7), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 7), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 7), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 7), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 7), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 7), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 7), [[[0, [0, 1, 2, 3, 4, 5, 6]]]])
if N == 5:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 8), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 8), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 8), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 8), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 8), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 8), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 8), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 8), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 8), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 8), [[[0, [0, 1, 2, 3, 4, 5, 6, 7]]]])
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[[[0, [0]], [1, []], [2, []]]][[[0, [0]], [1, [1]], [2, [2]]]]Failed
explicit sequence 1[[]][[]]Passed
explicit sequence 2[[[0, [1]], [1, [0]]]][[[0, [1]], [1, []]]]Failed
explicit sequence 3[[]][[]]Passed
explicit sequence 4[[]][[]]Passed
explicit sequence 5[[[0, [0, 1]], [1, [0]]]][[[0, [0, 1]], [1, [0]]]]Passed
explicit sequence 6[[[0, [0]]]][[[0, [0]]]]Passed
explicit sequence 7[[[2, []]]][[[2, [2]]]]Failed
explicit sequence 8[[[0, [0]]]][[[0, [0]]]]Passed
explicit sequence 9[[[0, [0, 1, 2, 3]]]][[[0, [0, 1, 2, 3]]]]Passed

SHA-256 / 798a44b372eac83bdbe8f5df45425e8ba0b3e9ac2babc749f8eccae0d6849d09

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))
    out=[]
    for viewclips,active,primitive,routes,scissors,scissor_enabled,samples in commands:
        rendered=[]
        for view in range(len(viewclips)):
            bit=1<<view
            if not (active & bit and primitive & bit): continue
            viewport=routes[view] if view<len(routes) else view
            if viewport is None: continue
            if viewport<0 or viewport>=len(scissors): continue
            viewport_clip=set(scissors[viewport]) if viewport in scissor_enabled else full
            visible=set(samples)&set(viewclips[view])&viewport_clip&full
            rendered.append([view,sorted(visible)])
        out.append(rendered)
    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([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 4), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 4), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 4), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 4), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 4), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 4), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 4), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 4), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 4), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 4), [[[0, [0, 1, 2, 3]]]])
if N == 2:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 5), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 5), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 5), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 5), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 5), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 5), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 5), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 5), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 5), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 5), [[[0, [0, 1, 2, 3, 4]]]])
if N == 3:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 6), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 6), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 6), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 6), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 6), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 6), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 6), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 6), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 6), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 6), [[[0, [0, 1, 2, 3, 4, 5]]]])
if N == 4:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 7), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 7), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 7), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 7), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 7), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 7), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 7), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 7), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 7), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 7), [[[0, [0, 1, 2, 3, 4, 5, 6]]]])
if N == 5:
    check('explicit sequence 0', solve([[[[0], [1], [2]], 7, 7, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 8), [[[0, [0]], [1, [1]], [2, [2]]]])
    check('explicit sequence 1', solve([[[[0], [1]], 1, 2, [], [[0], [1]], [0, 1], [0, 1]]], 8), [[]])
    check('explicit sequence 2', solve([[[[0, 1], [1, 2]], 3, 3, [1, 0], [[0], [1]], [0, 1], [0, 1, 2]]], 8), [[[0, [1]], [1, []]]])
    check('explicit sequence 3', solve([[[[0]], 1, 1, [None], [[0]], [0], [0]]], 8), [[]])
    check('explicit sequence 4', solve([[[[0]], 1, 1, [-1], [[0]], [0], [0]]], 8), [[]])
    check('explicit sequence 5', solve([[[[0, 1], [0, 1]], 3, 3, [1, 0], [[0], [1]], [0], [0, 1]]], 8), [[[0, [0, 1]], [1, [0]]]])
    check('explicit sequence 6', solve([[[[0]], 1, 1, [0], [[]], [], [0]]], 8), [[[0, [0]]]])
    check('explicit sequence 7', solve([[[[0], [1], [2]], 4, 4, [], [[0], [1], [2]], [0, 1, 2], [0, 1, 2]]], 8), [[[2, [2]]]])
    check('explicit sequence 8', solve([[[[0, 99]], 1, 1, [0], [[0, 99]], [0], [0, 99]]], 8), [[[0, [0]]]])
    check('explicit sequence 9', solve([[[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]], 1, 1, [], [[]], [], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]], 8), [[[0, [0, 1, 2, 3, 4, 5, 6, 7]]]])
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[[[0, [0]], [1, [1]], [2, [2]]]][[[0, [0]], [1, [1]], [2, [2]]]]Passed
explicit sequence 1[[]][[]]Passed
explicit sequence 2[[[0, [1]], [1, []]]][[[0, [1]], [1, []]]]Passed
explicit sequence 3[[]][[]]Passed
explicit sequence 4[[]][[]]Passed
explicit sequence 5[[[0, [0, 1]], [1, [0]]]][[[0, [0, 1]], [1, [0]]]]Passed
explicit sequence 6[[[0, [0]]]][[[0, [0]]]]Passed
explicit sequence 7[[[2, [2]]]][[[2, [2]]]]Passed
explicit sequence 8[[[0, [0]]]][[[0, [0]]]]Passed
explicit sequence 9[[[0, [0, 1, 2, 3]]]][[[0, [0, 1, 2, 3]]]]Passed

SHA-256 / a2c88c6f34fdf03d2835c6e0de50525bf6129e0b2253b71a49b740ce22276e21

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:16.150453+00:00.

Case digest / d116babc5d61d1de0363f8df99b1438d07419b781b1aa4027fdf7d463c833860