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:
parent
1eb25cd7e4
commit
efadbab48a
1 changed files with 20 additions and 3 deletions
|
|
@ -559,15 +559,32 @@ describe('parseGpx', () => {
|
||||||
expect(r.ascent_m).toBe(65)
|
expect(r.ascent_m).toBe(65)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('ignoriert Höhenschwankungen unter 3 m', () => {
|
it('erfasst einen gleichmäßigen Anstieg auch in feinen Schritten', () => {
|
||||||
const noisy = `<?xml version="1.0"?>
|
// 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>
|
<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.510" lon="11.430"><ele>300</ele></trkpt>
|
||||||
<trkpt lat="49.511" lon="11.431"><ele>301</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.512" lon="11.432"><ele>302</ele></trkpt>
|
||||||
<trkpt lat="49.513" lon="11.433"><ele>303</ele></trkpt>
|
<trkpt lat="49.513" lon="11.433"><ele>303</ele></trkpt>
|
||||||
</trkseg></trk></gpx>`
|
</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)
|
expect(parseGpx(noisy).ascent_m).toBe(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue