Tim Kluge 2b2455dbb3
Some checks failed
Build / build (push) Successful in 5m32s
Comment on Fixed Issues/PRs on Release / comment-on-fixed (push) Failing after 9s
Use magnetometer to determine bearing, add compass datafield
2025-10-03 19:25:25 +02:00

65 lines
1.7 KiB
Kotlin

package de.timklge.karooheadwind
import org.junit.Test
import org.junit.Assert.assertEquals
class DataStoreTest {
@Test
fun testLerpAngle_normalCase() {
// Normal case (no wrap-around)
val result = lerpAngle(90.0, 180.0, 0.5)
assertEquals(135.0, result, 0.001)
}
@Test
fun testLerpAngle_wrapAround0To360() {
// Wrap around 0/360 degrees
val result = lerpAngle(350.0, 10.0, 0.5)
assertEquals(0.0, result, 0.001)
}
@Test
fun testLerpAngle_wrapAround360To0() {
// Wrap around 0/360 degrees (reverse)
val result = lerpAngle(10.0, 350.0, 0.5)
assertEquals(0.0, result, 0.001)
}
@Test
fun testLerpAngle_largeAngleDifference() {
// Large angle difference (should take shorter path)
val result = lerpAngle(45.0, 315.0, 0.5)
assertEquals(0.0, result, 0.001)
}
@Test
fun testLerpAngle_exactly180DegreesApart() {
// Exactly 180 degrees apart
assertEquals(90.0, lerpAngle(0.0, 180.0, 0.5), 0.001)
assertEquals(90.0, lerpAngle(180.0, 0.0, 0.5), 0.001)
}
@Test
fun testLerpAngle_factorBoundaries() {
// Factor = 0 and 1
assertEquals(350.0, lerpAngle(350.0, 10.0, 0.0), 0.001)
assertEquals(0.0, lerpAngle(350.0, 10.0, 0.5), 0.001)
assertEquals(10.0, lerpAngle(350.0, 10.0, 1.0), 0.001)
}
@Test
fun testLerpAngle_negativeAngles() {
// Negative angles
val result = lerpAngle(-10.0, 10.0, 0.5)
assertEquals(0.0, result, 0.001)
}
@Test
fun testLerpAngle_anglesGreaterThan360() {
// Angles > 360
val result = lerpAngle(370.0, 380.0, 0.5)
assertEquals(15.0, result, 0.001)
}
}