| /* |
| * 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) |
| } |
| } |
| } |
| } |