FAILURE MAP
← Case archive

FA-55526 / Astronomical coordinate conventions / Open access

Refraction coordinate status: Vacuum-coordinate export removes refraction from unrefracted inputs · case 01

The adapter reports an incorrect vacuum requested while other fields remain valid.

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

ROOT CAUSE

Vacuum-coordinate export removes refraction from unrefracted inputs. Faulty expression: d['z']

VERIFIED REPAIR

Preserve the declared model convention at this site: d['z']+d['r'] if d['already'] else d['z']

Unsuccessful approach: A partial convention repair still uses d['z']+d['r']

Case contract

A supplied refraction displacement r is positive toward zenith. True zenith distance z maps to observed z-r. Apparent altitude equals 90-z+r. Pressure p/p0 scales a reference displacement, and the refraction flag prevents a second application. This model does not compute atmosphere physics. Output fields are defined by: observed_zenith = d['z']-d['r']; observed_altitude = 90-d['z']+d['r']; pressure_displacement = d['r']*d['p']/d['p0']; apply_once = d['z'] if d['already'] else d['z']-d['r']; true_zenith_from_observed = d['z']+d['r']; vacuum_requested = d['z']+d['r'] if d['already'] else d['z']

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 {'observed_zenith': d['z']-d['r'], 'observed_altitude': 90-d['z']+d['r'], 'pressure_displacement': d['r']*d['p']/d['p0'], 'apply_once': d['z'] if d['already'] else d['z']-d['r'], 'true_zenith_from_observed': d['z']+d['r'], 'vacuum_requested': d['z']}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'z': 60, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 1.6, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}), ({'z': 60, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 0.0, 'apply_once': 60, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}), ({'z': 60, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 0.0, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}), ({'z': 60, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 1.6, 'apply_once': 60, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}), ({'z': 10, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 11, 'observed_altitude': 79, 'pressure_displacement': -0.8, 'apply_once': 11, 'true_zenith_from_observed': 9, 'vacuum_requested': 10}), ({'z': 60, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 4.0, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60})], 2: [({'z': 61, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 1.6, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61}), ({'z': 61, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 0.0, 'apply_once': 61, 'true_zenith_from_observed': 61, 'vacuum_requested': 61}), ({'z': 61, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 0.0, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61}), ({'z': 61, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 1.6, 'apply_once': 61, 'true_zenith_from_observed': 63, 'vacuum_requested': 63}), ({'z': 11, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 12, 'observed_altitude': 78, 'pressure_displacement': -0.8, 'apply_once': 12, 'true_zenith_from_observed': 10, 'vacuum_requested': 11}), ({'z': 61, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 4.0, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61})], 3: [({'z': 62, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 1.6, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62}), ({'z': 62, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 0.0, 'apply_once': 62, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}), ({'z': 62, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 0.0, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62}), ({'z': 62, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 1.6, 'apply_once': 62, 'true_zenith_from_observed': 64, 'vacuum_requested': 64}), ({'z': 12, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 13, 'observed_altitude': 77, 'pressure_displacement': -0.8, 'apply_once': 13, 'true_zenith_from_observed': 11, 'vacuum_requested': 12}), ({'z': 62, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 4.0, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62})], 4: [({'z': 63, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 1.6, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63}), ({'z': 63, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 63, 'observed_altitude': 27, 'pressure_displacement': 0.0, 'apply_once': 63, 'true_zenith_from_observed': 63, 'vacuum_requested': 63}), ({'z': 63, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 0.0, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63}), ({'z': 63, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 1.6, 'apply_once': 63, 'true_zenith_from_observed': 65, 'vacuum_requested': 65}), ({'z': 13, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 14, 'observed_altitude': 76, 'pressure_displacement': -0.8, 'apply_once': 14, 'true_zenith_from_observed': 12, 'vacuum_requested': 13}), ({'z': 63, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 4.0, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63})], 5: [({'z': 64, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 1.6, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64}), ({'z': 64, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 64, 'observed_altitude': 26, 'pressure_displacement': 0.0, 'apply_once': 64, 'true_zenith_from_observed': 64, 'vacuum_requested': 64}), ({'z': 64, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 0.0, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64}), ({'z': 64, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 1.6, 'apply_once': 64, 'true_zenith_from_observed': 66, 'vacuum_requested': 66}), ({'z': 14, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 15, 'observed_altitude': 75, 'pressure_displacement': -0.8, 'apply_once': 15, 'true_zenith_from_observed': 13, 'vacuum_requested': 14}), ({'z': 64, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 4.0, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64})]}
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{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Passed
astronomical fixture 1{'apply_once': 60, 'observed_altitude': 30, 'observed_zenith': 60, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}{'apply_once': 60, 'observed_altitude': 30, 'observed_zenith': 60, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}Passed
astronomical fixture 2{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Passed
astronomical fixture 3{'apply_once': 60, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}{'apply_once': 60, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}Failed
astronomical fixture 4{'apply_once': 11, 'observed_altitude': 79, 'observed_zenith': 11, 'pressure_displacement': -0.8, 'true_zenith_from_observed': 9, 'vacuum_requested': 10}{'apply_once': 11, 'observed_altitude': 79, 'observed_zenith': 11, 'pressure_displacement': -0.8, 'true_zenith_from_observed': 9, 'vacuum_requested': 10}Passed
astronomical fixture 5{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 4.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 4.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Passed

SHA-256 / f3691275fb44f81fdfc1aaa9bf840bb28354d025318c32afcccd5ea48c8d2582

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(d):
    return {'observed_zenith': d['z']-d['r'], 'observed_altitude': 90-d['z']+d['r'], 'pressure_displacement': d['r']*d['p']/d['p0'], 'apply_once': d['z'] if d['already'] else d['z']-d['r'], 'true_zenith_from_observed': d['z']+d['r'], 'vacuum_requested': d['z']+d['r']}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'z': 60, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 1.6, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}), ({'z': 60, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 0.0, 'apply_once': 60, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}), ({'z': 60, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 0.0, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}), ({'z': 60, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 1.6, 'apply_once': 60, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}), ({'z': 10, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 11, 'observed_altitude': 79, 'pressure_displacement': -0.8, 'apply_once': 11, 'true_zenith_from_observed': 9, 'vacuum_requested': 10}), ({'z': 60, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 4.0, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60})], 2: [({'z': 61, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 1.6, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61}), ({'z': 61, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 0.0, 'apply_once': 61, 'true_zenith_from_observed': 61, 'vacuum_requested': 61}), ({'z': 61, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 0.0, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61}), ({'z': 61, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 1.6, 'apply_once': 61, 'true_zenith_from_observed': 63, 'vacuum_requested': 63}), ({'z': 11, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 12, 'observed_altitude': 78, 'pressure_displacement': -0.8, 'apply_once': 12, 'true_zenith_from_observed': 10, 'vacuum_requested': 11}), ({'z': 61, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 4.0, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61})], 3: [({'z': 62, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 1.6, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62}), ({'z': 62, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 0.0, 'apply_once': 62, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}), ({'z': 62, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 0.0, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62}), ({'z': 62, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 1.6, 'apply_once': 62, 'true_zenith_from_observed': 64, 'vacuum_requested': 64}), ({'z': 12, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 13, 'observed_altitude': 77, 'pressure_displacement': -0.8, 'apply_once': 13, 'true_zenith_from_observed': 11, 'vacuum_requested': 12}), ({'z': 62, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 4.0, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62})], 4: [({'z': 63, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 1.6, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63}), ({'z': 63, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 63, 'observed_altitude': 27, 'pressure_displacement': 0.0, 'apply_once': 63, 'true_zenith_from_observed': 63, 'vacuum_requested': 63}), ({'z': 63, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 0.0, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63}), ({'z': 63, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 1.6, 'apply_once': 63, 'true_zenith_from_observed': 65, 'vacuum_requested': 65}), ({'z': 13, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 14, 'observed_altitude': 76, 'pressure_displacement': -0.8, 'apply_once': 14, 'true_zenith_from_observed': 12, 'vacuum_requested': 13}), ({'z': 63, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 4.0, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63})], 5: [({'z': 64, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 1.6, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64}), ({'z': 64, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 64, 'observed_altitude': 26, 'pressure_displacement': 0.0, 'apply_once': 64, 'true_zenith_from_observed': 64, 'vacuum_requested': 64}), ({'z': 64, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 0.0, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64}), ({'z': 64, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 1.6, 'apply_once': 64, 'true_zenith_from_observed': 66, 'vacuum_requested': 66}), ({'z': 14, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 15, 'observed_altitude': 75, 'pressure_displacement': -0.8, 'apply_once': 15, 'true_zenith_from_observed': 13, 'vacuum_requested': 14}), ({'z': 64, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 4.0, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64})]}
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{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Failed
astronomical fixture 1{'apply_once': 60, 'observed_altitude': 30, 'observed_zenith': 60, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}{'apply_once': 60, 'observed_altitude': 30, 'observed_zenith': 60, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}Passed
astronomical fixture 2{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Failed
astronomical fixture 3{'apply_once': 60, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}{'apply_once': 60, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}Passed
astronomical fixture 4{'apply_once': 11, 'observed_altitude': 79, 'observed_zenith': 11, 'pressure_displacement': -0.8, 'true_zenith_from_observed': 9, 'vacuum_requested': 9}{'apply_once': 11, 'observed_altitude': 79, 'observed_zenith': 11, 'pressure_displacement': -0.8, 'true_zenith_from_observed': 9, 'vacuum_requested': 10}Failed
astronomical fixture 5{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 4.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 4.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Failed

SHA-256 / 37146e8e5c94a3bd10a400d774326bfe50244cae5a702ce1a5648bb362edb648

3 / The verified repair

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

N = 1
observations = []
def solve(d):
    return {'observed_zenith': d['z']-d['r'], 'observed_altitude': 90-d['z']+d['r'], 'pressure_displacement': d['r']*d['p']/d['p0'], 'apply_once': d['z'] if d['already'] else d['z']-d['r'], 'true_zenith_from_observed': d['z']+d['r'], 'vacuum_requested': d['z']+d['r'] if d['already'] else d['z']}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'z': 60, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 1.6, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}), ({'z': 60, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 0.0, 'apply_once': 60, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}), ({'z': 60, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 0.0, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}), ({'z': 60, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 1.6, 'apply_once': 60, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}), ({'z': 10, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 11, 'observed_altitude': 79, 'pressure_displacement': -0.8, 'apply_once': 11, 'true_zenith_from_observed': 9, 'vacuum_requested': 10}), ({'z': 60, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 58, 'observed_altitude': 32, 'pressure_displacement': 4.0, 'apply_once': 58, 'true_zenith_from_observed': 62, 'vacuum_requested': 60})], 2: [({'z': 61, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 1.6, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61}), ({'z': 61, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 0.0, 'apply_once': 61, 'true_zenith_from_observed': 61, 'vacuum_requested': 61}), ({'z': 61, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 0.0, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61}), ({'z': 61, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 1.6, 'apply_once': 61, 'true_zenith_from_observed': 63, 'vacuum_requested': 63}), ({'z': 11, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 12, 'observed_altitude': 78, 'pressure_displacement': -0.8, 'apply_once': 12, 'true_zenith_from_observed': 10, 'vacuum_requested': 11}), ({'z': 61, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 59, 'observed_altitude': 31, 'pressure_displacement': 4.0, 'apply_once': 59, 'true_zenith_from_observed': 63, 'vacuum_requested': 61})], 3: [({'z': 62, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 1.6, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62}), ({'z': 62, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 0.0, 'apply_once': 62, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}), ({'z': 62, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 0.0, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62}), ({'z': 62, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 1.6, 'apply_once': 62, 'true_zenith_from_observed': 64, 'vacuum_requested': 64}), ({'z': 12, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 13, 'observed_altitude': 77, 'pressure_displacement': -0.8, 'apply_once': 13, 'true_zenith_from_observed': 11, 'vacuum_requested': 12}), ({'z': 62, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 60, 'observed_altitude': 30, 'pressure_displacement': 4.0, 'apply_once': 60, 'true_zenith_from_observed': 64, 'vacuum_requested': 62})], 4: [({'z': 63, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 1.6, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63}), ({'z': 63, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 63, 'observed_altitude': 27, 'pressure_displacement': 0.0, 'apply_once': 63, 'true_zenith_from_observed': 63, 'vacuum_requested': 63}), ({'z': 63, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 0.0, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63}), ({'z': 63, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 1.6, 'apply_once': 63, 'true_zenith_from_observed': 65, 'vacuum_requested': 65}), ({'z': 13, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 14, 'observed_altitude': 76, 'pressure_displacement': -0.8, 'apply_once': 14, 'true_zenith_from_observed': 12, 'vacuum_requested': 13}), ({'z': 63, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 61, 'observed_altitude': 29, 'pressure_displacement': 4.0, 'apply_once': 61, 'true_zenith_from_observed': 65, 'vacuum_requested': 63})], 5: [({'z': 64, 'r': 2, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 1.6, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64}), ({'z': 64, 'r': 0, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 64, 'observed_altitude': 26, 'pressure_displacement': 0.0, 'apply_once': 64, 'true_zenith_from_observed': 64, 'vacuum_requested': 64}), ({'z': 64, 'r': 2, 'p': 0, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 0.0, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64}), ({'z': 64, 'r': 2, 'p': 8, 'p0': 10, 'already': True, 'x': 5}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 1.6, 'apply_once': 64, 'true_zenith_from_observed': 66, 'vacuum_requested': 66}), ({'z': 14, 'r': -1, 'p': 8, 'p0': 10, 'already': False, 'x': 5}, {'observed_zenith': 15, 'observed_altitude': 75, 'pressure_displacement': -0.8, 'apply_once': 15, 'true_zenith_from_observed': 13, 'vacuum_requested': 14}), ({'z': 64, 'r': 2, 'p': 20, 'p0': 10, 'already': False, 'x': 0}, {'observed_zenith': 62, 'observed_altitude': 28, 'pressure_displacement': 4.0, 'apply_once': 62, 'true_zenith_from_observed': 66, 'vacuum_requested': 64})]}
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{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Passed
astronomical fixture 1{'apply_once': 60, 'observed_altitude': 30, 'observed_zenith': 60, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}{'apply_once': 60, 'observed_altitude': 30, 'observed_zenith': 60, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 60, 'vacuum_requested': 60}Passed
astronomical fixture 2{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 0.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Passed
astronomical fixture 3{'apply_once': 60, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}{'apply_once': 60, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 1.6, 'true_zenith_from_observed': 62, 'vacuum_requested': 62}Passed
astronomical fixture 4{'apply_once': 11, 'observed_altitude': 79, 'observed_zenith': 11, 'pressure_displacement': -0.8, 'true_zenith_from_observed': 9, 'vacuum_requested': 10}{'apply_once': 11, 'observed_altitude': 79, 'observed_zenith': 11, 'pressure_displacement': -0.8, 'true_zenith_from_observed': 9, 'vacuum_requested': 10}Passed
astronomical fixture 5{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 4.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}{'apply_once': 58, 'observed_altitude': 32, 'observed_zenith': 58, 'pressure_displacement': 4.0, 'true_zenith_from_observed': 62, 'vacuum_requested': 60}Passed

SHA-256 / 44d5f5b26de3579608f17b639dddb96be4372e7965c2d9e47f107a6dfdbfacef

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

Case digest / 838dacd2cbbd34b4af4834e169771060776ba75407c40956f2def9a79c920acd