apps-android-commons/app/src/test/kotlin/fr/free/nrw/commons/LengthUtilsTest.kt
2018-04-08 17:59:20 +10:00

46 lines
1.3 KiB
Kotlin

package fr.free.nrw.commons
import fr.free.nrw.commons.location.LatLng
import fr.free.nrw.commons.utils.LengthUtils
import org.junit.Assert.assertEquals
import org.junit.Test
class LengthUtilsTest {
@Test
fun testZeroDistance() {
val pointA = LatLng(0.0, 0.0, 0f)
val pointB = LatLng(0.0, 0.0, 0f)
assertDistanceBetween("0m", pointA, pointB)
}
@Test
fun testOneDegreeOnEquator() {
val pointA = LatLng(0.0, 0.0, 0f)
val pointB = LatLng(0.0, 1.0, 0f)
assertDistanceBetween("111.2km", pointA, pointB)
}
@Test
fun testOneDegreeFortyFiveDegrees() {
val pointA = LatLng(45.0, 0.0, 0f)
val pointB = LatLng(45.0, 1.0, 0f)
assertDistanceBetween("78.6km", pointA, pointB)
}
@Test
fun testOneDegreeSouthPole() {
val pointA = LatLng(-90.0, 0.0, 0f)
val pointB = LatLng(-90.0, 1.0, 0f)
assertDistanceBetween("0m", pointA, pointB)
}
@Test
fun testPoleToPole() {
val pointA = LatLng(90.0, 0.0, 0f)
val pointB = LatLng(-90.0, 0.0, 0f)
assertDistanceBetween("20,015.1km", pointA, pointB)
}
private fun assertDistanceBetween(expected: String, pointA: LatLng, pointB: LatLng) =
assertEquals(expected, LengthUtils.formatDistanceBetween(pointA, pointB))
}