Files
kotlin-fork/libraries/stdlib/test/time/ClockMarkTest.kt
T
Ilya Gorbunov f889d25287 Introduce TestClock.plusAssign(Duration) and hide implementation details
TestClock.plusAssign(Duration) is for advancing TestClock time.
Hide reading value, do not allow to provide initial reading,
fix clock unit to nanoseconds at construction time.
2019-08-16 15:28:45 +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()
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 += 500_000.nanoseconds
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())
}
}