{"id":"v001","input":{"as_of":"2026-07-15","events":[{"when":"2026-05-01T22:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-05-10T22:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-06-02T23:00-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"}]},"expect":{"result.through":"2026-07-30","result.current":"yes","result.aircraft.0.takeoffs":3,"result.aircraft.0.landings":3,"result.events.0.counts":"yes","result.events.1.counts":"yes","result.events.2.counts":"yes","ok":true},"source":"add-practitioner-essentials currency scenario (May 1, May 10, and June 2 give currency through July 30, 2026)","sourceVersion":"2026","tolerance":{"result.aircraft.0.takeoffs":{"rel":0,"abs":0},"result.aircraft.0.landings":{"rel":0,"abs":0}}}
{"id":"v002","input":{"as_of":"2026-07-30","events":[{"when":"2026-05-01T22:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-05-10T22:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-06-02T23:00-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"}]},"expect":{"result.current":"yes","result.through":"2026-07-30","ok":true},"source":"Counting worked by hand (tools/vectors/gen_currency.py)","sourceVersion":"2026","tolerance":{}}
{"id":"v003","input":{"as_of":"2026-07-31","events":[{"when":"2026-05-01T22:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-05-10T22:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-06-02T23:00-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"}]},"expect":{"result.current":"no","result.aircraft.0.landings":2,"ok":true},"source":"Counting worked by hand (tools/vectors/gen_currency.py)","sourceVersion":"2026","tolerance":{"result.aircraft.0.landings":{"rel":0,"abs":0}}}
{"id":"v004","input":{"as_of":"2026-07-15","events":[{"when":"2026-05-01T20:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-05-10T03:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":2,"aircraft":"ASEL"},{"when":"2026-06-02T05:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-06-03T23:00-06:00","lat":39.86,"lon":-104.67,"takeoffs":0,"landings":1,"aircraft":"amel"}]},"expect":{"result.through":"none","result.current":"no","result.events.0.counts":"no","result.events.1.counts":"yes","result.events.2.counts":"no","result.events.3.counts":"yes","result.aircraft.0.takeoffs":1,"result.aircraft.0.landings":2,"result.aircraft.1.aircraft":"AMEL","result.aircraft.1.landings":1,"ok":true},"source":"Counting worked by hand (tools/vectors/gen_currency.py)","sourceVersion":"2026","tolerance":{"result.aircraft.0.takeoffs":{"rel":0,"abs":0},"result.aircraft.0.landings":{"rel":0,"abs":0},"result.aircraft.1.landings":{"rel":0,"abs":0}}}
{"id":"v005","input":{"as_of":"2026-06-01","events":[{"when":"2026-05-01T22:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"},{"when":"2026-05-20T22:30-06:00","lat":39.86,"lon":-104.67,"takeoffs":2,"landings":3,"aircraft":"ASEL"}]},"expect":{"result.through":"2026-07-30","result.current":"yes","ok":true},"source":"Counting worked by hand (tools/vectors/gen_currency.py)","sourceVersion":"2026","tolerance":{}}
{"id":"v006","input":{"as_of":"2026-07-15","events":[{"when":"2026-05-01T22:30","lat":39.86,"lon":-104.67,"takeoffs":1,"landings":1,"aircraft":"ASEL"}]},"expect":{"ok":false,"error.code":"INVALID_INPUT"},"source":"Counting worked by hand (tools/vectors/gen_currency.py)","sourceVersion":"2026","tolerance":{}}
{"id": "v007", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-07-30", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v008", "input": {"as_of": "2026-07-31", "events": [{"when": "2026-05-01T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "no", "result.state": 2.0, "result.aircraft.0.takeoffs": 2.0, "result.aircraft.0.landings": 2.0, "result.through": "2026-07-30", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v009", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "no", "result.state": 2.0, "result.aircraft.0.takeoffs": 2.0, "result.aircraft.0.landings": 2.0, "result.events.0.counts": "yes", "result.events.1.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}}}
{"id": "v010", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T20:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "no", "result.state": 2.0, "result.aircraft.0.takeoffs": 2.0, "result.aircraft.0.landings": 2.0, "result.events.0.counts": "no", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v011", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-02T04:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-11T04:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-03T04:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-07-31", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v012", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-02T05:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-11T04:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-03T04:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "no", "result.state": 2.0, "result.aircraft.0.takeoffs": 2.0, "result.aircraft.0.landings": 2.0, "result.events.0.counts": "no", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v013", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 0, "aircraft": "ASEL"}, {"when": "2026-05-10T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "no", "result.state": 2.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 2.0, "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v014", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 3, "landings": 3, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-08-31", "result.events.0.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}}}
{"id": "v015", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "AMEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-07-30", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes", "result.events.3.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}, "result.events.3.counts": {"abs": 0}}}
{"id": "v016", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "AMEL"}, {"when": "2026-05-10T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "AMEL"}, {"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "AMEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-07-30", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v017", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T23:30:00-07:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T23:30:00-07:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:59:00-07:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-07-30", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v018", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T21:30:00-07:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T23:30:00-07:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:59:00-07:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-07-30", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v019", "input": {"as_of": "2026-03-01", "events": [{"when": "2026-01-05T19:30:00-07:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-01-15T19:30:00-07:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-02-01T19:30:00-07:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-04-05", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v020", "input": {"as_of": "2026-03-01", "events": [{"when": "2026-01-05T18:30:00-08:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-01-15T18:30:00-08:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-02-01T18:30:00-08:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-04-05", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v021", "input": {"as_of": "2026-06-10", "events": [{"when": "2026-05-01T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T23:30:00-07:00", "lat": 47.53, "lon": -122.3, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-07-30", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
{"id": "v022", "input": {"as_of": "2026-07-30", "events": [{"when": "2026-05-01T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-05-10T22:30:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}, {"when": "2026-06-02T23:00:00-06:00", "lat": 39.86, "lon": -104.67, "takeoffs": 1, "landings": 1, "aircraft": "ASEL"}]}, "expect": {"ok": true, "result.current": "yes", "result.state": 1.0, "result.aircraft.0.takeoffs": 3.0, "result.aircraft.0.landings": 3.0, "result.through": "2026-07-30", "result.events.0.counts": "yes", "result.events.1.counts": "yes", "result.events.2.counts": "yes"}, "source": "Sun position from pvlib's NREL SPA (sea level, 101325 Pa, 12 C); 14 CFR 61.57(b) applied by hand (tools/vectors/gen_sun_pvlib.py)", "sourceVersion": "pvlib 0.13.0", "tolerance": {"result.current": {"abs": 0}, "result.state": {"abs": 0}, "result.aircraft.0.takeoffs": {"abs": 0}, "result.aircraft.0.landings": {"abs": 0}, "result.through": {"abs": 0}, "result.events.0.counts": {"abs": 0}, "result.events.1.counts": {"abs": 0}, "result.events.2.counts": {"abs": 0}}}
