|
6 | 6 | package kotlinx.datetime.test
|
7 | 7 |
|
8 | 8 | import kotlinx.datetime.*
|
9 |
| -import kotlinx.datetime.Clock |
10 |
| -import kotlin.math.min |
11 | 9 | import kotlin.test.*
|
12 | 10 |
|
13 | 11 | class LocalTimeTest {
|
@@ -85,6 +83,58 @@ class LocalTimeTest {
|
85 | 83 | assertFailsWith<IllegalArgumentException> { LocalTime(0, 0, 0, 1_000_000_000) }
|
86 | 84 | }
|
87 | 85 |
|
| 86 | + @Test |
| 87 | + fun fromNanosecondOfDay() { |
| 88 | + val data = mapOf( |
| 89 | + 0L to LocalTime(0, 0), |
| 90 | + 5000000001L to LocalTime(0, 0, 5, 1), |
| 91 | + 44105123456789L to LocalTime(12, 15, 5, 123456789), |
| 92 | + 86399999999999L to LocalTime(23, 59, 59, 999999999), |
| 93 | + ) |
| 94 | + |
| 95 | + data.forEach { (nanosecondOfDay, localTime) -> |
| 96 | + assertEquals(nanosecondOfDay, localTime.toNanosecondOfDay()) |
| 97 | + assertEquals(localTime, LocalTime.fromNanosecondOfDay(nanosecondOfDay)) |
| 98 | + } |
| 99 | + } |
| 100 | + |
| 101 | + @Test |
| 102 | + fun fromNanosecondOfDayInvalid() { |
| 103 | + assertFailsWith<IllegalArgumentException> { LocalTime.fromNanosecondOfDay(-1) } |
| 104 | + assertFailsWith<IllegalArgumentException> { LocalTime.fromNanosecondOfDay(86400000000000L) } |
| 105 | + assertFailsWith<IllegalArgumentException> { LocalTime.fromNanosecondOfDay(Long.MAX_VALUE) } |
| 106 | + } |
| 107 | + |
| 108 | + @Test |
| 109 | + fun fromSecondOfDay() { |
| 110 | + val data = mapOf( |
| 111 | + 0 to LocalTime(0, 0), |
| 112 | + 5 to LocalTime(0, 0, 5), |
| 113 | + 44105 to LocalTime(12, 15, 5), |
| 114 | + 86399 to LocalTime(23, 59, 59), |
| 115 | + ) |
| 116 | + |
| 117 | + data.forEach { (secondOfDay, localTime) -> |
| 118 | + assertEquals(secondOfDay, localTime.toSecondOfDay()) |
| 119 | + assertEquals(localTime, LocalTime.fromSecondOfDay(secondOfDay)) |
| 120 | + } |
| 121 | + } |
| 122 | + |
| 123 | + @Test |
| 124 | + fun fromSecondOfDayInvalid() { |
| 125 | + assertFailsWith<IllegalArgumentException> { LocalTime.fromSecondOfDay(-1) } |
| 126 | + assertFailsWith<IllegalArgumentException> { LocalTime.fromSecondOfDay(86400) } |
| 127 | + assertFailsWith<IllegalArgumentException> { LocalTime.fromSecondOfDay(Int.MAX_VALUE) } |
| 128 | + } |
| 129 | + |
| 130 | + @Test |
| 131 | + fun fromSecondOfDayIgnoresNanosecond() { |
| 132 | + assertEquals( |
| 133 | + 0, |
| 134 | + LocalTime(0, 0, 0, 100).toSecondOfDay(), |
| 135 | + ) |
| 136 | + } |
| 137 | + |
88 | 138 | @Test
|
89 | 139 | fun atDate() {
|
90 | 140 | val time = LocalTime(12, 1, 59)
|
|
0 commit comments