mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
Reject out-of-range observation epochs before display
This commit is contained in:
1 parent
0007ace064
commit
ebebf69564
3 files changed
+18
-2
No files matched your search
@@ -141,7 +141,8 @@ export function normalizeAircraftTrack(
|
|||||||
const latitude = finite(row[1]),
|
const latitude = finite(row[1]),
|
||||||
longitude = finite(row[2]);
|
longitude = finite(row[2]);
|
||||||
const offset = finite(row[0]);
|
const offset = finite(row[0]);
|
||||||
const observedAtMs = offset == null ? null : baseTimeMs + offset * 1000;
|
const observedAtMs =
|
||||||
|
offset == null ? null : epoch(baseTimeMs + offset * 1000);
|
||||||
if (
|
if (
|
||||||
!coordinates(latitude, longitude) ||
|
!coordinates(latitude, longitude) ||
|
||||||
observedAtMs == null ||
|
observedAtMs == null ||
|
||||||
|
|||||||
@@ -32,7 +32,12 @@ export function finite(value) {
|
|||||||
|
|
||||||
export function epoch(value, scale = 1) {
|
export function epoch(value, scale = 1) {
|
||||||
const number = finite(value);
|
const number = finite(value);
|
||||||
return number != null && number > 0 ? number * scale : null;
|
const milliseconds = number == null ? null : number * scale;
|
||||||
|
return milliseconds != null &&
|
||||||
|
milliseconds > 0 &&
|
||||||
|
milliseconds <= 8640000000000000
|
||||||
|
? milliseconds
|
||||||
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function cleanText(value) {
|
export function cleanText(value) {
|
||||||
|
|||||||
@@ -261,3 +261,13 @@ test('a malformed vessel row cannot prevent admission of valid positions', async
|
|||||||
assert.equal(snapshot.rejectedCount, 1);
|
assert.equal(snapshot.rejectedCount, 1);
|
||||||
assert.equal(snapshot.complete, false);
|
assert.equal(snapshot.complete, false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('out-of-range source epochs do not reach Date or globe time constructors', () => {
|
||||||
|
const row = [...aircraft];
|
||||||
|
row[3] = 1e100;
|
||||||
|
row[4] = 1e100;
|
||||||
|
const snapshot = openSkySnapshot({ time: 1e100, states: [row] });
|
||||||
|
assert.equal(snapshot.observedAtMs, null);
|
||||||
|
assert.equal(snapshot.records[0].positionTimeMs, null);
|
||||||
|
assert.equal(snapshot.records[0].contactTimeMs, null);
|
||||||
|
});
|
||||||
Reference in new issue
Block a user