FA-55776 / Astronomical coordinate conventions / Open access
Celestial stereographic projection: Stereographic latitude is computed using a tangent-plane denominator · case 01
The adapter reports an incorrect plane north while other fields remain valid.
ROOT CAUSE
Stereographic latitude is computed using a tangent-plane denominator. Faulty expression: 2*d['n']/d['z'] if d['z']!=0 else None
VERIFIED REPAIR
Preserve the declared model convention at this site: 2*d['n']/(1+d['z']) if d['z']>-1 else None
Unsuccessful approach: A partial convention repair still uses 2*d['n']/(1+abs(d['z']))
Case contract
A supplied direction e,n,z is mapped by a stipulated stereographic sky chart with scale 2/(1+z), valid z>-1. Reference chart origin ox,oy is added only after projection. Exact antipode has no finite chart coordinate; inputs here have z>=-1. Output fields are defined by: plane_east = 2*d['e']/(1+d['z']) if d['z']>-1 else None; plane_north = 2*d['n']/(1+d['z']) if d['z']>-1 else None; valid = d['z']>-1; translated_east = d['ox']+2*d['e']/(1+d['z']) if d['z']>-1 else None; translated_north = d['oy']+2*d['n']/(1+d['z']) if d['z']>-1 else None; radial_scale = 2/(1+d['z']) if d['z']>-1 else None
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 {'plane_east': 2*d['e']/(1+d['z']) if d['z']>-1 else None, 'plane_north': 2*d['n']/d['z'] if d['z']!=0 else None, 'valid': d['z']>-1, 'translated_east': d['ox']+2*d['e']/(1+d['z']) if d['z']>-1 else None, 'translated_north': d['oy']+2*d['n']/(1+d['z']) if d['z']>-1 else None, 'radial_scale': 2/(1+d['z']) if d['z']>-1 else None}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'e': 2, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 2.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 12.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 2, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 2, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 2, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 2.6666666666666665, 'plane_north': 4.0, 'valid': True, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 2, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 2.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 2.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 2, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 2: [({'e': 3, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 3.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 13.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 3, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 6.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 16.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 3, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 3, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 4.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 3, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 3.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 3.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 3, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 12.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 22.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 3: [({'e': 4, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 4, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 4, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 4, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 5.333333333333333, 'plane_north': 4.0, 'valid': True, 'translated_east': 15.333333333333332, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 4, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 4.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 4.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 4, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 16.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 26.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 4: [({'e': 5, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 5.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 15.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 5, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 10.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 20.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 5, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 5, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 6.666666666666667, 'plane_north': 4.0, 'valid': True, 'translated_east': 16.666666666666668, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 5, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 5.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 5.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 5, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 20.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 30.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 5: [({'e': 6, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 6.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 16.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 6, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 12.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 22.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 6, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 6, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': 4.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 6, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 6.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 6.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 6, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 24.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 34.0, 'translated_north': 12.0, 'radial_scale': 4.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 | {'plane_east': 2.0, 'plane_north': 6.0, 'radial_scale': 1.0, 'translated_east': 12.0, 'translated_north': 23.0, 'valid': True} | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 12.0, 'translated_north': 23.0, 'valid': True} | Failed |
| astronomical fixture 1 | {'plane_east': 4.0, 'plane_north': None, 'radial_scale': 2.0, 'translated_east': 14.0, 'translated_north': 26.0, 'valid': True} | {'plane_east': 4.0, 'plane_north': 6.0, 'radial_scale': 2.0, 'translated_east': 14.0, 'translated_north': 26.0, 'valid': True} | Failed |
| astronomical fixture 2 | {'plane_east': None, 'plane_north': -6.0, 'radial_scale': None, 'translated_east': None, 'translated_north': None, 'valid': False} | {'plane_east': None, 'plane_north': None, 'radial_scale': None, 'translated_east': None, 'translated_north': None, 'valid': False} | Failed |
| astronomical fixture 3 | {'plane_east': 2.6666666666666665, 'plane_north': 12.0, 'radial_scale': 1.3333333333333333, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'valid': True} | {'plane_east': 2.6666666666666665, 'plane_north': 4.0, 'radial_scale': 1.3333333333333333, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'valid': True} | Failed |
| astronomical fixture 4 | {'plane_east': 2.0, 'plane_north': 6.0, 'radial_scale': 1.0, 'translated_east': 2.0, 'translated_north': 3.0, 'valid': True} | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 2.0, 'translated_north': 3.0, 'valid': True} | Failed |
| astronomical fixture 5 | {'plane_east': 8.0, 'plane_north': 8.0, 'radial_scale': 4.0, 'translated_east': 18.0, 'translated_north': 12.0, 'valid': True} | {'plane_east': 8.0, 'plane_north': -8.0, 'radial_scale': 4.0, 'translated_east': 18.0, 'translated_north': 12.0, 'valid': True} | Failed |
SHA-256 / eb8b0b4f3c80b1a7d765c3ed99eaea672fb4e9aa675a0938d9b451177bbd258f
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'plane_east': 2*d['e']/(1+d['z']) if d['z']>-1 else None, 'plane_north': 2*d['n']/(1+abs(d['z'])), 'valid': d['z']>-1, 'translated_east': d['ox']+2*d['e']/(1+d['z']) if d['z']>-1 else None, 'translated_north': d['oy']+2*d['n']/(1+d['z']) if d['z']>-1 else None, 'radial_scale': 2/(1+d['z']) if d['z']>-1 else None}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'e': 2, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 2.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 12.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 2, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 2, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 2, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 2.6666666666666665, 'plane_north': 4.0, 'valid': True, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 2, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 2.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 2.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 2, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 2: [({'e': 3, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 3.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 13.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 3, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 6.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 16.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 3, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 3, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 4.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 3, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 3.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 3.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 3, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 12.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 22.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 3: [({'e': 4, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 4, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 4, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 4, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 5.333333333333333, 'plane_north': 4.0, 'valid': True, 'translated_east': 15.333333333333332, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 4, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 4.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 4.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 4, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 16.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 26.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 4: [({'e': 5, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 5.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 15.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 5, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 10.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 20.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 5, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 5, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 6.666666666666667, 'plane_north': 4.0, 'valid': True, 'translated_east': 16.666666666666668, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 5, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 5.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 5.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 5, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 20.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 30.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 5: [({'e': 6, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 6.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 16.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 6, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 12.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 22.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 6, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 6, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': 4.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 6, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 6.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 6.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 6, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 24.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 34.0, 'translated_north': 12.0, 'radial_scale': 4.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 | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 12.0, 'translated_north': 23.0, 'valid': True} | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 12.0, 'translated_north': 23.0, 'valid': True} | Passed |
| astronomical fixture 1 | {'plane_east': 4.0, 'plane_north': 6.0, 'radial_scale': 2.0, 'translated_east': 14.0, 'translated_north': 26.0, 'valid': True} | {'plane_east': 4.0, 'plane_north': 6.0, 'radial_scale': 2.0, 'translated_east': 14.0, 'translated_north': 26.0, 'valid': True} | Passed |
| astronomical fixture 2 | {'plane_east': None, 'plane_north': 3.0, 'radial_scale': None, 'translated_east': None, 'translated_north': None, 'valid': False} | {'plane_east': None, 'plane_north': None, 'radial_scale': None, 'translated_east': None, 'translated_north': None, 'valid': False} | Failed |
| astronomical fixture 3 | {'plane_east': 2.6666666666666665, 'plane_north': 4.0, 'radial_scale': 1.3333333333333333, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'valid': True} | {'plane_east': 2.6666666666666665, 'plane_north': 4.0, 'radial_scale': 1.3333333333333333, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'valid': True} | Passed |
| astronomical fixture 4 | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 2.0, 'translated_north': 3.0, 'valid': True} | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 2.0, 'translated_north': 3.0, 'valid': True} | Passed |
| astronomical fixture 5 | {'plane_east': 8.0, 'plane_north': -2.6666666666666665, 'radial_scale': 4.0, 'translated_east': 18.0, 'translated_north': 12.0, 'valid': True} | {'plane_east': 8.0, 'plane_north': -8.0, 'radial_scale': 4.0, 'translated_east': 18.0, 'translated_north': 12.0, 'valid': True} | Failed |
SHA-256 / 3b47f6d5f44799babafaa2a82f9da411d53017e34803917c46ca22d0b164b080
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'plane_east': 2*d['e']/(1+d['z']) if d['z']>-1 else None, 'plane_north': 2*d['n']/(1+d['z']) if d['z']>-1 else None, 'valid': d['z']>-1, 'translated_east': d['ox']+2*d['e']/(1+d['z']) if d['z']>-1 else None, 'translated_north': d['oy']+2*d['n']/(1+d['z']) if d['z']>-1 else None, 'radial_scale': 2/(1+d['z']) if d['z']>-1 else None}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'e': 2, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 2.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 12.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 2, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 2, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 2, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 2.6666666666666665, 'plane_north': 4.0, 'valid': True, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 2, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 2.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 2.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 2, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 2: [({'e': 3, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 3.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 13.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 3, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 6.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 16.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 3, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 3, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 4.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 3, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 3.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 3.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 3, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 12.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 22.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 3: [({'e': 4, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 4.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 14.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 4, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 4, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 4, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 5.333333333333333, 'plane_north': 4.0, 'valid': True, 'translated_east': 15.333333333333332, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 4, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 4.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 4.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 4, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 16.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 26.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 4: [({'e': 5, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 5.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 15.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 5, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 10.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 20.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 5, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 5, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 6.666666666666667, 'plane_north': 4.0, 'valid': True, 'translated_east': 16.666666666666668, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 5, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 5.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 5.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 5, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 20.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 30.0, 'translated_north': 12.0, 'radial_scale': 4.0})], 5: [({'e': 6, 'n': 3, 'z': 1, 'ox': 10, 'oy': 20}, {'plane_east': 6.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 16.0, 'translated_north': 23.0, 'radial_scale': 1.0}), ({'e': 6, 'n': 3, 'z': 0, 'ox': 10, 'oy': 20}, {'plane_east': 12.0, 'plane_north': 6.0, 'valid': True, 'translated_east': 22.0, 'translated_north': 26.0, 'radial_scale': 2.0}), ({'e': 6, 'n': 3, 'z': -1, 'ox': 10, 'oy': 20}, {'plane_east': None, 'plane_north': None, 'valid': False, 'translated_east': None, 'translated_north': None, 'radial_scale': None}), ({'e': 6, 'n': 3, 'z': 0.5, 'ox': 10, 'oy': 20}, {'plane_east': 8.0, 'plane_north': 4.0, 'valid': True, 'translated_east': 18.0, 'translated_north': 24.0, 'radial_scale': 1.3333333333333333}), ({'e': 6, 'n': 3, 'z': 1, 'ox': 0, 'oy': 0}, {'plane_east': 6.0, 'plane_north': 3.0, 'valid': True, 'translated_east': 6.0, 'translated_north': 3.0, 'radial_scale': 1.0}), ({'e': 6, 'n': -2, 'z': -0.5, 'ox': 10, 'oy': 20}, {'plane_east': 24.0, 'plane_north': -8.0, 'valid': True, 'translated_east': 34.0, 'translated_north': 12.0, 'radial_scale': 4.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 | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 12.0, 'translated_north': 23.0, 'valid': True} | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 12.0, 'translated_north': 23.0, 'valid': True} | Passed |
| astronomical fixture 1 | {'plane_east': 4.0, 'plane_north': 6.0, 'radial_scale': 2.0, 'translated_east': 14.0, 'translated_north': 26.0, 'valid': True} | {'plane_east': 4.0, 'plane_north': 6.0, 'radial_scale': 2.0, 'translated_east': 14.0, 'translated_north': 26.0, 'valid': True} | Passed |
| astronomical fixture 2 | {'plane_east': None, 'plane_north': None, 'radial_scale': None, 'translated_east': None, 'translated_north': None, 'valid': False} | {'plane_east': None, 'plane_north': None, 'radial_scale': None, 'translated_east': None, 'translated_north': None, 'valid': False} | Passed |
| astronomical fixture 3 | {'plane_east': 2.6666666666666665, 'plane_north': 4.0, 'radial_scale': 1.3333333333333333, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'valid': True} | {'plane_east': 2.6666666666666665, 'plane_north': 4.0, 'radial_scale': 1.3333333333333333, 'translated_east': 12.666666666666666, 'translated_north': 24.0, 'valid': True} | Passed |
| astronomical fixture 4 | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 2.0, 'translated_north': 3.0, 'valid': True} | {'plane_east': 2.0, 'plane_north': 3.0, 'radial_scale': 1.0, 'translated_east': 2.0, 'translated_north': 3.0, 'valid': True} | Passed |
| astronomical fixture 5 | {'plane_east': 8.0, 'plane_north': -8.0, 'radial_scale': 4.0, 'translated_east': 18.0, 'translated_north': 12.0, 'valid': True} | {'plane_east': 8.0, 'plane_north': -8.0, 'radial_scale': 4.0, 'translated_east': 18.0, 'translated_north': 12.0, 'valid': True} | Passed |
SHA-256 / a0b80aee50b23fc7cb3daa90b2eccf63756f35dcf01c810199a8da8b5ce59377
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:46:01.037500+00:00.
Case digest / 11cae009f1d775c241071684375dd5be3c936cdac2ff678826864c00aadbd9dc