FAILURE MAP
← Case archive

FA-45341 / Data systems / Open access

Vector CASE treats an unknown condition as selected THEN · case 01

Vector CASE treats an unknown condition as selected THEN.

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

ROOT CAUSE

masked-case-evaluation: Vector CASE treats an unknown condition as selected THEN.

VERIFIED REPAIR

Preserve the stated physical representation and operation order: Evaluate CASE over [condition,then-value,then-error,else-value,else-error] rows. Only True chooses THEN; False and None choose ELSE. Unchosen errors are not evaluated. Chosen errors become ERROR:<label>; a chosen null value remains None. Return one result per input lane.

Unsuccessful approach: An explicit unknown-is-true rule still selects the wrong branch.

Case contract

Evaluate CASE over [condition,then-value,then-error,else-value,else-error] rows. Only True chooses THEN; False and None choose ELSE. Unchosen errors are not evaluated. Chosen errors become ERROR:<label>; a chosen null value remains None. Return one result per input lane.

Why this case matters

A bounded deterministic data engine model makes representation and changelog faults reproducible.

1 / The failure

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

N = 1
observations = []
def solve(d):
    try:
        out=[]
        for cond,tvalue,terror,fvalue,ferror in d:
            choose=cond is not False
            if choose:
                error=terror; value=tvalue
            else:
                error=ferror; value=fvalue
            out.append('ERROR:'+error if error is not None else value)
        return out
    except (IndexError, KeyError, ValueError, StopIteration) as exc:
        return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('skip erroneous then', solve([[False, 1, 'T', 2, None]]), [2])
    check('unknown skips then', solve([[None, 1, 'T', 2, None]]), [2])
    check('skip erroneous else', solve([[True, 1, None, 2, 'F']]), [1])
    check('chosen then error', solve([[True, 1, 'T', 2, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 1, None, 2, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 1, None]]), [None])
    check('else null', solve([[False, 1, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 2:
    check('skip erroneous then', solve([[False, 2, 'T', 3, None]]), [3])
    check('unknown skips then', solve([[None, 2, 'T', 3, None]]), [3])
    check('skip erroneous else', solve([[True, 2, None, 3, 'F']]), [2])
    check('chosen then error', solve([[True, 2, 'T', 3, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 2, None, 3, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 2, None]]), [None])
    check('else null', solve([[False, 2, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 3:
    check('skip erroneous then', solve([[False, 3, 'T', 4, None]]), [4])
    check('unknown skips then', solve([[None, 3, 'T', 4, None]]), [4])
    check('skip erroneous else', solve([[True, 3, None, 4, 'F']]), [3])
    check('chosen then error', solve([[True, 3, 'T', 4, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 3, None, 4, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 3, None]]), [None])
    check('else null', solve([[False, 3, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 4:
    check('skip erroneous then', solve([[False, 4, 'T', 5, None]]), [5])
    check('unknown skips then', solve([[None, 4, 'T', 5, None]]), [5])
    check('skip erroneous else', solve([[True, 4, None, 5, 'F']]), [4])
    check('chosen then error', solve([[True, 4, 'T', 5, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 4, None, 5, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 4, None]]), [None])
    check('else null', solve([[False, 4, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 5:
    check('skip erroneous then', solve([[False, 5, 'T', 6, None]]), [6])
    check('unknown skips then', solve([[None, 5, 'T', 6, None]]), [6])
    check('skip erroneous else', solve([[True, 5, None, 6, 'F']]), [5])
    check('chosen then error', solve([[True, 5, 'T', 6, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 5, None, 6, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 5, None]]), [None])
    check('else null', solve([[False, 5, None, None, None]]), [None])
    check('empty vector', solve([]), [])
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
skip erroneous then[2][2]Passed
unknown skips then['ERROR:T'][2]Failed
skip erroneous else[1][1]Passed
chosen then error['ERROR:T']['ERROR:T']Passed
chosen else error['ERROR:F']['ERROR:F']Passed
then null[None][None]Passed
else null[None][None]Passed
empty vector[][]Passed

SHA-256 / fb27524f8e7b75441200314a1479a5dc7362f280c22c93c2d33ffad83ab8ba4d

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(d):
    try:
        out=[]
        for cond,tvalue,terror,fvalue,ferror in d:
            choose=cond is None or bool(cond)
            if choose:
                error=terror; value=tvalue
            else:
                error=ferror; value=fvalue
            out.append('ERROR:'+error if error is not None else value)
        return out
    except (IndexError, KeyError, ValueError, StopIteration) as exc:
        return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('skip erroneous then', solve([[False, 1, 'T', 2, None]]), [2])
    check('unknown skips then', solve([[None, 1, 'T', 2, None]]), [2])
    check('skip erroneous else', solve([[True, 1, None, 2, 'F']]), [1])
    check('chosen then error', solve([[True, 1, 'T', 2, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 1, None, 2, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 1, None]]), [None])
    check('else null', solve([[False, 1, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 2:
    check('skip erroneous then', solve([[False, 2, 'T', 3, None]]), [3])
    check('unknown skips then', solve([[None, 2, 'T', 3, None]]), [3])
    check('skip erroneous else', solve([[True, 2, None, 3, 'F']]), [2])
    check('chosen then error', solve([[True, 2, 'T', 3, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 2, None, 3, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 2, None]]), [None])
    check('else null', solve([[False, 2, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 3:
    check('skip erroneous then', solve([[False, 3, 'T', 4, None]]), [4])
    check('unknown skips then', solve([[None, 3, 'T', 4, None]]), [4])
    check('skip erroneous else', solve([[True, 3, None, 4, 'F']]), [3])
    check('chosen then error', solve([[True, 3, 'T', 4, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 3, None, 4, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 3, None]]), [None])
    check('else null', solve([[False, 3, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 4:
    check('skip erroneous then', solve([[False, 4, 'T', 5, None]]), [5])
    check('unknown skips then', solve([[None, 4, 'T', 5, None]]), [5])
    check('skip erroneous else', solve([[True, 4, None, 5, 'F']]), [4])
    check('chosen then error', solve([[True, 4, 'T', 5, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 4, None, 5, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 4, None]]), [None])
    check('else null', solve([[False, 4, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 5:
    check('skip erroneous then', solve([[False, 5, 'T', 6, None]]), [6])
    check('unknown skips then', solve([[None, 5, 'T', 6, None]]), [6])
    check('skip erroneous else', solve([[True, 5, None, 6, 'F']]), [5])
    check('chosen then error', solve([[True, 5, 'T', 6, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 5, None, 6, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 5, None]]), [None])
    check('else null', solve([[False, 5, None, None, None]]), [None])
    check('empty vector', solve([]), [])
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
skip erroneous then[2][2]Passed
unknown skips then['ERROR:T'][2]Failed
skip erroneous else[1][1]Passed
chosen then error['ERROR:T']['ERROR:T']Passed
chosen else error['ERROR:F']['ERROR:F']Passed
then null[None][None]Passed
else null[None][None]Passed
empty vector[][]Passed

SHA-256 / a2697da21f86f26efc34c9cc906588243e4b8706d701df0dbc11f1f87d40e65f

3 / The verified repair

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

N = 1
observations = []
def solve(d):
    try:
        out=[]
        for cond,tvalue,terror,fvalue,ferror in d:
            choose=cond is True
            if choose:
                error=terror; value=tvalue
            else:
                error=ferror; value=fvalue
            out.append('ERROR:'+error if error is not None else value)
        return out
    except (IndexError, KeyError, ValueError, StopIteration) as exc:
        return {"representation_error": type(exc).__name__}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
if N == 1:
    check('skip erroneous then', solve([[False, 1, 'T', 2, None]]), [2])
    check('unknown skips then', solve([[None, 1, 'T', 2, None]]), [2])
    check('skip erroneous else', solve([[True, 1, None, 2, 'F']]), [1])
    check('chosen then error', solve([[True, 1, 'T', 2, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 1, None, 2, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 1, None]]), [None])
    check('else null', solve([[False, 1, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 2:
    check('skip erroneous then', solve([[False, 2, 'T', 3, None]]), [3])
    check('unknown skips then', solve([[None, 2, 'T', 3, None]]), [3])
    check('skip erroneous else', solve([[True, 2, None, 3, 'F']]), [2])
    check('chosen then error', solve([[True, 2, 'T', 3, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 2, None, 3, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 2, None]]), [None])
    check('else null', solve([[False, 2, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 3:
    check('skip erroneous then', solve([[False, 3, 'T', 4, None]]), [4])
    check('unknown skips then', solve([[None, 3, 'T', 4, None]]), [4])
    check('skip erroneous else', solve([[True, 3, None, 4, 'F']]), [3])
    check('chosen then error', solve([[True, 3, 'T', 4, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 3, None, 4, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 3, None]]), [None])
    check('else null', solve([[False, 3, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 4:
    check('skip erroneous then', solve([[False, 4, 'T', 5, None]]), [5])
    check('unknown skips then', solve([[None, 4, 'T', 5, None]]), [5])
    check('skip erroneous else', solve([[True, 4, None, 5, 'F']]), [4])
    check('chosen then error', solve([[True, 4, 'T', 5, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 4, None, 5, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 4, None]]), [None])
    check('else null', solve([[False, 4, None, None, None]]), [None])
    check('empty vector', solve([]), [])
elif N == 5:
    check('skip erroneous then', solve([[False, 5, 'T', 6, None]]), [6])
    check('unknown skips then', solve([[None, 5, 'T', 6, None]]), [6])
    check('skip erroneous else', solve([[True, 5, None, 6, 'F']]), [5])
    check('chosen then error', solve([[True, 5, 'T', 6, None]]), ['ERROR:T'])
    check('chosen else error', solve([[False, 5, None, 6, 'F']]), ['ERROR:F'])
    check('then null', solve([[True, None, None, 5, None]]), [None])
    check('else null', solve([[False, 5, None, None, None]]), [None])
    check('empty vector', solve([]), [])
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
skip erroneous then[2][2]Passed
unknown skips then[2][2]Passed
skip erroneous else[1][1]Passed
chosen then error['ERROR:T']['ERROR:T']Passed
chosen else error['ERROR:F']['ERROR:F']Passed
then null[None][None]Passed
else null[None][None]Passed
empty vector[][]Passed

SHA-256 / 73352c2e66b7aec9916c2c42cd91beb431441297dba2ef4506d68e1b89f3df02

Verification & scope

Offline stipulated semantics over valid small inputs; no performance, concurrency, or production-engine conformance claim. 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:44:21.208077+00:00.

Case digest / 75accbf79c8258cac6db6a96879e27735e20a4c26ed85a33d23d396bde07e339