Skip to content

Commit b37b329

Browse files
authored
No longer make Month and DayOfWeek type aliases on the JVM (#378)
Fixes #96
1 parent 021c97b commit b37b329

18 files changed

+360
-50
lines changed

build.gradle.kts

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ kover {
5050
reports {
5151
verify {
5252
rule {
53-
// requirement for a minimum lines coverage of 85%
54-
minBound(85)
53+
// requirement for a minimum lines coverage of 80%
54+
minBound(80)
5555
}
5656
}
5757
}

core/api/kotlinx-datetime.api

+64-11
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,24 @@ public final class kotlinx/datetime/ClockKt {
1919
}
2020

2121
public final class kotlinx/datetime/ConvertersKt {
22+
public static final fun toJavaDayOfWeek (Lkotlinx/datetime/DayOfWeek;)Ljava/time/DayOfWeek;
2223
public static final fun toJavaInstant (Lkotlinx/datetime/Instant;)Ljava/time/Instant;
2324
public static final fun toJavaLocalDate (Lkotlinx/datetime/LocalDate;)Ljava/time/LocalDate;
2425
public static final fun toJavaLocalDateTime (Lkotlinx/datetime/LocalDateTime;)Ljava/time/LocalDateTime;
2526
public static final fun toJavaLocalTime (Lkotlinx/datetime/LocalTime;)Ljava/time/LocalTime;
27+
public static final fun toJavaMonth (Lkotlinx/datetime/Month;)Ljava/time/Month;
2628
public static final fun toJavaPeriod (Lkotlinx/datetime/DatePeriod;)Ljava/time/Period;
2729
public static final fun toJavaZoneId (Lkotlinx/datetime/TimeZone;)Ljava/time/ZoneId;
2830
public static final fun toJavaZoneOffset (Lkotlinx/datetime/FixedOffsetTimeZone;)Ljava/time/ZoneOffset;
2931
public static final fun toJavaZoneOffset (Lkotlinx/datetime/UtcOffset;)Ljava/time/ZoneOffset;
3032
public static final fun toKotlinDatePeriod (Ljava/time/Period;)Lkotlinx/datetime/DatePeriod;
33+
public static final fun toKotlinDayOfWeek (Ljava/time/DayOfWeek;)Lkotlinx/datetime/DayOfWeek;
3134
public static final fun toKotlinFixedOffsetTimeZone (Ljava/time/ZoneOffset;)Lkotlinx/datetime/FixedOffsetTimeZone;
3235
public static final fun toKotlinInstant (Ljava/time/Instant;)Lkotlinx/datetime/Instant;
3336
public static final fun toKotlinLocalDate (Ljava/time/LocalDate;)Lkotlinx/datetime/LocalDate;
3437
public static final fun toKotlinLocalDateTime (Ljava/time/LocalDateTime;)Lkotlinx/datetime/LocalDateTime;
3538
public static final fun toKotlinLocalTime (Ljava/time/LocalTime;)Lkotlinx/datetime/LocalTime;
39+
public static final fun toKotlinMonth (Ljava/time/Month;)Lkotlinx/datetime/Month;
3640
public static final fun toKotlinTimeZone (Ljava/time/ZoneId;)Lkotlinx/datetime/TimeZone;
3741
public static final fun toKotlinUtcOffset (Ljava/time/ZoneOffset;)Lkotlinx/datetime/UtcOffset;
3842
public static final fun toKotlinZoneOffset (Ljava/time/ZoneOffset;)Lkotlinx/datetime/FixedOffsetTimeZone;
@@ -167,9 +171,24 @@ public final class kotlinx/datetime/DateTimeUnit$TimeBased$Companion {
167171
public final fun serializer ()Lkotlinx/serialization/KSerializer;
168172
}
169173

174+
public final class kotlinx/datetime/DayOfWeek : java/lang/Enum {
175+
public static final field FRIDAY Lkotlinx/datetime/DayOfWeek;
176+
public static final field MONDAY Lkotlinx/datetime/DayOfWeek;
177+
public static final field SATURDAY Lkotlinx/datetime/DayOfWeek;
178+
public static final field SUNDAY Lkotlinx/datetime/DayOfWeek;
179+
public static final field THURSDAY Lkotlinx/datetime/DayOfWeek;
180+
public static final field TUESDAY Lkotlinx/datetime/DayOfWeek;
181+
public static final field WEDNESDAY Lkotlinx/datetime/DayOfWeek;
182+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
183+
public static fun valueOf (Ljava/lang/String;)Lkotlinx/datetime/DayOfWeek;
184+
public static fun values ()[Lkotlinx/datetime/DayOfWeek;
185+
}
186+
170187
public final class kotlinx/datetime/DayOfWeekKt {
171-
public static final fun DayOfWeek (I)Ljava/time/DayOfWeek;
188+
public static final synthetic fun DayOfWeek (I)Ljava/time/DayOfWeek;
189+
public static final fun DayOfWeek (I)Lkotlinx/datetime/DayOfWeek;
172190
public static final fun getIsoDayNumber (Ljava/time/DayOfWeek;)I
191+
public static final fun getIsoDayNumber (Lkotlinx/datetime/DayOfWeek;)I
173192
}
174193

175194
public final class kotlinx/datetime/FixedOffsetTimeZone : kotlinx/datetime/TimeZone {
@@ -257,14 +276,17 @@ public final class kotlinx/datetime/LocalDate : java/lang/Comparable {
257276
public static final field Companion Lkotlinx/datetime/LocalDate$Companion;
258277
public fun <init> (III)V
259278
public fun <init> (ILjava/time/Month;I)V
279+
public fun <init> (ILkotlinx/datetime/Month;I)V
260280
public synthetic fun compareTo (Ljava/lang/Object;)I
261281
public fun compareTo (Lkotlinx/datetime/LocalDate;)I
262282
public fun equals (Ljava/lang/Object;)Z
263283
public final fun getDay ()I
264284
public final fun getDayOfMonth ()I
265285
public final fun getDayOfWeek ()Ljava/time/DayOfWeek;
286+
public final fun getDayOfWeek ()Lkotlinx/datetime/DayOfWeek;
266287
public final fun getDayOfYear ()I
267288
public final fun getMonth ()Ljava/time/Month;
289+
public final fun getMonth ()Lkotlinx/datetime/Month;
268290
public final fun getMonthNumber ()I
269291
public final fun getYear ()I
270292
public fun hashCode ()I
@@ -290,6 +312,7 @@ public final class kotlinx/datetime/LocalDate$Formats {
290312
}
291313

292314
public final class kotlinx/datetime/LocalDateJvmKt {
315+
public static final fun LocalDate (ILjava/time/Month;I)Lkotlinx/datetime/LocalDate;
293316
public static final fun daysUntil (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/LocalDate;)I
294317
public static final fun minus (Lkotlinx/datetime/LocalDate;ILkotlinx/datetime/DateTimeUnit$DateBased;)Lkotlinx/datetime/LocalDate;
295318
public static final fun monthsUntil (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/LocalDate;)I
@@ -305,7 +328,7 @@ public final class kotlinx/datetime/LocalDateJvmKt {
305328

306329
public final class kotlinx/datetime/LocalDateKt {
307330
public static final fun LocalDate (III)Lkotlinx/datetime/LocalDate;
308-
public static final fun LocalDate (ILjava/time/Month;I)Lkotlinx/datetime/LocalDate;
331+
public static final fun LocalDate (ILkotlinx/datetime/Month;I)Lkotlinx/datetime/LocalDate;
309332
public static final fun atTime (Lkotlinx/datetime/LocalDate;IIII)Lkotlinx/datetime/LocalDateTime;
310333
public static final fun atTime (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/LocalTime;)Lkotlinx/datetime/LocalDateTime;
311334
public static synthetic fun atTime$default (Lkotlinx/datetime/LocalDate;IIIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
@@ -325,6 +348,8 @@ public final class kotlinx/datetime/LocalDateTime : java/lang/Comparable {
325348
public synthetic fun <init> (IIIIIIIILkotlin/jvm/internal/DefaultConstructorMarker;)V
326349
public fun <init> (ILjava/time/Month;IIIII)V
327350
public synthetic fun <init> (ILjava/time/Month;IIIIIILkotlin/jvm/internal/DefaultConstructorMarker;)V
351+
public fun <init> (ILkotlinx/datetime/Month;IIIII)V
352+
public synthetic fun <init> (ILkotlinx/datetime/Month;IIIIIILkotlin/jvm/internal/DefaultConstructorMarker;)V
328353
public fun <init> (Lkotlinx/datetime/LocalDate;Lkotlinx/datetime/LocalTime;)V
329354
public synthetic fun compareTo (Ljava/lang/Object;)I
330355
public fun compareTo (Lkotlinx/datetime/LocalDateTime;)I
@@ -333,10 +358,12 @@ public final class kotlinx/datetime/LocalDateTime : java/lang/Comparable {
333358
public final fun getDay ()I
334359
public final fun getDayOfMonth ()I
335360
public final fun getDayOfWeek ()Ljava/time/DayOfWeek;
361+
public final fun getDayOfWeek ()Lkotlinx/datetime/DayOfWeek;
336362
public final fun getDayOfYear ()I
337363
public final fun getHour ()I
338364
public final fun getMinute ()I
339365
public final fun getMonth ()Ljava/time/Month;
366+
public final fun getMonth ()Lkotlinx/datetime/Month;
340367
public final fun getMonthNumber ()I
341368
public final fun getNanosecond ()I
342369
public final fun getSecond ()I
@@ -362,8 +389,10 @@ public final class kotlinx/datetime/LocalDateTime$Formats {
362389
public final class kotlinx/datetime/LocalDateTimeKt {
363390
public static final fun LocalDateTime (IIIIIII)Lkotlinx/datetime/LocalDateTime;
364391
public static final fun LocalDateTime (ILjava/time/Month;IIIII)Lkotlinx/datetime/LocalDateTime;
392+
public static final fun LocalDateTime (ILkotlinx/datetime/Month;IIIII)Lkotlinx/datetime/LocalDateTime;
365393
public static synthetic fun LocalDateTime$default (IIIIIIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
366394
public static synthetic fun LocalDateTime$default (ILjava/time/Month;IIIIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
395+
public static synthetic fun LocalDateTime$default (ILkotlinx/datetime/Month;IIIIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
367396
public static final fun format (Lkotlinx/datetime/LocalDateTime;Lkotlinx/datetime/format/DateTimeFormat;)Ljava/lang/String;
368397
public static final fun toLocalDateTime (Ljava/lang/String;)Lkotlinx/datetime/LocalDateTime;
369398
}
@@ -407,18 +436,42 @@ public final class kotlinx/datetime/LocalTimeKt {
407436
public static final fun atDate (Lkotlinx/datetime/LocalTime;IIILkotlin/Unit;)Lkotlinx/datetime/LocalDateTime;
408437
public static final fun atDate (Lkotlinx/datetime/LocalTime;ILjava/time/Month;I)Lkotlinx/datetime/LocalDateTime;
409438
public static final fun atDate (Lkotlinx/datetime/LocalTime;ILjava/time/Month;ILkotlin/Unit;)Lkotlinx/datetime/LocalDateTime;
439+
public static final fun atDate (Lkotlinx/datetime/LocalTime;ILkotlinx/datetime/Month;I)Lkotlinx/datetime/LocalDateTime;
440+
public static final fun atDate (Lkotlinx/datetime/LocalTime;ILkotlinx/datetime/Month;ILkotlin/Unit;)Lkotlinx/datetime/LocalDateTime;
410441
public static final fun atDate (Lkotlinx/datetime/LocalTime;Lkotlinx/datetime/LocalDate;)Lkotlinx/datetime/LocalDateTime;
411442
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;IIIILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
412443
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;IIILkotlin/Unit;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
413444
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;ILjava/time/Month;IILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
414445
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;ILjava/time/Month;ILkotlin/Unit;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
446+
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;ILkotlinx/datetime/Month;IILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
447+
public static synthetic fun atDate$default (Lkotlinx/datetime/LocalTime;ILkotlinx/datetime/Month;ILkotlin/Unit;ILjava/lang/Object;)Lkotlinx/datetime/LocalDateTime;
415448
public static final fun format (Lkotlinx/datetime/LocalTime;Lkotlinx/datetime/format/DateTimeFormat;)Ljava/lang/String;
416449
public static final fun toLocalTime (Ljava/lang/String;)Lkotlinx/datetime/LocalTime;
417450
}
418451

452+
public final class kotlinx/datetime/Month : java/lang/Enum {
453+
public static final field APRIL Lkotlinx/datetime/Month;
454+
public static final field AUGUST Lkotlinx/datetime/Month;
455+
public static final field DECEMBER Lkotlinx/datetime/Month;
456+
public static final field FEBRUARY Lkotlinx/datetime/Month;
457+
public static final field JANUARY Lkotlinx/datetime/Month;
458+
public static final field JULY Lkotlinx/datetime/Month;
459+
public static final field JUNE Lkotlinx/datetime/Month;
460+
public static final field MARCH Lkotlinx/datetime/Month;
461+
public static final field MAY Lkotlinx/datetime/Month;
462+
public static final field NOVEMBER Lkotlinx/datetime/Month;
463+
public static final field OCTOBER Lkotlinx/datetime/Month;
464+
public static final field SEPTEMBER Lkotlinx/datetime/Month;
465+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
466+
public static fun valueOf (Ljava/lang/String;)Lkotlinx/datetime/Month;
467+
public static fun values ()[Lkotlinx/datetime/Month;
468+
}
469+
419470
public final class kotlinx/datetime/MonthKt {
420-
public static final fun Month (I)Ljava/time/Month;
471+
public static final synthetic fun Month (I)Ljava/time/Month;
472+
public static final fun Month (I)Lkotlinx/datetime/Month;
421473
public static final fun getNumber (Ljava/time/Month;)I
474+
public static final fun getNumber (Lkotlinx/datetime/Month;)I
422475
}
423476

424477
public class kotlinx/datetime/TimeZone {
@@ -498,12 +551,12 @@ public final class kotlinx/datetime/format/DateTimeComponents {
498551
public final fun getAmPm ()Lkotlinx/datetime/format/AmPmMarker;
499552
public final fun getDay ()Ljava/lang/Integer;
500553
public final fun getDayOfMonth ()Ljava/lang/Integer;
501-
public final fun getDayOfWeek ()Ljava/time/DayOfWeek;
554+
public final fun getDayOfWeek ()Lkotlinx/datetime/DayOfWeek;
502555
public final fun getDayOfYear ()Ljava/lang/Integer;
503556
public final fun getHour ()Ljava/lang/Integer;
504557
public final fun getHourOfAmPm ()Ljava/lang/Integer;
505558
public final fun getMinute ()Ljava/lang/Integer;
506-
public final fun getMonth ()Ljava/time/Month;
559+
public final fun getMonth ()Lkotlinx/datetime/Month;
507560
public final fun getMonthNumber ()Ljava/lang/Integer;
508561
public final fun getNanosecond ()Ljava/lang/Integer;
509562
public final fun getOffsetHours ()Ljava/lang/Integer;
@@ -520,12 +573,12 @@ public final class kotlinx/datetime/format/DateTimeComponents {
520573
public final fun setDateTimeOffset (Lkotlinx/datetime/LocalDateTime;Lkotlinx/datetime/UtcOffset;)V
521574
public final fun setDay (Ljava/lang/Integer;)V
522575
public final fun setDayOfMonth (Ljava/lang/Integer;)V
523-
public final fun setDayOfWeek (Ljava/time/DayOfWeek;)V
576+
public final fun setDayOfWeek (Lkotlinx/datetime/DayOfWeek;)V
524577
public final fun setDayOfYear (Ljava/lang/Integer;)V
525578
public final fun setHour (Ljava/lang/Integer;)V
526579
public final fun setHourOfAmPm (Ljava/lang/Integer;)V
527580
public final fun setMinute (Ljava/lang/Integer;)V
528-
public final fun setMonth (Ljava/time/Month;)V
581+
public final fun setMonth (Lkotlinx/datetime/Month;)V
529582
public final fun setMonthNumber (Ljava/lang/Integer;)V
530583
public final fun setNanosecond (Ljava/lang/Integer;)V
531584
public final fun setOffset (Lkotlinx/datetime/UtcOffset;)V
@@ -767,10 +820,10 @@ public final class kotlinx/datetime/serializers/DayBasedDateTimeUnitSerializer :
767820
public final class kotlinx/datetime/serializers/DayOfWeekSerializer : kotlinx/serialization/KSerializer {
768821
public static final field INSTANCE Lkotlinx/datetime/serializers/DayOfWeekSerializer;
769822
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
770-
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/time/DayOfWeek;
823+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lkotlinx/datetime/DayOfWeek;
771824
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
772825
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
773-
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/time/DayOfWeek;)V
826+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lkotlinx/datetime/DayOfWeek;)V
774827
}
775828

776829
public final class kotlinx/datetime/serializers/FixedOffsetTimeZoneSerializer : kotlinx/serialization/KSerializer {
@@ -866,10 +919,10 @@ public final class kotlinx/datetime/serializers/MonthBasedDateTimeUnitSerializer
866919
public final class kotlinx/datetime/serializers/MonthSerializer : kotlinx/serialization/KSerializer {
867920
public static final field INSTANCE Lkotlinx/datetime/serializers/MonthSerializer;
868921
public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object;
869-
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/time/Month;
922+
public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lkotlinx/datetime/Month;
870923
public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor;
871924
public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V
872-
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/time/Month;)V
925+
public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lkotlinx/datetime/Month;)V
873926
}
874927

875928
public final class kotlinx/datetime/serializers/TimeBasedDateTimeUnitSerializer : kotlinx/serialization/KSerializer {

core/common/src/DayOfWeek.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,13 @@
33
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
44
*/
55

6+
@file:JvmName("DayOfWeekKt")
7+
@file:JvmMultifileClass
68
package kotlinx.datetime
79

10+
import kotlin.jvm.JvmMultifileClass
11+
import kotlin.jvm.JvmName
12+
813
/**
914
* The enumeration class representing the days of the week.
1015
*
@@ -13,7 +18,7 @@ package kotlinx.datetime
1318
*
1419
* @sample kotlinx.datetime.test.samples.DayOfWeekSamples.usage
1520
*/
16-
public expect enum class DayOfWeek {
21+
public enum class DayOfWeek {
1722
MONDAY,
1823
TUESDAY,
1924
WEDNESDAY,

core/common/src/LocalDateTime.kt

+4
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
44
*/
55

6+
@file:JvmName("LocalDateTimeKt")
7+
@file:JvmMultifileClass
68
package kotlinx.datetime
79

810
import kotlinx.datetime.format.*
911
import kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer
1012
import kotlinx.datetime.serializers.LocalDateTimeComponentSerializer
1113
import kotlinx.serialization.Serializable
1214
import kotlin.internal.*
15+
import kotlin.jvm.JvmMultifileClass
16+
import kotlin.jvm.JvmName
1317

1418
/**
1519
* The representation of a specific civil date and time without a reference to a particular time zone.

core/common/src/LocalTime.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,18 @@
22
* Copyright 2019-2022 JetBrains s.r.o. and contributors.
33
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
44
*/
5+
@file:JvmName("LocalTimeKt")
6+
@file:JvmMultifileClass
57

68
package kotlinx.datetime
79

8-
import kotlinx.datetime.LocalDate.Companion.parse
910
import kotlinx.datetime.format.*
1011
import kotlinx.datetime.serializers.LocalTimeIso8601Serializer
1112
import kotlinx.datetime.serializers.LocalTimeComponentSerializer
1213
import kotlinx.serialization.Serializable
1314
import kotlin.internal.*
15+
import kotlin.jvm.JvmMultifileClass
16+
import kotlin.jvm.JvmName
1417

1518

1619
/**

core/common/src/Month.kt

+7-4
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
44
*/
55

6+
@file:JvmName("MonthKt")
7+
@file:JvmMultifileClass
8+
69
package kotlinx.datetime
710

11+
import kotlin.jvm.JvmMultifileClass
12+
import kotlin.jvm.JvmName
13+
814
/**
915
* The enumeration class representing the 12 months of the year.
1016
*
@@ -14,7 +20,7 @@ package kotlinx.datetime
1420
*
1521
* @sample kotlinx.datetime.test.samples.MonthSamples.usage
1622
*/
17-
public expect enum class Month {
23+
public enum class Month {
1824
/** January, month #01, with 31 days. */
1925
JANUARY,
2026

@@ -69,6 +75,3 @@ public fun Month(number: Int): Month {
6975
require(number in 1..12)
7076
return Month.entries[number - 1]
7177
}
72-
73-
74-
// companion object members vs type aliasing to java.time.Month?

core/common/test/DayOfWeekTest.kt

+16-1
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,19 @@ class DayOfWeekTest {
1919
assertFailsWith<IllegalArgumentException> { DayOfWeek(8) }
2020
assertFailsWith<IllegalArgumentException> { DayOfWeek(Int.MIN_VALUE) }
2121
}
22-
}
22+
23+
@Test
24+
fun testExhaustiveWhenDayOfWeek() {
25+
for (dayOfWeek in DayOfWeek.entries) {
26+
when (dayOfWeek) {
27+
DayOfWeek.MONDAY -> assertEquals(1, dayOfWeek.isoDayNumber)
28+
DayOfWeek.TUESDAY -> assertEquals(2, dayOfWeek.isoDayNumber)
29+
DayOfWeek.WEDNESDAY -> assertEquals(3, dayOfWeek.isoDayNumber)
30+
DayOfWeek.THURSDAY -> assertEquals(4, dayOfWeek.isoDayNumber)
31+
DayOfWeek.FRIDAY -> assertEquals(5, dayOfWeek.isoDayNumber)
32+
DayOfWeek.SATURDAY -> assertEquals(6, dayOfWeek.isoDayNumber)
33+
DayOfWeek.SUNDAY -> assertEquals(7, dayOfWeek.isoDayNumber)
34+
}
35+
}
36+
}
37+
}

core/common/test/MonthTest.kt

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright 2019-2024 JetBrains s.r.o. and contributors.
3+
* Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file.
4+
*/
5+
6+
package kotlinx.datetime.test
7+
8+
import kotlinx.datetime.*
9+
import kotlin.test.*
10+
11+
class MonthTest {
12+
@Test
13+
fun testExhaustiveWhen() {
14+
for (month in Month.entries) {
15+
when (month) {
16+
Month.JANUARY -> assertEquals(1, month.number)
17+
Month.FEBRUARY -> assertEquals(2, month.number)
18+
Month.MARCH -> assertEquals(3, month.number)
19+
Month.APRIL -> assertEquals(4, month.number)
20+
Month.MAY -> assertEquals(5, month.number)
21+
Month.JUNE -> assertEquals(6, month.number)
22+
Month.JULY -> assertEquals(7, month.number)
23+
Month.AUGUST -> assertEquals(8, month.number)
24+
Month.SEPTEMBER -> assertEquals(9, month.number)
25+
Month.OCTOBER -> assertEquals(10, month.number)
26+
Month.NOVEMBER -> assertEquals(11, month.number)
27+
Month.DECEMBER -> assertEquals(12, month.number)
28+
}
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)