mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 10:24:02 +00:00
Rebased onto current main with review follow-ups folded in. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { directionToHeading } from './directionText.js';
|
|
test('conflicting facing directions cannot manufacture one heading', () => {
|
|
for (const bare of [false, true]) {
|
|
for (const value of ['NB / SB', 'EASTBOUND WESTBOUND', 'NE SW'])
|
|
assert.ok(Number.isNaN(directionToHeading(value, bare)), value);
|
|
assert.equal(directionToHeading('NB northbound', bare), 0);
|
|
assert.equal(directionToHeading('IH-35 SOUTHBOUND AT 15TH', bare), 180);
|
|
}
|
|
assert.ok(Number.isNaN(directionToHeading('North / East', true)));
|
|
assert.equal(directionToHeading('West / SR-24', true), 270);
|
|
});
|
|
|
|
test('travel tokens retain precedence over quadrant streets and bare words', () => {
|
|
for (const [text, heading] of [
|
|
['I-5 NB at NE 45th St', 0],
|
|
['SR 520 EB at NE 148th', 90],
|
|
['US 13 SB @ SW Front St', 180],
|
|
]) {
|
|
for (const bare of [false, true])
|
|
assert.equal(directionToHeading(text, bare), heading);
|
|
}
|
|
assert.equal(
|
|
directionToHeading('Hwy 401 east of Keele St - Westbound', true),
|
|
270,
|
|
);
|
|
assert.equal(directionToHeading('NE near West St', true), 45);
|
|
assert.ok(Number.isNaN(directionToHeading('NB SB near NE St', true)));
|
|
});
|