FA-12086 / Sensor fusion consistency / Open access
Calibration scales measurements but leaves their variances in raw units · case 01
Fusion weights change when an equivalent sensor representation changes units.
ROOT CAUSE
Affine calibration transforms the mean but not covariance.
VERIFIED REPAIR
Apply the squared calibration gain to raw variance; deterministic offset has no variance.
Unsuccessful approach: Multiplying variance by absolute gain only accounts for standard-deviation scaling.
Case contract
For affine sensor calibration y=g*x+b with deterministic integer gain and offset, return calibrated mean and variance [g*x+b, g*g*r]. Raw variance r 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(x, r, gain, offset):
return [gain*x+offset,r]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('gain greater than one', solve(N,N,2,3), [2*N+3,4*N])
check('negative gain', solve(N,N,-3,1), [1-3*N,9*N])
check('offset is deterministic', solve(N,N,1,100*N), [101*N,N])
check('zero gain', solve(N,N,0,7), [7,0])
check('noise free source', solve(N,0,3,N), [4*N,0])
check('negative raw reading', solve(-N,N,2,-N), [-3*N,4*N])
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 |
|---|---|---|---|
| gain greater than one | [5, 1] | [5, 4] | Failed |
| negative gain | [-2, 1] | [-2, 9] | Failed |
| offset is deterministic | [101, 1] | [101, 1] | Passed |
| zero gain | [7, 1] | [7, 0] | Failed |
| noise free source | [4, 0] | [4, 0] | Passed |
| negative raw reading | [-3, 1] | [-3, 4] | Failed |
SHA-256 / c88f8d870695ea99ab4fa433c84a6833141680af7cf646d55145f30b764d2953
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(x, r, gain, offset):
return [gain*x+offset,abs(gain)*r]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('gain greater than one', solve(N,N,2,3), [2*N+3,4*N])
check('negative gain', solve(N,N,-3,1), [1-3*N,9*N])
check('offset is deterministic', solve(N,N,1,100*N), [101*N,N])
check('zero gain', solve(N,N,0,7), [7,0])
check('noise free source', solve(N,0,3,N), [4*N,0])
check('negative raw reading', solve(-N,N,2,-N), [-3*N,4*N])
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 |
|---|---|---|---|
| gain greater than one | [5, 2] | [5, 4] | Failed |
| negative gain | [-2, 3] | [-2, 9] | Failed |
| offset is deterministic | [101, 1] | [101, 1] | Passed |
| zero gain | [7, 0] | [7, 0] | Passed |
| noise free source | [4, 0] | [4, 0] | Passed |
| negative raw reading | [-3, 2] | [-3, 4] | Failed |
SHA-256 / e435f712e99f644bfa3336feb82beb53d73b41b0a942160a967ef54ad5b13f51
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
N = 1
observations = []
def solve(x, r, gain, offset):
return [gain*x+offset,gain*gain*r]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('gain greater than one', solve(N,N,2,3), [2*N+3,4*N])
check('negative gain', solve(N,N,-3,1), [1-3*N,9*N])
check('offset is deterministic', solve(N,N,1,100*N), [101*N,N])
check('zero gain', solve(N,N,0,7), [7,0])
check('noise free source', solve(N,0,3,N), [4*N,0])
check('negative raw reading', solve(-N,N,2,-N), [-3*N,4*N])
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 |
|---|---|---|---|
| gain greater than one | [5, 4] | [5, 4] | Passed |
| negative gain | [-2, 9] | [-2, 9] | Passed |
| offset is deterministic | [101, 1] | [101, 1] | Passed |
| zero gain | [7, 0] | [7, 0] | Passed |
| noise free source | [4, 0] | [4, 0] | Passed |
| negative raw reading | [-3, 4] | [-3, 4] | Passed |
SHA-256 / b0556872eeac83b58bce18bb40084bfa4e253a999bdff15fc5063945c031dcf5
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.676775+00:00.
Case digest / 5eb68fc5e652b38eeaf6415ecfc2dd15ddb6e9818578b4af46f66e8a9fb8ed47