wkt-parser
Version:
wkt-parser ===
81 lines (79 loc) • 1.5 kB
JavaScript
import test from 'tape';
import compare from 'js-struct-compare';
import wktParser from './dist/wkt.cjs';
import fixtures from './test-fixtures.json' with {type: 'json'}; //eslint-disable-line
function derivedPropertiesOnly(input) {
const derivedProperties = (({
projName,
axis,
units,
to_meter,
datumCode,
datum_params,
nadgrids,
ellps,
from_greenwich,
a,
rf,
k0,
x0,
y0,
long0,
longc,
lat0,
lat1,
lat2,
lat_ts,
alpha,
rectified_grid_angle,
srsCode,
name,
title,
sphere
}) => ({
projName,
axis,
units,
to_meter,
datumCode,
datum_params,
nadgrids,
ellps,
from_greenwich,
a,
rf,
k0,
x0,
y0,
long0,
longc,
lat0,
lat1,
lat2,
lat_ts,
alpha,
rectified_grid_angle,
srsCode,
name,
title,
sphere
}))(input);
for (const key in derivedProperties) {
if (derivedProperties[key] === undefined) {
delete derivedProperties[key];
}
}
return derivedProperties;
}
fixtures.forEach((item, i) => {
test(`fixture ${i + 1}`, t => {
const got = item.strict ? wktParser(item.code) : derivedPropertiesOnly(wktParser(item.code));
const expected = item.strict ? item.value : derivedPropertiesOnly(item.value);
const diff = compare(got, expected);
if (diff.length > 0) {
console.log('got', got, 'expected', expected);
}
t.deepEqual(diff, []);
t.end();
});
});