mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +00:00
Release God's Eye View as open source
This commit is contained in:
1 parent
a5aaea7e16
commit
880a672b5e
433 files changed
+219893
-23
No files matched your search
@@ -0,0 +1,51 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {
|
||||
normalizeAdsbLolAircraftState,
|
||||
normalizeAdsbLolPointResponse,
|
||||
} from './adsbLolFallback.js';
|
||||
|
||||
test('normalizes adsb.lol units into an OpenSky-compatible state vector', () => {
|
||||
const state = normalizeAdsbLolAircraftState({
|
||||
hex: 'A1B2C3',
|
||||
flight: 'UAL123 ',
|
||||
lat: 30,
|
||||
lon: -97,
|
||||
alt_baro: 10000,
|
||||
alt_geom: 10200,
|
||||
gs: 200,
|
||||
track: 90,
|
||||
baro_rate: 600,
|
||||
seen_pos: 2,
|
||||
seen: 1,
|
||||
category: 'A3',
|
||||
}, 1000);
|
||||
|
||||
assert.equal(state[0], 'a1b2c3');
|
||||
assert.equal(state[1], 'UAL123');
|
||||
assert.equal(state[2], null);
|
||||
assert.equal(state[3], 998);
|
||||
assert.equal(state[5], -97);
|
||||
assert.equal(state[6], 30);
|
||||
assert.equal(state[7], 3048);
|
||||
assert.ok(Math.abs(state[9] - 102.8888) < 0.001);
|
||||
assert.equal(state[10], 90);
|
||||
assert.ok(Math.abs(state[11] - 3.048) < 0.001);
|
||||
assert.equal(state[13], 3108.96);
|
||||
assert.equal(state[17], 4);
|
||||
});
|
||||
|
||||
test('keeps grounded fallback contacts and rejects rows without positions', () => {
|
||||
const normalized = normalizeAdsbLolPointResponse({
|
||||
now: 1_700_000_000_000,
|
||||
ac: [
|
||||
{ hex: 'abc123', lat: 0, lon: 0, alt_baro: 'ground', gs: 8 },
|
||||
{ hex: 'def456', lat: null, lon: 10, alt_baro: 5000 },
|
||||
],
|
||||
});
|
||||
|
||||
assert.equal(normalized.time, 1_700_000_000);
|
||||
assert.equal(normalized.states.length, 1);
|
||||
assert.equal(normalized.states[0][7], null);
|
||||
assert.equal(normalized.states[0][8], true);
|
||||
});
|
||||
Reference in new issue
Block a user