Files
kotlin-fork/libraries/stdlib/test/time/ClockMarkTest.kt
T
Ilya Gorbunov c66740a7ed Explicit public visibility, SinceKotlin and ExperimentalTime status
Use file level ExperimentalTime opt-in in tests.
2019-06-18 04:02:35 +03:00

37 lines
1.1 KiB
Kotlin

/*
* Copyright 2010-2019 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.
*/
@file:UseExperimental(ExperimentalTime::class)
package test.time
import kotlin.test.*
import kotlin.time.*
class ClockMarkTest {
@Test
fun adjustment() {
val clock = TestClock(unit = DurationUnit.NANOSECONDS)
val mark = clock.mark()
val markFuture1 = mark + 1.milliseconds
val markFuture2 = mark - (-1).milliseconds
val markPast1 = mark - 1.milliseconds
val markPast2 = markFuture1 + (-2).milliseconds
clock.reading = 500_000L
val elapsed = mark.elapsed()
val elapsedFromFuture = elapsed - 1.milliseconds
val elapsedFromPast = elapsed + 1.milliseconds
assertEquals(0.5.milliseconds, elapsed)
assertEquals(elapsedFromFuture, markFuture1.elapsed())
assertEquals(elapsedFromFuture, markFuture2.elapsed())
assertEquals(elapsedFromPast, markPast1.elapsed())
assertEquals(elapsedFromPast, markPast2.elapsed())
}
}