32 lines
1.2 KiB
Kotlin
32 lines
1.2 KiB
Kotlin
package com.racingapp.pitlog.model
|
|
|
|
import org.junit.Assert.assertEquals
|
|
import org.junit.Assert.assertNull
|
|
import org.junit.Test
|
|
|
|
class InchesTest {
|
|
@Test
|
|
fun aFractionParsesAndComesBackAsAFraction() {
|
|
assertEquals(0.0625, parseInches("1/16")!!, 0.00001)
|
|
assertEquals(0.125, parseInches("1/8")!!, 0.00001)
|
|
assertEquals(2.5, parseInches("2 1/2")!!, 0.00001)
|
|
assertEquals(-0.0625, parseInches("-1/16")!!, 0.00001)
|
|
assertEquals(1.125, parseInches("1.125")!!, 0.00001)
|
|
assertEquals("1/16", formatInches(parseInches("1/16")))
|
|
assertEquals("1/8", formatInches(parseInches("1/8")))
|
|
assertEquals("2 1/2", formatInches(parseInches("2 1/2")))
|
|
assertEquals("-1/16", formatInches(parseInches("-1/16")))
|
|
assertEquals("1 1/8", formatInches(1.125))
|
|
}
|
|
|
|
@Test
|
|
fun typingKeepsTheSlashUntilTheFractionIsFinished() {
|
|
assertEquals("1/16", sanitizeInches("1/16"))
|
|
assertEquals("1/", sanitizeInches("1/"))
|
|
assertEquals("2 1/2", sanitizeInches("2 1/2"))
|
|
assertEquals("-1/8", sanitizeInches("-1/8", signed = true))
|
|
assertNull(parseInches("1/"))
|
|
assertNull(parseInches("1/0"))
|
|
}
|
|
}
|