FAILURE MAP
← Case archive

FA-55256 / Astronomical coordinate conventions / Open access

Catalog error ellipse: Astrometric error-ellipse area discards correlated uncertainty · case 01

The adapter reports an incorrect determinant while other fields remain valid.

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

ROOT CAUSE

Astrometric error-ellipse area discards correlated uncertainty. Faulty expression: d['a']*d['b']

VERIFIED REPAIR

Preserve the declared model convention at this site: d['a']*d['b']-d['c']**2

Unsuccessful approach: A partial convention repair still uses d['a']*d['b']-d['c']

Case contract

A tangent-plane catalog covariance has variances a,b and covariance c. Axis scale sx,sy includes signed orientation. A 90-degree basis rotation maps (x,y) to (-y,x). A projected RA coordinate supplied factor q converts covariance using a diagonal Jacobian. No confidence-level conversion is implied. Output fields are defined by: scaled_variance_x = d['a']*d['sx']**2; scaled_covariance = d['c']*d['sx']*d['sy']; rotated_covariance = -d['c']; projected_variance = d['a']*d['q']**2; projected_cross_term = d['c']*d['q']; determinant = d['a']*d['b']-d['c']**2

Why this case matters

Catalog, detector, sky-coordinate, and spectroscopy adapters must preserve the association between numeric coordinates and their declared reference conventions.

1 / The failure

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

N = 1
observations = []
def solve(d):
    return {'scaled_variance_x': d['a']*d['sx']**2, 'scaled_covariance': d['c']*d['sx']*d['sy'], 'rotated_covariance': -d['c'], 'projected_variance': d['a']*d['q']**2, 'projected_cross_term': d['c']*d['q'], 'determinant': d['a']*d['b']}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'a': 9, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 9, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 36, 'projected_cross_term': 0, 'determinant': 144}), ({'a': 9, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 9, 'projected_cross_term': 3, 'determinant': 135}), ({'a': 4, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 16, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 16, 'projected_cross_term': -4, 'determinant': 96})], 2: [({'a': 10, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 10, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 40, 'projected_cross_term': 0, 'determinant': 160}), ({'a': 10, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 10, 'projected_cross_term': 3, 'determinant': 151}), ({'a': 5, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 20, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 20, 'projected_cross_term': -4, 'determinant': 121})], 3: [({'a': 11, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 11, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 44, 'projected_cross_term': 0, 'determinant': 176}), ({'a': 11, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 11, 'projected_cross_term': 3, 'determinant': 167}), ({'a': 6, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 24, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 24, 'projected_cross_term': -4, 'determinant': 146})], 4: [({'a': 12, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 12, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 48, 'projected_cross_term': 0, 'determinant': 192}), ({'a': 12, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 12, 'projected_cross_term': 3, 'determinant': 183}), ({'a': 7, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 28, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 28, 'projected_cross_term': -4, 'determinant': 171})], 5: [({'a': 13, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 13, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 52, 'projected_cross_term': 0, 'determinant': 208}), ({'a': 13, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 13, 'projected_cross_term': 3, 'determinant': 199}), ({'a': 8, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 32, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 32, 'projected_cross_term': -4, 'determinant': 196})]}
for i, (record, expected) in enumerate(fixtures[N]):
    check('astronomical fixture %s' % i, solve(record), expected)
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
astronomical fixture 0{'determinant': 144, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Failed
astronomical fixture 1{'determinant': 144, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': 3, 'scaled_variance_x': 9}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': 3, 'scaled_variance_x': 9}Failed
astronomical fixture 2{'determinant': 144, 'projected_cross_term': 0, 'projected_variance': 36, 'rotated_covariance': 0, 'scaled_covariance': 0, 'scaled_variance_x': 36}{'determinant': 144, 'projected_cross_term': 0, 'projected_variance': 36, 'rotated_covariance': 0, 'scaled_covariance': 0, 'scaled_variance_x': 36}Passed
astronomical fixture 3{'determinant': 144, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Failed
astronomical fixture 4{'determinant': 144, 'projected_cross_term': 3, 'projected_variance': 9, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 3, 'projected_variance': 9, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Failed
astronomical fixture 5{'determinant': 100, 'projected_cross_term': -4, 'projected_variance': 16, 'rotated_covariance': 2, 'scaled_covariance': 12, 'scaled_variance_x': 16}{'determinant': 96, 'projected_cross_term': -4, 'projected_variance': 16, 'rotated_covariance': 2, 'scaled_covariance': 12, 'scaled_variance_x': 16}Failed

SHA-256 / 68fde74d4b9866c1fe71104c10c4f05821bffe5b3d53349fdeaef0ece2feb9ba

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(d):
    return {'scaled_variance_x': d['a']*d['sx']**2, 'scaled_covariance': d['c']*d['sx']*d['sy'], 'rotated_covariance': -d['c'], 'projected_variance': d['a']*d['q']**2, 'projected_cross_term': d['c']*d['q'], 'determinant': d['a']*d['b']-d['c']}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'a': 9, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 9, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 36, 'projected_cross_term': 0, 'determinant': 144}), ({'a': 9, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 9, 'projected_cross_term': 3, 'determinant': 135}), ({'a': 4, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 16, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 16, 'projected_cross_term': -4, 'determinant': 96})], 2: [({'a': 10, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 10, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 40, 'projected_cross_term': 0, 'determinant': 160}), ({'a': 10, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 10, 'projected_cross_term': 3, 'determinant': 151}), ({'a': 5, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 20, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 20, 'projected_cross_term': -4, 'determinant': 121})], 3: [({'a': 11, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 11, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 44, 'projected_cross_term': 0, 'determinant': 176}), ({'a': 11, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 11, 'projected_cross_term': 3, 'determinant': 167}), ({'a': 6, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 24, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 24, 'projected_cross_term': -4, 'determinant': 146})], 4: [({'a': 12, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 12, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 48, 'projected_cross_term': 0, 'determinant': 192}), ({'a': 12, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 12, 'projected_cross_term': 3, 'determinant': 183}), ({'a': 7, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 28, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 28, 'projected_cross_term': -4, 'determinant': 171})], 5: [({'a': 13, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 13, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 52, 'projected_cross_term': 0, 'determinant': 208}), ({'a': 13, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 13, 'projected_cross_term': 3, 'determinant': 199}), ({'a': 8, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 32, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 32, 'projected_cross_term': -4, 'determinant': 196})]}
for i, (record, expected) in enumerate(fixtures[N]):
    check('astronomical fixture %s' % i, solve(record), expected)
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
astronomical fixture 0{'determinant': 141, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Failed
astronomical fixture 1{'determinant': 141, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': 3, 'scaled_variance_x': 9}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': 3, 'scaled_variance_x': 9}Failed
astronomical fixture 2{'determinant': 144, 'projected_cross_term': 0, 'projected_variance': 36, 'rotated_covariance': 0, 'scaled_covariance': 0, 'scaled_variance_x': 36}{'determinant': 144, 'projected_cross_term': 0, 'projected_variance': 36, 'rotated_covariance': 0, 'scaled_covariance': 0, 'scaled_variance_x': 36}Passed
astronomical fixture 3{'determinant': 141, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Failed
astronomical fixture 4{'determinant': 141, 'projected_cross_term': 3, 'projected_variance': 9, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 3, 'projected_variance': 9, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Failed
astronomical fixture 5{'determinant': 102, 'projected_cross_term': -4, 'projected_variance': 16, 'rotated_covariance': 2, 'scaled_covariance': 12, 'scaled_variance_x': 16}{'determinant': 96, 'projected_cross_term': -4, 'projected_variance': 16, 'rotated_covariance': 2, 'scaled_covariance': 12, 'scaled_variance_x': 16}Failed

SHA-256 / d52ea6019f6ea222b15d9764c6c567db65de022507fd17153d92569e0fbd4f67

3 / The verified repair

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

N = 1
observations = []
def solve(d):
    return {'scaled_variance_x': d['a']*d['sx']**2, 'scaled_covariance': d['c']*d['sx']*d['sy'], 'rotated_covariance': -d['c'], 'projected_variance': d['a']*d['q']**2, 'projected_cross_term': d['c']*d['q'], 'determinant': d['a']*d['b']-d['c']**2}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'a': 9, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 9, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 36, 'projected_cross_term': 0, 'determinant': 144}), ({'a': 9, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 36, 'projected_cross_term': 6, 'determinant': 135}), ({'a': 9, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 36, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 9, 'projected_cross_term': 3, 'determinant': 135}), ({'a': 4, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 16, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 16, 'projected_cross_term': -4, 'determinant': 96})], 2: [({'a': 10, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 10, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 40, 'projected_cross_term': 0, 'determinant': 160}), ({'a': 10, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 40, 'projected_cross_term': 6, 'determinant': 151}), ({'a': 10, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 40, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 10, 'projected_cross_term': 3, 'determinant': 151}), ({'a': 5, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 20, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 20, 'projected_cross_term': -4, 'determinant': 121})], 3: [({'a': 11, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 11, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 44, 'projected_cross_term': 0, 'determinant': 176}), ({'a': 11, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 44, 'projected_cross_term': 6, 'determinant': 167}), ({'a': 11, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 44, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 11, 'projected_cross_term': 3, 'determinant': 167}), ({'a': 6, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 24, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 24, 'projected_cross_term': -4, 'determinant': 146})], 4: [({'a': 12, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 12, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 48, 'projected_cross_term': 0, 'determinant': 192}), ({'a': 12, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 48, 'projected_cross_term': 6, 'determinant': 183}), ({'a': 12, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 48, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 12, 'projected_cross_term': 3, 'determinant': 183}), ({'a': 7, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 28, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 28, 'projected_cross_term': -4, 'determinant': 171})], 5: [({'a': 13, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 3, 'sx': 1, 'sy': 1, 'q': 2}, {'scaled_variance_x': 13, 'scaled_covariance': 3, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 0, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': 0, 'rotated_covariance': 0, 'projected_variance': 52, 'projected_cross_term': 0, 'determinant': 208}), ({'a': 13, 'b': 16, 'c': 3, 'sx': -2, 'sy': 3, 'q': 2}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 52, 'projected_cross_term': 6, 'determinant': 199}), ({'a': 13, 'b': 16, 'c': 3, 'sx': 2, 'sy': -3, 'q': 1}, {'scaled_variance_x': 52, 'scaled_covariance': -18, 'rotated_covariance': -3, 'projected_variance': 13, 'projected_cross_term': 3, 'determinant': 199}), ({'a': 8, 'b': 25, 'c': -2, 'sx': 2, 'sy': -3, 'q': 2}, {'scaled_variance_x': 32, 'scaled_covariance': 12, 'rotated_covariance': 2, 'projected_variance': 32, 'projected_cross_term': -4, 'determinant': 196})]}
for i, (record, expected) in enumerate(fixtures[N]):
    check('astronomical fixture %s' % i, solve(record), expected)
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
astronomical fixture 0{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Passed
astronomical fixture 1{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': 3, 'scaled_variance_x': 9}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': 3, 'scaled_variance_x': 9}Passed
astronomical fixture 2{'determinant': 144, 'projected_cross_term': 0, 'projected_variance': 36, 'rotated_covariance': 0, 'scaled_covariance': 0, 'scaled_variance_x': 36}{'determinant': 144, 'projected_cross_term': 0, 'projected_variance': 36, 'rotated_covariance': 0, 'scaled_covariance': 0, 'scaled_variance_x': 36}Passed
astronomical fixture 3{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 6, 'projected_variance': 36, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Passed
astronomical fixture 4{'determinant': 135, 'projected_cross_term': 3, 'projected_variance': 9, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}{'determinant': 135, 'projected_cross_term': 3, 'projected_variance': 9, 'rotated_covariance': -3, 'scaled_covariance': -18, 'scaled_variance_x': 36}Passed
astronomical fixture 5{'determinant': 96, 'projected_cross_term': -4, 'projected_variance': 16, 'rotated_covariance': 2, 'scaled_covariance': 12, 'scaled_variance_x': 16}{'determinant': 96, 'projected_cross_term': -4, 'projected_variance': 16, 'rotated_covariance': 2, 'scaled_covariance': 12, 'scaled_variance_x': 16}Passed

SHA-256 / 30f9cef590d4ff4d2c51d56855b322849b12831759c4cba531ae0ecb8efa3dfd

Verification & scope

Explicitly stipulated finite algebraic adapter; no standards conformance, physical accuracy, or production-library claim. Inputs are the documented finite valid model domain. 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:56.112711+00:00.

Case digest / 76c3ed8c26601a4b2830fe60fb781b9233d4994a32be47bbbb0d93355bc22af5