FAILURE MAP
← Case archive

FA-69731 / Orbital propagation / Open access

Exponential atmosphere drag: Exponential decay is measured from sea level · case 01

Density is vanishingly small in every upper band.

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

ROOT CAUSE

The exponent uses alt/H instead of (alt-base)/H.

VERIFIED REPAIR

Measure height above the band base.

Unsuccessful approach: Using a positive exponent makes density grow with altitude.

Case contract

Input [alt km, v km/s, cd, area m^2, mass kg, rows]: rows are [base km, rho0 kg/m^3, H km]; the band is the highest base <= alt (None below every base). rho=rho0 exp(-(alt-base)/H). Drag acceleration = 0.5 rho (1000 v)^2 cd area/mass (m/s^2). Return [rho, accel] formatted with 7 significant digits.

Why this case matters

Orbit determination and mission planning chain many small conversions; one wrong branch or unit silently moves a spacecraft by kilometres.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    alt,v,cd,area,mass,rows=x
    cand=[rw for rw in rows if rw[0]<=alt]
    if not cand: return None
    b,rho0,H=max(cand)
    rho=rho0*math.exp(-alt/H)
    acc=0.5*rho*(v*1000)**2*cd*area/mass
    return [float('%.6e'%rho),float('%.6e'%acc)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07])], [('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None)], [('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05])], [('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07])], [('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][1.104292e-14, 1.429215e-08][2.968709e-12, 3.84221e-06]Failed
exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][3.306208e-13, 2.18437e-07][7.248111e-11, 4.788736e-05]Failed
exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][1.346978e-17, 1.51535e-11][3.614e-14, 4.06575e-08]Failed
exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][4.35947e-18, 2.917532e-11][1.06946e-10, 0.0007157254]Failed
exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][1.411733e-18, 8.503713e-13][3.787741e-15, 2.281583e-09]Failed
exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]NoneNonePassed
exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][2.7584e-16, 1.470694e-10][6.967e-13, 3.71459e-07]Failed

SHA-256 / 57753578006f9e97f362ee134501fa846a9755303b222b4655b0ffb1141c33e3

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    alt,v,cd,area,mass,rows=x
    cand=[rw for rw in rows if rw[0]<=alt]
    if not cand: return None
    b,rho0,H=max(cand)
    rho=rho0*math.exp((alt-b)/H)
    acc=0.5*rho*(v*1000)**2*cd*area/mass
    return [float('%.6e'%rho),float('%.6e'%acc)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07])], [('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None)], [('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05])], [('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07])], [('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][1.236583e-10, 0.000160043][2.968709e-12, 3.84221e-06]Failed
exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][1.073179e-09, 0.000709036][7.248111e-11, 4.788736e-05]Failed
exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][3.614e-14, 4.06575e-08][3.614e-14, 4.06575e-08]Passed
exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][0.002623587, 17558.09][1.06946e-10, 0.0007157254]Failed
exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][3.448229e-13, 2.077075e-07][3.787741e-15, 2.281583e-09]Failed
exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]NoneNonePassed
exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][6.967e-13, 3.71459e-07][6.967e-13, 3.71459e-07]Passed

SHA-256 / ade24a0816829d7bbd2f706b5e18385380a10cc0128fa9367be113b9375e1f11

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    alt,v,cd,area,mass,rows=x
    cand=[rw for rw in rows if rw[0]<=alt]
    if not cand: return None
    b,rho0,H=max(cand)
    rho=rho0*math.exp(-(alt-b)/H)
    acc=0.5*rho*(v*1000)**2*cd*area/mass
    return [float('%.6e'%rho),float('%.6e'%acc)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07])], [('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None)], [('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05])], [('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06]), ('exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [7.248111e-11, 4.788736e-05]), ('exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.614e-14, 4.06575e-08]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07])], [('exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [3.787741e-15, 2.281583e-09]), ('exponential atmosphere drag [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [120, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.762316e-08, 0.1179412]), ('exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [1.06946e-10, 0.0007157254]), ('exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [6.967e-13, 3.71459e-07]), ('exponential atmosphere drag [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [50, 7.8, 2.2, 2.0, 20.0, [[100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], None), ('exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]', [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]], [2.968709e-12, 3.84221e-06])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
exponential atmosphere drag [400, 7.67, 2.2, 10.0, 500.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][2.968709e-12, 3.84221e-06][2.968709e-12, 3.84221e-06]Passed
exponential atmosphere drag [250, 7.75, 2.2, 1.0, 100.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][7.248111e-11, 4.788736e-05][7.248111e-11, 4.788736e-05]Passed
exponential atmosphere drag [700, 7.5, 2.0, 20.0, 1000.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][3.614e-14, 4.06575e-08][3.614e-14, 4.06575e-08]Passed
exponential atmosphere drag [150, 7.8, 2.2, 5.0, 50.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][1.06946e-10, 0.0007157254][1.06946e-10, 0.0007157254]Passed
exponential atmosphere drag [900, 7.4, 2.2, 3.0, 300.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][3.787741e-15, 2.281583e-09][3.787741e-15, 2.281583e-09]Passed
exponential atmosphere drag [-5, 0.3, 1.0, 1.0, 1.0, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]]NoneNonePassed
exponential atmosphere drag [500, 7.6, 2.4, 0.01, 1.3, [[0, 1.225, 7.249], [100, 5.297e-07, 5.877], [200, 2.789e-10, 37.105], [300, 1.916e-11, 53.628], [500, 6.967e-13, 63.822], [700, 3.614e-14, 88.667]]][6.967e-13, 3.71459e-07][6.967e-13, 3.71459e-07]Passed

SHA-256 / 3abcb3193e6afd7a24d2bb6afd6bc722d674633475950a7bd85f43df9a11ee8a

Verification & scope

A deterministic toy two-body model with stipulated constants and conventions; not flight dynamics software or a validated SGP4 implementation. 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:48:14.080197+00:00.

Case digest / 0fc583a9641a7a2e8a948157bda1db1536b5fdfa35fceb778d9bfd8ad422ee95