@@ -78,10 +78,12 @@ class DateTimePeriodTest {
78
78
assertEquals(DateTimePeriod (years = 1 ), DateTimePeriod .parse(" P1Y" ))
79
79
assertEquals(DatePeriod (years = 1 , months = 1 ), DateTimePeriod .parse(" P1Y1M" ))
80
80
assertEquals(DateTimePeriod (months = 11 ), DateTimePeriod .parse(" P11M" ))
81
- assertEquals(DateTimePeriod (months = 14 ), DateTimePeriod .parse(" P14M" ))
82
81
assertEquals(DateTimePeriod (months = 10 , days = 5 ), DateTimePeriod .parse(" P10M5D" ))
83
82
assertEquals(DateTimePeriod (years = 1 , days = 40 ), DateTimePeriod .parse(" P1Y40D" ))
84
83
84
+ assertEquals(DateTimePeriod (months = 14 ), DateTimePeriod .parse(" P14M" ))
85
+ assertPeriodComponents(DateTimePeriod .parse(" P14M" ) as DatePeriod , years = 1 , months = 2 )
86
+
85
87
assertEquals(DateTimePeriod (hours = 1 ), DateTimePeriod .parse(" PT1H" ))
86
88
assertEquals(DateTimePeriod (), DateTimePeriod .parse(" P0D" ))
87
89
assertEquals(DatePeriod (), DateTimePeriod .parse(" P0D" ))
@@ -92,13 +94,19 @@ class DateTimePeriodTest {
92
94
93
95
assertEquals(DateTimePeriod (years = - 1 , months = - 2 , days = - 3 , hours = - 4 , minutes = - 5 , seconds = 0 , nanoseconds = 500_000_000 ),
94
96
DateTimePeriod .parse(" P-1Y-2M-3DT-4H-5M0.500000000S" ))
97
+ assertPeriodComponents(DateTimePeriod .parse(" P-1Y-2M-3DT-4H-5M0.500000000S" ),
98
+ years = - 1 , months = - 2 , days = - 3 , hours = - 4 , minutes = - 4 , seconds = - 59 , nanoseconds = - 500_000_000 )
95
99
96
100
assertEquals(DateTimePeriod (nanoseconds = 999_999_999_999_999L ), DateTimePeriod .parse(" PT277H46M39.999999999S" ))
97
- assertEquals(DateTimePeriod (seconds = 1 , nanoseconds = - 1L ), DateTimePeriod .parse(" PT0.999999999S" ))
98
- assertEquals(DateTimePeriod (nanoseconds = - 1L ), DateTimePeriod .parse(" -PT0.000000001S" ))
99
- assertEquals(DateTimePeriod (days = 1 , nanoseconds = - 1L ), DateTimePeriod .parse(" P1DT-0.000000001S" ))
100
- assertEquals(DateTimePeriod (seconds = - 1 , nanoseconds = 1L ), DateTimePeriod .parse(" -PT0.999999999S" ))
101
- assertEquals(DateTimePeriod (days = 1 , seconds = - 1 , nanoseconds = 1L ), DateTimePeriod .parse(" P1DT-0.999999999S" ))
101
+ assertPeriodComponents(DateTimePeriod .parse(" PT277H46M39.999999999S" ),
102
+ hours = 277 , minutes = 46 , seconds = 39 , nanoseconds = 999_999_999 )
103
+
104
+ assertEquals(DateTimePeriod (nanoseconds = 999_999_999 ), DateTimePeriod .parse(" PT0.999999999S" ))
105
+ assertEquals(DateTimePeriod (nanoseconds = - 1 ), DateTimePeriod .parse(" -PT0.000000001S" ))
106
+ assertEquals(DateTimePeriod (days = 1 , nanoseconds = - 1 ), DateTimePeriod .parse(" P1DT-0.000000001S" ))
107
+ assertEquals(DateTimePeriod (nanoseconds = - 999_999_999 ), DateTimePeriod .parse(" -PT0.999999999S" ))
108
+ assertEquals(DateTimePeriod (days = 1 , nanoseconds = - 999_999_999 ), DateTimePeriod .parse(" P1DT-0.999999999S" ))
109
+ assertPeriodComponents(DateTimePeriod .parse(" P1DT-0.999999999S" ), days = 1 , nanoseconds = - 999_999_999 )
102
110
103
111
// overflow of `Int.MAX_VALUE` months
104
112
assertFailsWith<IllegalArgumentException > { DateTimePeriod .parse(" P2000000000Y" ) }
0 commit comments