summaryrefslogtreecommitdiff
path: root/android-app/app/src/test/kotlin
diff options
context:
space:
mode:
authorClaude <noreply@anthropic.com>2026-05-20 22:18:38 +0000
committerClaude <noreply@anthropic.com>2026-05-20 22:18:38 +0000
commit62cc93086498d57ef7298eddb40cc382dfc10c6d (patch)
tree5203af49d29d97a7109909ad905fae1fa9a668e8 /android-app/app/src/test/kotlin
parent494e2f0f9ff3e89d1ff7409da096efee57be08b7 (diff)
Fix Long overflow in TackDetector: var lastTackMs = Long.MIN_VALUE caused subtraction overflow, filtering every tack
Diffstat (limited to 'android-app/app/src/test/kotlin')
-rw-r--r--android-app/app/src/test/kotlin/org/terst/nav/track/TackDetectorGpxTest.kt25
1 files changed, 25 insertions, 0 deletions
diff --git a/android-app/app/src/test/kotlin/org/terst/nav/track/TackDetectorGpxTest.kt b/android-app/app/src/test/kotlin/org/terst/nav/track/TackDetectorGpxTest.kt
new file mode 100644
index 0000000..83ca259
--- /dev/null
+++ b/android-app/app/src/test/kotlin/org/terst/nav/track/TackDetectorGpxTest.kt
@@ -0,0 +1,25 @@
+package org.terst.nav.track
+
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertTrue
+import org.junit.Test
+
+class TackDetectorGpxTest {
+
+ @Test
+ fun `detects 6 tacks in April 22 test file`() {
+ val stream = javaClass.classLoader!!
+ .getResourceAsStream("nav_20260422_190543.gpx")
+ ?: error("GPX test file not found in test resources")
+ val points = GpxParser.parse(stream)
+ assertTrue("Expected >100 points, got ${points.size}", points.size > 100)
+
+ val tacks = TackDetector.detectTacks(points)
+ assertEquals(
+ "Expected 6 tacks in test track; got ${tacks.size}: ${
+ tacks.map { "%.0f→%.0f".format(it.cogBefore, it.cogAfter) }
+ }",
+ 6, tacks.size
+ )
+ }
+}