diff --git a/docs/superpowers/plans/2026-08-06-trails.md b/docs/superpowers/plans/2026-08-06-trails.md index df28480..dbb3f08 100644 --- a/docs/superpowers/plans/2026-08-06-trails.md +++ b/docs/superpowers/plans/2026-08-06-trails.md @@ -559,15 +559,32 @@ describe('parseGpx', () => { expect(r.ascent_m).toBe(65) }) - it('ignoriert Höhenschwankungen unter 3 m', () => { - const noisy = ` + 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 = ` 300 301 302 303 ` - // 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 = ` + + 300 + 302 + 300 + 301 + 299 + 300 +` expect(parseGpx(noisy).ascent_m).toBe(0) })