broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'east_longitude': (-d['W'])%360, 'inertial_longitude': (d['P']-d['W'])%360, 'view_latitude': d['B'], 'geodetic_tangent': d['g']*d['latratio'], 'future_prime_meridian': (d['P']+d['rate']*d['dt'])%360, 'future_body_longitude': (-d['W']-d['rate']*d['dt'])%360}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 350, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 10, 'inertial_longitude': 40, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 356}), ({'W': 40, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 320}), ({'W': 40, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 320, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 328})], 2: [({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 351, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 9, 'inertial_longitude': 39, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 355}), ({'W': 41, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 319}), ({'W': 41, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 319, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 327})], 3: [({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 352, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 8, 'inertial_longitude': 38, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 354}), ({'W': 42, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 318}), ({'W': 42, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 318, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 326})], 4: [({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 353, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 7, 'inertial_longitude': 37, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 353}), ({'W': 43, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 317}), ({'W': 43, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 317, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 325})], 5: [({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 354, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 6, 'inertial_longitude': 36, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 352}), ({'W': 44, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 316}), ({'W': 44, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 316, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 324})]}
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)

evaluation_group: astro-planetary-body-fixed-labels

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'east_longitude': (-d['W'])%360, 'inertial_longitude': (d['P']-d['W'])%360, 'view_latitude': -d['B'], 'geodetic_tangent': d['g']*d['latratio'], 'future_prime_meridian': (d['P']+d['rate']*d['dt'])%360, 'future_body_longitude': (-d['W']-d['rate']*d['dt'])%360}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 350, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 10, 'inertial_longitude': 40, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 356}), ({'W': 40, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 320}), ({'W': 40, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 320, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 328})], 2: [({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 351, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 9, 'inertial_longitude': 39, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 355}), ({'W': 41, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 319}), ({'W': 41, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 319, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 327})], 3: [({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 352, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 8, 'inertial_longitude': 38, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 354}), ({'W': 42, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 318}), ({'W': 42, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 318, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 326})], 4: [({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 353, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 7, 'inertial_longitude': 37, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 353}), ({'W': 43, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 317}), ({'W': 43, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 317, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 325})], 5: [({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 354, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 6, 'inertial_longitude': 36, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 352}), ({'W': 44, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 316}), ({'W': 44, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 316, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 324})]}
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)

prompt:
The adapter reports an incorrect view latitude while other fields remain valid.

This explicitly stipulated planetary atlas uses west-positive input longitude W, east-positive prime-meridian angle P, latitude B, and an equatorial mirror flag for a southern view. Body-fixed east longitude is -W; inertial longitude adds P. Supplied sin-latitude ratio g is already calibrated and not recomputed. Output fields are defined by: east_longitude = (-d['W'])%360; inertial_longitude = (d['P']-d['W'])%360; view_latitude = -d['B'] if d['south'] else d['B']; geodetic_tangent = d['g']*d['latratio']; future_prime_meridian = (d['P']+d['rate']*d['dt'])%360; future_body_longitude = (-d['W']-d['rate']*d['dt'])%360

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'east_longitude': (-d['W'])%360, 'inertial_longitude': (d['P']-d['W'])%360, 'view_latitude': -d['B'] if d['south'] else d['B'], 'geodetic_tangent': d['g']/d['latratio'], 'future_prime_meridian': (d['P']+d['rate']*d['dt'])%360, 'future_body_longitude': (-d['W']-d['rate']*d['dt'])%360}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 350, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 10, 'inertial_longitude': 40, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 356}), ({'W': 40, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 320}), ({'W': 40, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 320, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 328})], 2: [({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 351, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 9, 'inertial_longitude': 39, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 355}), ({'W': 41, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 319}), ({'W': 41, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 319, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 327})], 3: [({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 352, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 8, 'inertial_longitude': 38, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 354}), ({'W': 42, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 318}), ({'W': 42, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 318, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 326})], 4: [({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 353, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 7, 'inertial_longitude': 37, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 353}), ({'W': 43, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 317}), ({'W': 43, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 317, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 325})], 5: [({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 354, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 6, 'inertial_longitude': 36, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 352}), ({'W': 44, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 316}), ({'W': 44, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 316, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 324})]}
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)

meaning: Fixture-count band, not measured model difficulty

deps: stdlib

evaluation_group: astro-planetary-body-fixed-labels

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'east_longitude': (-d['W'])%360, 'inertial_longitude': (d['P']-d['W'])%360, 'view_latitude': -d['B'] if d['south'] else d['B'], 'geodetic_tangent': d['g'], 'future_prime_meridian': (d['P']+d['rate']*d['dt'])%360, 'future_body_longitude': (-d['W']-d['rate']*d['dt'])%360}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 350, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 10, 'inertial_longitude': 40, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 356}), ({'W': 40, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 320}), ({'W': 40, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 320, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 328})], 2: [({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 351, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 9, 'inertial_longitude': 39, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 355}), ({'W': 41, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 319}), ({'W': 41, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 319, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 327})], 3: [({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 352, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 8, 'inertial_longitude': 38, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 354}), ({'W': 42, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 318}), ({'W': 42, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 318, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 326})], 4: [({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 353, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 7, 'inertial_longitude': 37, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 353}), ({'W': 43, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 317}), ({'W': 43, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 317, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 325})], 5: [({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 354, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 6, 'inertial_longitude': 36, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 352}), ({'W': 44, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 316}), ({'W': 44, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 316, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 324})]}
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)

prompt:
The adapter reports an incorrect geodetic tangent while other fields remain valid.

This explicitly stipulated planetary atlas uses west-positive input longitude W, east-positive prime-meridian angle P, latitude B, and an equatorial mirror flag for a southern view. Body-fixed east longitude is -W; inertial longitude adds P. Supplied sin-latitude ratio g is already calibrated and not recomputed. Output fields are defined by: east_longitude = (-d['W'])%360; inertial_longitude = (d['P']-d['W'])%360; view_latitude = -d['B'] if d['south'] else d['B']; geodetic_tangent = d['g']*d['latratio']; future_prime_meridian = (d['P']+d['rate']*d['dt'])%360; future_body_longitude = (-d['W']-d['rate']*d['dt'])%360

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'east_longitude': (-d['W'])%360, 'inertial_longitude': (d['P']-d['W'])%360, 'view_latitude': -d['B'] if d['south'] else d['B'], 'geodetic_tangent': d['g']*d['latratio'], 'future_prime_meridian': (d['P']-d['rate']*d['dt'])%360, 'future_body_longitude': (-d['W']-d['rate']*d['dt'])%360}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 350, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 10, 'inertial_longitude': 40, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 356}), ({'W': 40, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 320}), ({'W': 40, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 320, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 328})], 2: [({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 351, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 9, 'inertial_longitude': 39, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 355}), ({'W': 41, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 319}), ({'W': 41, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 319, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 327})], 3: [({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 352, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 8, 'inertial_longitude': 38, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 354}), ({'W': 42, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 318}), ({'W': 42, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 318, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 326})], 4: [({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 353, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 7, 'inertial_longitude': 37, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 353}), ({'W': 43, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 317}), ({'W': 43, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 317, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 325})], 5: [({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 354, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 6, 'inertial_longitude': 36, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 352}), ({'W': 44, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 316}), ({'W': 44, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 316, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 324})]}
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)

evaluation_group: astro-planetary-body-fixed-labels

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'east_longitude': (-d['W'])%360, 'inertial_longitude': (d['P']-d['W'])%360, 'view_latitude': -d['B'] if d['south'] else d['B'], 'geodetic_tangent': d['g']*d['latratio'], 'future_prime_meridian': (d['P']+d['rate'])%360, 'future_body_longitude': (-d['W']-d['rate']*d['dt'])%360}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 350, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 10, 'inertial_longitude': 40, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 356}), ({'W': 40, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 320}), ({'W': 40, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 320, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 328})], 2: [({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 351, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 9, 'inertial_longitude': 39, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 355}), ({'W': 41, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 319}), ({'W': 41, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 319, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 327})], 3: [({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 352, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 8, 'inertial_longitude': 38, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 354}), ({'W': 42, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 318}), ({'W': 42, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 318, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 326})], 4: [({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 353, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 7, 'inertial_longitude': 37, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 353}), ({'W': 43, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 317}), ({'W': 43, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 317, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 325})], 5: [({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 354, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 6, 'inertial_longitude': 36, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 352}), ({'W': 44, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 316}), ({'W': 44, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 316, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 324})]}
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)

prompt:
The adapter reports an incorrect future prime meridian while other fields remain valid.

This explicitly stipulated planetary atlas uses west-positive input longitude W, east-positive prime-meridian angle P, latitude B, and an equatorial mirror flag for a southern view. Body-fixed east longitude is -W; inertial longitude adds P. Supplied sin-latitude ratio g is already calibrated and not recomputed. Output fields are defined by: east_longitude = (-d['W'])%360; inertial_longitude = (d['P']-d['W'])%360; view_latitude = -d['B'] if d['south'] else d['B']; geodetic_tangent = d['g']*d['latratio']; future_prime_meridian = (d['P']+d['rate']*d['dt'])%360; future_body_longitude = (-d['W']-d['rate']*d['dt'])%360

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'east_longitude': (-d['W'])%360, 'inertial_longitude': (d['P']-d['W'])%360, 'view_latitude': -d['B'] if d['south'] else d['B'], 'geodetic_tangent': d['g']*d['latratio'], 'future_prime_meridian': (d['P']+d['rate']*d['dt'])%360, 'future_body_longitude': (d['P']-d['W']-d['rate']*d['dt'])%360}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 350, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 10, 'inertial_longitude': 40, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 356}), ({'W': 40, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 320}), ({'W': 40, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 320, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 328})], 2: [({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 351, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 9, 'inertial_longitude': 39, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 355}), ({'W': 41, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 319}), ({'W': 41, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 319, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 327})], 3: [({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 352, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 8, 'inertial_longitude': 38, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 354}), ({'W': 42, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 318}), ({'W': 42, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 318, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 326})], 4: [({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 353, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 7, 'inertial_longitude': 37, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 353}), ({'W': 43, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 317}), ({'W': 43, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 317, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 325})], 5: [({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 354, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 6, 'inertial_longitude': 36, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 352}), ({'W': 44, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 316}), ({'W': 44, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 316, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 324})]}
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)

evaluation_group: astro-planetary-body-fixed-labels

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'east_longitude': (-d['W'])%360, 'inertial_longitude': (d['P']-d['W'])%360, 'view_latitude': -d['B'] if d['south'] else d['B'], 'geodetic_tangent': d['g']*d['latratio'], 'future_prime_meridian': (d['P']+d['rate']*d['dt'])%360, 'future_body_longitude': (-d['W']+d['rate']*d['dt'])%360}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 350, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 10, 'inertial_longitude': 40, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 356}), ({'W': 40, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 306}), ({'W': 40, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 320, 'inertial_longitude': 60, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 320}), ({'W': 40, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 320, 'inertial_longitude': 320, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 328})], 2: [({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 351, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 9, 'inertial_longitude': 39, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 355}), ({'W': 41, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 305}), ({'W': 41, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 319, 'inertial_longitude': 59, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 319}), ({'W': 41, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 319, 'inertial_longitude': 319, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 327})], 3: [({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 352, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 8, 'inertial_longitude': 38, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 354}), ({'W': 42, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 304}), ({'W': 42, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 318, 'inertial_longitude': 58, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 318}), ({'W': 42, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 318, 'inertial_longitude': 318, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 326})], 4: [({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 353, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 7, 'inertial_longitude': 37, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 353}), ({'W': 43, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 303}), ({'W': 43, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 317, 'inertial_longitude': 57, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 317}), ({'W': 43, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 317, 'inertial_longitude': 317, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 325})], 5: [({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 354, 'P': 30, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 6, 'inertial_longitude': 36, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 44, 'future_body_longitude': 352}), ({'W': 44, 'P': 100, 'B': 20, 'south': True, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -20, 'geodetic_tangent': 6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': -30, 'south': False, 'g': -2, 'latratio': 3, 'rate': 7, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': -30, 'geodetic_tangent': -6, 'future_prime_meridian': 114, 'future_body_longitude': 302}), ({'W': 44, 'P': 100, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': 7, 'dt': 0}, {'east_longitude': 316, 'inertial_longitude': 56, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 100, 'future_body_longitude': 316}), ({'W': 44, 'P': 0, 'B': 20, 'south': False, 'g': 2, 'latratio': 3, 'rate': -4, 'dt': 2}, {'east_longitude': 316, 'inertial_longitude': 316, 'view_latitude': 20, 'geodetic_tangent': 6, 'future_prime_meridian': 352, 'future_body_longitude': 324})]}
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)

prompt:
The adapter reports an incorrect future body longitude while other fields remain valid.

This explicitly stipulated planetary atlas uses west-positive input longitude W, east-positive prime-meridian angle P, latitude B, and an equatorial mirror flag for a southern view. Body-fixed east longitude is -W; inertial longitude adds P. Supplied sin-latitude ratio g is already calibrated and not recomputed. Output fields are defined by: east_longitude = (-d['W'])%360; inertial_longitude = (d['P']-d['W'])%360; view_latitude = -d['B'] if d['south'] else d['B']; geodetic_tangent = d['g']*d['latratio']; future_prime_meridian = (d['P']+d['rate']*d['dt'])%360; future_body_longitude = (-d['W']-d['rate']*d['dt'])%360

split: open-access


broken_source:
"""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)

evaluation_group: astro-refraction-coordinate-status

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'observed_zenith': d['z'], '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)

prompt:
The adapter reports an incorrect observed zenith while other fields remain valid.

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']

split: open-access