FA-55636 / Astronomical coordinate conventions / Open access
Air vacuum line coordinate: Air-to-vacuum density conversion violates bin-integral preservation · case 01
The adapter reports an incorrect vacuum density while other fields remain valid.
ROOT CAUSE
Air-to-vacuum density conversion violates bin-integral preservation. Faulty expression: d['F']*d['a']/d['b']
VERIFIED REPAIR
Preserve the declared model convention at this site: d['F']*d['b']/d['a']
Unsuccessful approach: A partial convention repair still uses d['F']
Case contract
The supplied index n=a/b is a positive rational greater than zero. This finite constant-index adapter maps air wavelength to vacuum by multiplication n. Frequency belongs to vacuum wavelength; flux densities change inversely with wavelength-bin Jacobian. It does not model dispersion of refractive index. Output fields are defined by: vacuum_wavelength = d['L']*d['a']/d['b']; air_wavelength = d['L']*d['b']/d['a']; vacuum_width = d['width']*d['a']/d['b']; vacuum_density = d['F']*d['b']/d['a']; vacuum_frequency = d['c']*d['b']/(d['L']*d['a']); line_displacement = d['L']*(d['a']-d['b'])/d['b']
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 {'vacuum_wavelength': d['L']*d['a']/d['b'], 'air_wavelength': d['L']*d['b']/d['a'], 'vacuum_width': d['width']*d['a']/d['b'], 'vacuum_density': d['F']*d['a']/d['b'], 'vacuum_frequency': d['c']*d['b']/(d['L']*d['a']), 'line_displacement': d['L']*(d['a']-d['b'])/d['b']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 10.0, 'air_wavelength': 10.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 12.0, 'line_displacement': 0.0}), ({'L': 10, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 13.333333333333334, 'air_wavelength': 7.5, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 9.0, 'line_displacement': 3.3333333333333335}), ({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 8.0, 'line_displacement': 5.0})], 2: [({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 11.0, 'air_wavelength': 11.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 10.909090909090908, 'line_displacement': 0.0}), ({'L': 11, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 14.666666666666666, 'air_wavelength': 8.25, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 8.181818181818182, 'line_displacement': 3.6666666666666665}), ({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5})], 3: [({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 12.0, 'air_wavelength': 12.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 10.0, 'line_displacement': 0.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.0, 'air_wavelength': 9.0, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 7.5, 'line_displacement': 4.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0})], 4: [({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 13.0, 'air_wavelength': 13.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 9.23076923076923, 'line_displacement': 0.0}), ({'L': 13, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 17.333333333333332, 'air_wavelength': 9.75, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 6.923076923076923, 'line_displacement': 4.333333333333333}), ({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5})], 5: [({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 14.0, 'air_wavelength': 14.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 8.571428571428571, 'line_displacement': 0.0}), ({'L': 14, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.666666666666668, 'air_wavelength': 10.5, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 6.428571428571429, 'line_displacement': 4.666666666666667}), ({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0})]}
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| astronomical fixture 0 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 9.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Failed |
| astronomical fixture 1 | {'air_wavelength': 10.0, 'line_displacement': 0.0, 'vacuum_density': 6.0, 'vacuum_frequency': 12.0, 'vacuum_wavelength': 10.0, 'vacuum_width': 4.0} | {'air_wavelength': 10.0, 'line_displacement': 0.0, 'vacuum_density': 6.0, 'vacuum_frequency': 12.0, 'vacuum_wavelength': 10.0, 'vacuum_width': 4.0} | Passed |
| astronomical fixture 2 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 9.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 0.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 0.0} | Failed |
| astronomical fixture 3 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 0.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 0.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Passed |
| astronomical fixture 4 | {'air_wavelength': 7.5, 'line_displacement': 3.3333333333333335, 'vacuum_density': 8.0, 'vacuum_frequency': 9.0, 'vacuum_wavelength': 13.333333333333334, 'vacuum_width': 5.333333333333333} | {'air_wavelength': 7.5, 'line_displacement': 3.3333333333333335, 'vacuum_density': 4.5, 'vacuum_frequency': 9.0, 'vacuum_wavelength': 13.333333333333334, 'vacuum_width': 5.333333333333333} | Failed |
| astronomical fixture 5 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': -3.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Failed |
SHA-256 / ff4594409b5088c49f1efedc37a6838de920505164ca665eff036caf6d030cac
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'vacuum_wavelength': d['L']*d['a']/d['b'], 'air_wavelength': d['L']*d['b']/d['a'], 'vacuum_width': d['width']*d['a']/d['b'], 'vacuum_density': d['F'], 'vacuum_frequency': d['c']*d['b']/(d['L']*d['a']), 'line_displacement': d['L']*(d['a']-d['b'])/d['b']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 10.0, 'air_wavelength': 10.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 12.0, 'line_displacement': 0.0}), ({'L': 10, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 13.333333333333334, 'air_wavelength': 7.5, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 9.0, 'line_displacement': 3.3333333333333335}), ({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 8.0, 'line_displacement': 5.0})], 2: [({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 11.0, 'air_wavelength': 11.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 10.909090909090908, 'line_displacement': 0.0}), ({'L': 11, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 14.666666666666666, 'air_wavelength': 8.25, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 8.181818181818182, 'line_displacement': 3.6666666666666665}), ({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5})], 3: [({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 12.0, 'air_wavelength': 12.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 10.0, 'line_displacement': 0.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.0, 'air_wavelength': 9.0, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 7.5, 'line_displacement': 4.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0})], 4: [({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 13.0, 'air_wavelength': 13.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 9.23076923076923, 'line_displacement': 0.0}), ({'L': 13, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 17.333333333333332, 'air_wavelength': 9.75, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 6.923076923076923, 'line_displacement': 4.333333333333333}), ({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5})], 5: [({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 14.0, 'air_wavelength': 14.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 8.571428571428571, 'line_displacement': 0.0}), ({'L': 14, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.666666666666668, 'air_wavelength': 10.5, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 6.428571428571429, 'line_displacement': 4.666666666666667}), ({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0})]}
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| astronomical fixture 0 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 6, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Failed |
| astronomical fixture 1 | {'air_wavelength': 10.0, 'line_displacement': 0.0, 'vacuum_density': 6, 'vacuum_frequency': 12.0, 'vacuum_wavelength': 10.0, 'vacuum_width': 4.0} | {'air_wavelength': 10.0, 'line_displacement': 0.0, 'vacuum_density': 6.0, 'vacuum_frequency': 12.0, 'vacuum_wavelength': 10.0, 'vacuum_width': 4.0} | Passed |
| astronomical fixture 2 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 6, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 0.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 0.0} | Failed |
| astronomical fixture 3 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 0.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Passed |
| astronomical fixture 4 | {'air_wavelength': 7.5, 'line_displacement': 3.3333333333333335, 'vacuum_density': 6, 'vacuum_frequency': 9.0, 'vacuum_wavelength': 13.333333333333334, 'vacuum_width': 5.333333333333333} | {'air_wavelength': 7.5, 'line_displacement': 3.3333333333333335, 'vacuum_density': 4.5, 'vacuum_frequency': 9.0, 'vacuum_wavelength': 13.333333333333334, 'vacuum_width': 5.333333333333333} | Failed |
| astronomical fixture 5 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': -2, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Failed |
SHA-256 / 397e6420f1010bb184b3f751f0d800590dea8e78fab69126e39730b181af3087
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'vacuum_wavelength': d['L']*d['a']/d['b'], 'air_wavelength': d['L']*d['b']/d['a'], 'vacuum_width': d['width']*d['a']/d['b'], 'vacuum_density': d['F']*d['b']/d['a'], 'vacuum_frequency': d['c']*d['b']/(d['L']*d['a']), 'line_displacement': d['L']*(d['a']-d['b'])/d['b']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 10.0, 'air_wavelength': 10.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 12.0, 'line_displacement': 0.0}), ({'L': 10, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 8.0, 'line_displacement': 5.0}), ({'L': 10, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 13.333333333333334, 'air_wavelength': 7.5, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 9.0, 'line_displacement': 3.3333333333333335}), ({'L': 10, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 15.0, 'air_wavelength': 6.666666666666667, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 8.0, 'line_displacement': 5.0})], 2: [({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 11.0, 'air_wavelength': 11.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 10.909090909090908, 'line_displacement': 0.0}), ({'L': 11, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5}), ({'L': 11, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 14.666666666666666, 'air_wavelength': 8.25, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 8.181818181818182, 'line_displacement': 3.6666666666666665}), ({'L': 11, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 16.5, 'air_wavelength': 7.333333333333333, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 7.2727272727272725, 'line_displacement': 5.5})], 3: [({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 12.0, 'air_wavelength': 12.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 10.0, 'line_displacement': 0.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0}), ({'L': 12, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 16.0, 'air_wavelength': 9.0, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 7.5, 'line_displacement': 4.0}), ({'L': 12, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 18.0, 'air_wavelength': 8.0, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 6.666666666666667, 'line_displacement': 6.0})], 4: [({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 13.0, 'air_wavelength': 13.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 9.23076923076923, 'line_displacement': 0.0}), ({'L': 13, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5}), ({'L': 13, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 17.333333333333332, 'air_wavelength': 9.75, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 6.923076923076923, 'line_displacement': 4.333333333333333}), ({'L': 13, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 19.5, 'air_wavelength': 8.666666666666666, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 6.153846153846154, 'line_displacement': 6.5})], 5: [({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': 4.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 1, 'b': 1, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 14.0, 'air_wavelength': 14.0, 'vacuum_width': 4.0, 'vacuum_density': 6.0, 'vacuum_frequency': 8.571428571428571, 'line_displacement': 0.0}), ({'L': 14, 'a': 3, 'b': 2, 'width': 0, 'F': 6, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 0.0, 'vacuum_density': 4.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': 0, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': 0.0, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0}), ({'L': 14, 'a': 4, 'b': 3, 'width': 4, 'F': 6, 'c': 120}, {'vacuum_wavelength': 18.666666666666668, 'air_wavelength': 10.5, 'vacuum_width': 5.333333333333333, 'vacuum_density': 4.5, 'vacuum_frequency': 6.428571428571429, 'line_displacement': 4.666666666666667}), ({'L': 14, 'a': 3, 'b': 2, 'width': 4, 'F': -2, 'c': 120}, {'vacuum_wavelength': 21.0, 'air_wavelength': 9.333333333333334, 'vacuum_width': 6.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 5.714285714285714, 'line_displacement': 7.0})]}
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| astronomical fixture 0 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Passed |
| astronomical fixture 1 | {'air_wavelength': 10.0, 'line_displacement': 0.0, 'vacuum_density': 6.0, 'vacuum_frequency': 12.0, 'vacuum_wavelength': 10.0, 'vacuum_width': 4.0} | {'air_wavelength': 10.0, 'line_displacement': 0.0, 'vacuum_density': 6.0, 'vacuum_frequency': 12.0, 'vacuum_wavelength': 10.0, 'vacuum_width': 4.0} | Passed |
| astronomical fixture 2 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 0.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 4.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 0.0} | Passed |
| astronomical fixture 3 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 0.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': 0.0, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Passed |
| astronomical fixture 4 | {'air_wavelength': 7.5, 'line_displacement': 3.3333333333333335, 'vacuum_density': 4.5, 'vacuum_frequency': 9.0, 'vacuum_wavelength': 13.333333333333334, 'vacuum_width': 5.333333333333333} | {'air_wavelength': 7.5, 'line_displacement': 3.3333333333333335, 'vacuum_density': 4.5, 'vacuum_frequency': 9.0, 'vacuum_wavelength': 13.333333333333334, 'vacuum_width': 5.333333333333333} | Passed |
| astronomical fixture 5 | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | {'air_wavelength': 6.666666666666667, 'line_displacement': 5.0, 'vacuum_density': -1.3333333333333333, 'vacuum_frequency': 8.0, 'vacuum_wavelength': 15.0, 'vacuum_width': 6.0} | Passed |
SHA-256 / d19e90b5b28614b7bbabebc50aaa83259754a46a93c2b374ed944154ca5c4a28
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:59.723718+00:00.
Case digest / 38b39e202dd4963be0a5671d608a5158256fdb72e0fcd4963646934880fc9a85