55package kotlinx.datetime.test
66
77import kotlinx.datetime.*
8+ import org.junit.experimental.theories.suppliers.TestedOn
89import kotlin.random.Random
910import kotlin.test.*
1011import java.time.Instant as JTInstant
@@ -26,7 +27,7 @@ class ConvertersTest {
2627 assertEquals(ktInstant, jtInstant.toKotlinInstant())
2728 assertEquals(jtInstant, ktInstant.toJavaInstant())
2829
29- assertEquals(ktInstant, jtInstant.toString().toInstant( ))
30+ assertEquals(ktInstant, jtInstant.toString().let ( Instant ::parse ))
3031 assertEquals(jtInstant, ktInstant.toString().let (JTInstant ::parse))
3132 }
3233
@@ -37,10 +38,11 @@ class ConvertersTest {
3738 }
3839 }
3940
41+ @OptIn(ExperimentalStdlibApi ::class )
4042 private fun randomDate (): LocalDate {
4143 val year = Random .nextInt(- 20000 , 20000 )
4244 val month = Month .entries.random()
43- val day = (1 .. java.time.YearMonth .of(year, month).lengthOfMonth()).random()
45+ val day = (1 .. java.time.YearMonth .of(year, month.toJavaMonth() ).lengthOfMonth()).random()
4446 return LocalDate (year, month.number, day)
4547 }
4648
@@ -61,12 +63,14 @@ class ConvertersTest {
6163 @Test
6264 fun localDateTime () {
6365 fun test (ktDateTime : LocalDateTime ) {
64- val jtDateTime = with (ktDateTime) { JTLocalDateTime .of(year, month, dayOfMonth, hour, minute, second, nanosecond) }
66+ val jtDateTime = with (ktDateTime) {
67+ JTLocalDateTime .of(year, month.toJavaMonth(), dayOfMonth, hour, minute, second, nanosecond)
68+ }
6569
6670 assertEquals(ktDateTime, jtDateTime.toKotlinLocalDateTime())
6771 assertEquals(jtDateTime, ktDateTime.toJavaLocalDateTime())
6872
69- assertEquals(ktDateTime, jtDateTime.toString().toLocalDateTime( ))
73+ assertEquals(ktDateTime, jtDateTime.toString().let ( LocalDateTime ::parse ))
7074 assertEquals(jtDateTime, ktDateTime.toString().let (JTLocalDateTime ::parse))
7175 }
7276
@@ -83,7 +87,7 @@ class ConvertersTest {
8387 assertEquals(ktTime, jtTime.toKotlinLocalTime())
8488 assertEquals(jtTime, ktTime.toJavaLocalTime())
8589
86- assertEquals(ktTime, jtTime.toString().toLocalTime( ))
90+ assertEquals(ktTime, jtTime.toString().let ( LocalTime ::parse ))
8791 assertEquals(jtTime, ktTime.toString().let (JTLocalTime ::parse))
8892 }
8993
@@ -95,12 +99,12 @@ class ConvertersTest {
9599 @Test
96100 fun localDate () {
97101 fun test (ktDate : LocalDate ) {
98- val jtDate = with (ktDate) { JTLocalDate .of(year, month, dayOfMonth) }
102+ val jtDate = with (ktDate) { JTLocalDate .of(year, month.toJavaMonth() , dayOfMonth) }
99103
100104 assertEquals(ktDate, jtDate.toKotlinLocalDate())
101105 assertEquals(jtDate, ktDate.toJavaLocalDate())
102106
103- assertEquals(ktDate, jtDate.toString().toLocalDate( ))
107+ assertEquals(ktDate, jtDate.toString().let ( LocalDate ::parse ))
104108 assertEquals(jtDate, ktDate.toString().let (JTLocalDate ::parse))
105109 }
106110
@@ -187,4 +191,24 @@ class ConvertersTest {
187191 test(" +08" )
188192 test(" -103030" )
189193 }
194+
195+ @Test
196+ fun month () {
197+ fun test (month : Month ) {
198+ val jtMonth = month.toJavaMonth()
199+ assertEquals(month, jtMonth.toKotlinMonth())
200+ }
201+ Month .entries.forEach(::test)
202+ assertEquals(Month .JANUARY , java.time.Month .JANUARY .toKotlinMonth())
203+ }
204+
205+ @Test
206+ fun dayOfWeek () {
207+ fun test (dayOfWeek : DayOfWeek ) {
208+ val jtDayOfWeek = dayOfWeek.toJavaDayOfWeek()
209+ assertEquals(dayOfWeek, jtDayOfWeek.toKotlinDayOfWeek())
210+ }
211+ DayOfWeek .entries.forEach(::test)
212+ assertEquals(DayOfWeek .MONDAY , java.time.DayOfWeek .MONDAY .toKotlinDayOfWeek())
213+ }
190214}
0 commit comments