Add ClockMark and measureTime tests with test clock

This commit is contained in:
Ilya Gorbunov
2019-04-15 23:25:35 +03:00
parent b5d16f1a9b
commit 682430766b
2 changed files with 59 additions and 0 deletions
@@ -0,0 +1,37 @@
/*
* 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.
*/
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())
}
}