blob: 59203392be2bddca8bf2839bb6cf225d5413e940 [file]
/*
* Copyright 2010-2025 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package test.time
import kotlin.test.assertEquals
import kotlin.time.Duration
fun testDefaultParsing(duration: Duration, vararg expected: String) {
fun testParsing(string: String, expectedDuration: Duration) {
assertEquals(expectedDuration, Duration.parse(string), string)
assertEquals(expectedDuration, Duration.parseOrNull(string), string)
}
val actual = duration.toString()
assertEquals(expected.first(), actual)
if (duration.isPositive()) {
if (' ' in actual) {
assertEquals("-($actual)", (-duration).toString())
} else {
assertEquals("-$actual", (-duration).toString())
}
}
for (string in expected) {
testParsing(string, duration)
if (duration.isPositive() && duration.isFinite()) {
testParsing("+($string)", duration)
testParsing("-($string)", -duration)
if (' ' !in string) {
testParsing("+$string", duration)
testParsing("-$string", -duration)
}
}
}
}