FA-55846 / Astronomical coordinate conventions / Open access
Polarization sky position angle: Instrument handedness change fails to update circular polarization sign · case 01
The adapter reports an incorrect mirror v while other fields remain valid.
ROOT CAUSE
Instrument handedness change fails to update circular polarization sign. Faulty expression: d['V']
VERIFIED REPAIR
Preserve the declared model convention at this site: -d['V'] if d['mirror'] else d['V']
Unsuccessful approach: A partial convention repair still uses -d['V']
Case contract
Stokes Q,U rotate from instrument to sky with supplied c=cos(2theta),s=sin(2theta), so Qsky=cQ-sU and Usky=sQ+cU. Instrument mirror reverses U and V; I stays invariant. This model accepts exact supplied trigonometric values and does not infer astronomical angle zero points. Output fields are defined by: sky_q = d['c']*d['Q']-d['s']*d['U']; sky_u = d['s']*d['Q']+d['c']*d['U']; mirror_u = -d['U'] if d['mirror'] else d['U']; mirror_v = -d['V'] if d['mirror'] else d['V']; linear_power = d['Q']**2+d['U']**2; inverse_q = d['c']*d['Q']+d['s']*d['U']
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 {'sky_q': d['c']*d['Q']-d['s']*d['U'], 'sky_u': d['s']*d['Q']+d['c']*d['U'], 'mirror_u': -d['U'] if d['mirror'] else d['U'], 'mirror_v': d['V'], 'linear_power': d['Q']**2+d['U']**2, 'inverse_q': d['c']*d['Q']+d['s']*d['U']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 3, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': 5}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 3, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': 3}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -3, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': -5}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 3, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 34, 'inverse_q': 5}), ({'Q': 0, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 0, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 0, 'inverse_q': 0}), ({'Q': 3, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 3, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 18, 'inverse_q': -3})], 2: [({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 4, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': 5}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 4, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': 4}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -4, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': -5}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 4, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 41, 'inverse_q': 5}), ({'Q': 1, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 1, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 1, 'inverse_q': 0}), ({'Q': 4, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 4, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 25, 'inverse_q': -3})], 3: [({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 5, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': -5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 5, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 2, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 2, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 4, 'inverse_q': 0}), ({'Q': 5, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 5, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 34, 'inverse_q': -3})], 4: [({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 6, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': 5}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 6, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': 6}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -6, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': -5}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 6, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 61, 'inverse_q': 5}), ({'Q': 3, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 3, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 9, 'inverse_q': 0}), ({'Q': 6, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 6, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 45, 'inverse_q': -3})], 5: [({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 7, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': 5}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 7, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': 7}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -7, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': -5}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 7, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 74, 'inverse_q': 5}), ({'Q': 4, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 4, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 16, 'inverse_q': 0}), ({'Q': 7, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 7, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 58, 'inverse_q': -3})]}
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 | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': 2, 'sky_q': -5, 'sky_u': 3} | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': -5, 'sky_u': 3} | Failed |
| astronomical fixture 1 | {'inverse_q': 3, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': 2, 'sky_q': 3, 'sky_u': 5} | {'inverse_q': 3, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 3, 'sky_u': 5} | Failed |
| astronomical fixture 2 | {'inverse_q': -5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': 2, 'sky_q': 5, 'sky_u': -3} | {'inverse_q': -5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 5, 'sky_u': -3} | Failed |
| astronomical fixture 3 | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': 5, 'mirror_v': 2, 'sky_q': -5, 'sky_u': 3} | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': 5, 'mirror_v': 2, 'sky_q': -5, 'sky_u': 3} | Passed |
| astronomical fixture 4 | {'inverse_q': 0, 'linear_power': 0, 'mirror_u': 0, 'mirror_v': 2, 'sky_q': 0, 'sky_u': 0} | {'inverse_q': 0, 'linear_power': 0, 'mirror_u': 0, 'mirror_v': -2, 'sky_q': 0, 'sky_u': 0} | Failed |
| astronomical fixture 5 | {'inverse_q': -3, 'linear_power': 18, 'mirror_u': 3, 'mirror_v': -2, 'sky_q': 3, 'sky_u': 3} | {'inverse_q': -3, 'linear_power': 18, 'mirror_u': 3, 'mirror_v': 2, 'sky_q': 3, 'sky_u': 3} | Failed |
SHA-256 / 42189aef0088e1bd5e49c01fbaa58476c2d57d8413f45bd1970ad4cf58bc2049
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'sky_q': d['c']*d['Q']-d['s']*d['U'], 'sky_u': d['s']*d['Q']+d['c']*d['U'], 'mirror_u': -d['U'] if d['mirror'] else d['U'], 'mirror_v': -d['V'], 'linear_power': d['Q']**2+d['U']**2, 'inverse_q': d['c']*d['Q']+d['s']*d['U']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 3, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': 5}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 3, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': 3}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -3, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': -5}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 3, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 34, 'inverse_q': 5}), ({'Q': 0, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 0, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 0, 'inverse_q': 0}), ({'Q': 3, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 3, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 18, 'inverse_q': -3})], 2: [({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 4, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': 5}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 4, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': 4}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -4, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': -5}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 4, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 41, 'inverse_q': 5}), ({'Q': 1, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 1, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 1, 'inverse_q': 0}), ({'Q': 4, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 4, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 25, 'inverse_q': -3})], 3: [({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 5, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': -5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 5, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 2, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 2, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 4, 'inverse_q': 0}), ({'Q': 5, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 5, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 34, 'inverse_q': -3})], 4: [({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 6, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': 5}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 6, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': 6}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -6, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': -5}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 6, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 61, 'inverse_q': 5}), ({'Q': 3, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 3, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 9, 'inverse_q': 0}), ({'Q': 6, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 6, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 45, 'inverse_q': -3})], 5: [({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 7, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': 5}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 7, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': 7}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -7, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': -5}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 7, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 74, 'inverse_q': 5}), ({'Q': 4, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 4, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 16, 'inverse_q': 0}), ({'Q': 7, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 7, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 58, 'inverse_q': -3})]}
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 | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': -5, 'sky_u': 3} | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': -5, 'sky_u': 3} | Passed |
| astronomical fixture 1 | {'inverse_q': 3, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 3, 'sky_u': 5} | {'inverse_q': 3, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 3, 'sky_u': 5} | Passed |
| astronomical fixture 2 | {'inverse_q': -5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 5, 'sky_u': -3} | {'inverse_q': -5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 5, 'sky_u': -3} | Passed |
| astronomical fixture 3 | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': 5, 'mirror_v': -2, 'sky_q': -5, 'sky_u': 3} | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': 5, 'mirror_v': 2, 'sky_q': -5, 'sky_u': 3} | Failed |
| astronomical fixture 4 | {'inverse_q': 0, 'linear_power': 0, 'mirror_u': 0, 'mirror_v': -2, 'sky_q': 0, 'sky_u': 0} | {'inverse_q': 0, 'linear_power': 0, 'mirror_u': 0, 'mirror_v': -2, 'sky_q': 0, 'sky_u': 0} | Passed |
| astronomical fixture 5 | {'inverse_q': -3, 'linear_power': 18, 'mirror_u': 3, 'mirror_v': 2, 'sky_q': 3, 'sky_u': 3} | {'inverse_q': -3, 'linear_power': 18, 'mirror_u': 3, 'mirror_v': 2, 'sky_q': 3, 'sky_u': 3} | Passed |
SHA-256 / 8aabb876471c1a99d1704292a9388540638d9604a36ca0a9573806c8d37e6d6c
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(d):
return {'sky_q': d['c']*d['Q']-d['s']*d['U'], 'sky_u': d['s']*d['Q']+d['c']*d['U'], 'mirror_u': -d['U'] if d['mirror'] else d['U'], 'mirror_v': -d['V'] if d['mirror'] else d['V'], 'linear_power': d['Q']**2+d['U']**2, 'inverse_q': d['c']*d['Q']+d['s']*d['U']}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 3, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': 5}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 3, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': 3}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -3, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 34, 'inverse_q': -5}), ({'Q': 3, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 3, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 34, 'inverse_q': 5}), ({'Q': 0, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 0, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 0, 'inverse_q': 0}), ({'Q': 3, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 3, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 18, 'inverse_q': -3})], 2: [({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 4, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': 5}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 4, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': 4}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -4, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 41, 'inverse_q': -5}), ({'Q': 4, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 4, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 41, 'inverse_q': 5}), ({'Q': 1, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 1, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 1, 'inverse_q': 0}), ({'Q': 4, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 4, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 25, 'inverse_q': -3})], 3: [({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 5, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 50, 'inverse_q': -5}), ({'Q': 5, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 5, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 50, 'inverse_q': 5}), ({'Q': 2, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 2, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 4, 'inverse_q': 0}), ({'Q': 5, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 5, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 34, 'inverse_q': -3})], 4: [({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 6, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': 5}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 6, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': 6}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -6, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 61, 'inverse_q': -5}), ({'Q': 6, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 6, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 61, 'inverse_q': 5}), ({'Q': 3, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 3, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 9, 'inverse_q': 0}), ({'Q': 6, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 6, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 45, 'inverse_q': -3})], 5: [({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': -5, 'sky_u': 7, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': 5}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 1, 's': 0, 'mirror': True}, {'sky_q': 7, 'sky_u': 5, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': 7}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': -1, 'mirror': True}, {'sky_q': 5, 'sky_u': -7, 'mirror_u': -5, 'mirror_v': -2, 'linear_power': 74, 'inverse_q': -5}), ({'Q': 7, 'U': 5, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': False}, {'sky_q': -5, 'sky_u': 7, 'mirror_u': 5, 'mirror_v': 2, 'linear_power': 74, 'inverse_q': 5}), ({'Q': 4, 'U': 0, 'V': 2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 0, 'sky_u': 4, 'mirror_u': 0, 'mirror_v': -2, 'linear_power': 16, 'inverse_q': 0}), ({'Q': 7, 'U': -3, 'V': -2, 'I': 20, 'c': 0, 's': 1, 'mirror': True}, {'sky_q': 3, 'sky_u': 7, 'mirror_u': 3, 'mirror_v': 2, 'linear_power': 58, 'inverse_q': -3})]}
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 | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': -5, 'sky_u': 3} | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': -5, 'sky_u': 3} | Passed |
| astronomical fixture 1 | {'inverse_q': 3, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 3, 'sky_u': 5} | {'inverse_q': 3, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 3, 'sky_u': 5} | Passed |
| astronomical fixture 2 | {'inverse_q': -5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 5, 'sky_u': -3} | {'inverse_q': -5, 'linear_power': 34, 'mirror_u': -5, 'mirror_v': -2, 'sky_q': 5, 'sky_u': -3} | Passed |
| astronomical fixture 3 | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': 5, 'mirror_v': 2, 'sky_q': -5, 'sky_u': 3} | {'inverse_q': 5, 'linear_power': 34, 'mirror_u': 5, 'mirror_v': 2, 'sky_q': -5, 'sky_u': 3} | Passed |
| astronomical fixture 4 | {'inverse_q': 0, 'linear_power': 0, 'mirror_u': 0, 'mirror_v': -2, 'sky_q': 0, 'sky_u': 0} | {'inverse_q': 0, 'linear_power': 0, 'mirror_u': 0, 'mirror_v': -2, 'sky_q': 0, 'sky_u': 0} | Passed |
| astronomical fixture 5 | {'inverse_q': -3, 'linear_power': 18, 'mirror_u': 3, 'mirror_v': 2, 'sky_q': 3, 'sky_u': 3} | {'inverse_q': -3, 'linear_power': 18, 'mirror_u': 3, 'mirror_v': 2, 'sky_q': 3, 'sky_u': 3} | Passed |
SHA-256 / 4a28fb175f463b27848a789e4161743149251237d929e14d72838e7c0dd23f07
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.669621+00:00.
Case digest / b2eaaba41db467034cdf7ce69bf7957d25a49b1546fe92f4ad68495b90282326