FAILURE MAP
← Case archive

FA-69736 / Orbital propagation / Open access

Exponential atmosphere drag: Orbital speed in km/s is squared without conversion · case 01

Drag is a million times too small.

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

ROOT CAUSE

v is used in km/s while density is per cubic metre.

VERIFIED REPAIR

Convert v to m/s before squaring.

Unsuccessful approach: Converting only one factor of v leaves a thousandfold error.

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-b)/H)
    acc=0.5*rho*v**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 [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 [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 [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 [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 [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 [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 [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])]]
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-12][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]]][7.248111e-11, 4.788736e-11][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-14][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]]][1.06946e-10, 7.157254e-10][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.787741e-15, 2.281583e-15][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-13][6.967e-13, 3.71459e-07]Failed

SHA-256 / 03222e531d283d94df54aabfbb8c099705f7c249bdae20e0c46d5019ffa32168

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)*v*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 [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 [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 [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 [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 [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 [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 [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])]]
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-09][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]]][7.248111e-11, 4.788736e-08][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-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]]][1.06946e-10, 7.157254e-07][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.787741e-15, 2.281583e-12][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-10][6.967e-13, 3.71459e-07]Failed

SHA-256 / 4b741d026660383d02dcbc3ec3a113f06d01bd274032ebbf1546dcb5b544301b

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 [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 [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 [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 [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 [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 [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 [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])]]
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 / c5b4ff887167470c642d286c1382b72c92ea6569bc9255dde5d57f0f0b16feb8

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.123157+00:00.

Case digest / 9998964542cb7f6fe3f2d9cccd3d15be8665464a135e5bb6279cc1bd11ee2fee