diff --git a/maps-kt-core/src/commonMain/kotlin/center/sciprog/maps/coordinates/Angle.kt b/maps-kt-core/src/commonMain/kotlin/center/sciprog/maps/coordinates/Angle.kt index c0245ba..0f1f823 100644 --- a/maps-kt-core/src/commonMain/kotlin/center/sciprog/maps/coordinates/Angle.kt +++ b/maps-kt-core/src/commonMain/kotlin/center/sciprog/maps/coordinates/Angle.kt @@ -85,8 +85,8 @@ public val Number.degrees: Degrees get() = Degrees(toDouble()) * Normalized angle to (0, 2PI) for radians or (0, 360) for degrees. */ public fun Angle.normalized(): Angle = when (this) { - is Degrees -> (value + 180.0).rem(360.0).degrees - is Radians -> (value + PI).rem(PI * 2).radians + is Degrees -> value.mod(360.0).degrees + is Radians -> value.mod(PI * 2).radians } public fun abs(angle: Angle): Angle = if (angle < Angle.zero) -angle else angle \ No newline at end of file diff --git a/maps-kt-core/src/commonTest/kotlin/center/sciprog/maps/coordinates/AngleTest.kt b/maps-kt-core/src/commonTest/kotlin/center/sciprog/maps/coordinates/AngleTest.kt new file mode 100644 index 0000000..53480fc --- /dev/null +++ b/maps-kt-core/src/commonTest/kotlin/center/sciprog/maps/coordinates/AngleTest.kt @@ -0,0 +1,12 @@ +package center.sciprog.maps.coordinates + +import kotlin.test.Test +import kotlin.test.assertEquals + +class AngleTest { + @Test + fun normalization(){ + assertEquals(30.degrees, 390.degrees.normalized()) + assertEquals(30.degrees, (-330).degrees.normalized()) + } +} \ No newline at end of file