Task groups 5 and 6 of gpx-parser-robustness. Group 5 — packages/gpx/fixtures/*.gpx (synthetic, no personal data): route-only, missing-coords, garbage-ele, timestamps-partial, timestamps-mostly-invalid, multi-track, unicode-name, namespaced-extensions, plus trimmed Komoot/Wahoo-style exports. parse-node.test.ts gains a fixture table test that auto-discovers every *.gpx from disk, asserts finite stats + per-fixture shape, and fails loudly if a file has no EXPECTATIONS entry (the corpus is the regression mechanism). Group 6 — verification: GpxData shape unchanged; journal + planner compile with no changes; gpx suite 98/98; full pnpm typecheck 13/13, lint 13/13, test 11/11. Route-only + broken-file import behaviour is covered by the fixtures + consumer compile; the browser leg rides e2e. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 lines
649 B
XML
12 lines
649 B
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<gpx version="1.1" creator="OsmAnd" xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1">
|
|
|
|
<trk><name>Extensions ignored</name><trkseg>
|
|
<trkpt lat="50.9400" lon="6.9600"><ele>50</ele>
|
|
<extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>142</gpxtpx:hr><gpxtpx:cad>84</gpxtpx:cad></gpxtpx:TrackPointExtension></extensions>
|
|
</trkpt>
|
|
<trkpt lat="50.9450" lon="6.9660"><ele>52</ele>
|
|
<extensions><gpxtpx:TrackPointExtension><gpxtpx:hr>150</gpxtpx:hr></gpxtpx:TrackPointExtension></extensions>
|
|
</trkpt>
|
|
</trkseg></trk>
|
|
</gpx>
|