mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 10:24:02 +00:00
Documents the adapter's skip rule and cross-references the two checks, which sit in separate packages (provider parser and fire layer).
70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { parseFirmsCsv } from './firmsCsv.js';
|
|
import { adaptFirmsRecords } from './firmsAdapt.js';
|
|
test('missing positions do not become fire detections at zero coordinates', () => {
|
|
const csv =
|
|
'latitude,longitude,acq_date,acq_time,confidence,frp\n,1,2026-07-16,1200,n,1\n1, ,2026-07-16,1200,n,1\n95,1,2026-07-16,1200,n,1\n1,181,2026-07-16,1200,n,1\n0,0,2026-07-16,1200,n,1\n-90,-180,2026-07-16,1200,n,1';
|
|
assert.deepEqual(
|
|
parseFirmsCsv(csv).map((r) => [r.lat, r.lon]),
|
|
[
|
|
[0, 0],
|
|
[-90, -180],
|
|
],
|
|
);
|
|
const records = [
|
|
{ lat: null, lon: 1 },
|
|
{ lat: '', lon: 1 },
|
|
{ lat: false, lon: 1 },
|
|
{ lat: 95, lon: 1 },
|
|
{ lat: 1, lon: 181 },
|
|
{ lat: '0', lon: 0 },
|
|
{ lat: -90, lon: -180 },
|
|
];
|
|
assert.deepEqual(
|
|
adaptFirmsRecords(records).map((r) => [r.index, r.lat, r.lon]),
|
|
[
|
|
[0, 0, 0],
|
|
[1, -90, -180],
|
|
],
|
|
);
|
|
});
|
|
|
|
test('both axes keep their exact bounds and drop values just past them', () => {
|
|
const row = (lat, lon) => `${lat},${lon},2026-07-16,1200,n,1`;
|
|
const csv = [
|
|
'latitude,longitude,acq_date,acq_time,confidence,frp',
|
|
row(90, 180),
|
|
row(-90, -180),
|
|
row(90.000001, 0),
|
|
row(-90.000001, 0),
|
|
row(0, 180.000001),
|
|
row(0, -180.000001),
|
|
row(' ', 5),
|
|
row(5, '\t'),
|
|
].join('\n');
|
|
assert.deepEqual(
|
|
parseFirmsCsv(csv).map((r) => [r.lat, r.lon]),
|
|
[
|
|
[90, 180],
|
|
[-90, -180],
|
|
],
|
|
);
|
|
const kept = adaptFirmsRecords([
|
|
{ lat: 90, lon: 180 },
|
|
{ lat: '-90', lon: '-180' },
|
|
{ lat: -90.000001, lon: 0 },
|
|
{ lat: 0, lon: -180.000001 },
|
|
{ lat: 5, lon: ' ' },
|
|
{ lat: 5, lon: undefined },
|
|
{ lat: [5], lon: 5 },
|
|
]);
|
|
assert.deepEqual(
|
|
kept.map((r) => [r.lat, r.lon]),
|
|
[
|
|
[90, 180],
|
|
[-90, -180],
|
|
],
|
|
);
|
|
});
|