docs: fehlerhaften Höhenmeter-Test im Plan korrigieren

Der Test "ignoriert Höhenschwankungen unter 3 m" nutzte 300->301->302->303
und erwartete 0 Höhenmeter. Das ist aber ein echter Anstieg von 3 m, nur fein
aufgezeichnet — bei einem langen gleichmäßigen Berganstieg hätte der Parser
die Höhenmeter systematisch verschluckt.

Jetzt zwei Tests, die die Fälle trennen: gleichmäßiger Anstieg in 1-m-Schritten
ergibt 3 hm, Schwanken um denselben Wert ergibt 0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Daniel Michelberger 2026-08-06 17:35:54 +02:00
parent 1eb25cd7e4
commit efadbab48a

View file

@ -559,15 +559,32 @@ describe('parseGpx', () => {
expect(r.ascent_m).toBe(65)
})
it('ignoriert Höhenschwankungen unter 3 m', () => {
const noisy = `<?xml version="1.0"?>
it('erfasst einen gleichmäßigen Anstieg auch in feinen Schritten', () => {
// 300 -> 303 in 1-m-Schritten ist kein Rauschen, sondern ein echter
// Anstieg von 3 m — nur fein aufgezeichnet. Der Bezugspunkt bleibt
// stehen, bis die Schwelle erreicht ist, deshalb wird er erfasst.
const fine = `<?xml version="1.0"?>
<gpx version="1.1" xmlns="http://www.topografix.com/GPX/1/1"><trk><trkseg>
<trkpt lat="49.510" lon="11.430"><ele>300</ele></trkpt>
<trkpt lat="49.511" lon="11.431"><ele>301</ele></trkpt>
<trkpt lat="49.512" lon="11.432"><ele>302</ele></trkpt>
<trkpt lat="49.513" lon="11.433"><ele>303</ele></trkpt>
</trkseg></trk></gpx>`
// Lauter 1-m-Schritte: reines GPS-Rauschen, kein echter Anstieg
expect(parseGpx(fine).ascent_m).toBe(3)
})
it('ignoriert Rauschen, das um denselben Wert schwankt', () => {
// Auf und ab um höchstens 2 m ohne echten Höhengewinn — genau das,
// wogegen die Schwelle schützt.
const noisy = `<?xml version="1.0"?>
<gpx version="1.1" xmlns="http://www.topografix.com/GPX/1/1"><trk><trkseg>
<trkpt lat="49.510" lon="11.430"><ele>300</ele></trkpt>
<trkpt lat="49.511" lon="11.431"><ele>302</ele></trkpt>
<trkpt lat="49.512" lon="11.432"><ele>300</ele></trkpt>
<trkpt lat="49.513" lon="11.433"><ele>301</ele></trkpt>
<trkpt lat="49.514" lon="11.434"><ele>299</ele></trkpt>
<trkpt lat="49.515" lon="11.435"><ele>300</ele></trkpt>
</trkseg></trk></gpx>`
expect(parseGpx(noisy).ascent_m).toBe(0)
})