FAILURE MAP
← Case archive

FA-12046 / Sensor fusion consistency / Open access

Sensor clock offset is applied with the wrong sign · case 01

Cross-sensor association rejects simultaneous samples.

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

ROOT CAUSE

Sensor-local time is compared directly to reference time.

THE FAILURE

Sensor-local time is compared directly to reference time.

Unsuccessful approach: Taking the offset magnitude loses the sign for slow sensor clocks.

Case contract

Return whether local-offset lies within tolerance of reference; offset equals sensor-local minus reference time and tolerance is nonnegative.

Why this case matters

Deterministic sensor-fusion model isolating one consistency contract; no hardware or production estimator is simulated.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(local, offset, reference, tolerance):
    return abs(local-reference) <= tolerance
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fast sensor', solve(10+N,N,10,0), True)
check('slow sensor', solve(10-N,-N,10,0), True)
check('positive boundary', solve(12+N,N,10,2), True)
check('outside association', solve(13+N,N,10,2), False)
check('zero offset', solve(N,0,N,0), True)
check('negative reference time', solve(-10-N,-N,-10,0), True)
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
fast sensorFalseTrueFailed
slow sensorFalseTrueFailed
positive boundaryFalseTrueFailed
outside associationFalseFalsePassed
zero offsetTrueTruePassed
negative reference timeFalseTrueFailed

SHA-256 / 8af7d7e734a51db683cf90de1dace12a27e78d535e7db367cc6c5b0546ce29fa

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(local, offset, reference, tolerance):
    return abs(local-abs(offset)-reference) <= tolerance
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fast sensor', solve(10+N,N,10,0), True)
check('slow sensor', solve(10-N,-N,10,0), True)
check('positive boundary', solve(12+N,N,10,2), True)
check('outside association', solve(13+N,N,10,2), False)
check('zero offset', solve(N,0,N,0), True)
check('negative reference time', solve(-10-N,-N,-10,0), True)
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
fast sensorTrueTruePassed
slow sensorFalseTrueFailed
positive boundaryTrueTruePassed
outside associationFalseFalsePassed
zero offsetTrueTruePassed
negative reference timeFalseTrueFailed

SHA-256 / 36f989d4c22a3c4c66aef5cd79a5b0d8b127f35a8705b6c507e6116163e6d514

HELD IN THE MEMBER ARCHIVE

The verified repair and its recorded checks are member-only.

This mechanism has 6 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.

Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.

Member access is invitation-based. Sign in with your invited account to inspect the repair.

Sign in to the archive ↗

Verification & scope

Exact small scalar or two-axis models; no nonlinear dynamics, numerical conditioning, or real sensor noise simulation. 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:38:53.371449+00:00.

Case digest / 6ddc5f939617d2646e115580e3ab44001ebdb7b680deb41911a68bf4d06b0662