@@ -75,30 +75,30 @@ class DateTimePeriodTest {
75
75
76
76
@Test
77
77
fun parseIsoString () {
78
- assertEquals (DateTimePeriod (years = 1 ), DateTimePeriod .parse(" P1Y" ))
79
- assertEquals( DatePeriod ( years = 1 , months = 1 ), DateTimePeriod .parse( " P1Y1M " ) )
80
- assertEquals (DateTimePeriod (months = 11 ), DateTimePeriod .parse(" P11M" ))
81
- assertEquals (DateTimePeriod (months = 14 ), DateTimePeriod .parse(" P14M" ))
82
- assertEquals (DateTimePeriod ( months = 10 , days = 5 ), DateTimePeriod .parse( " P10M5D " ) )
83
- assertEquals (DateTimePeriod ( years = 1 , days = 40 ), DateTimePeriod .parse( " P1Y40D " ) )
84
-
85
- assertEquals (DateTimePeriod (hours = 1 ), DateTimePeriod .parse(" PT1H" ))
86
- assertEquals( DateTimePeriod (), DateTimePeriod .parse(" P0D" ))
87
- assertEquals( DatePeriod (), DateTimePeriod .parse( " P0D " ))
88
-
89
- assertEquals (DateTimePeriod ( days = 1 , hours = - 1 ), DateTimePeriod .parse( " P1DT-1H " ) )
90
- assertEquals (DateTimePeriod (days = - 1 , hours = - 1 ), DateTimePeriod .parse( " -P1DT1H " ) )
91
- assertEquals( DateTimePeriod (months = - 1 ), DateTimePeriod .parse( " -P1M " ))
92
-
93
- assertEquals( DateTimePeriod ( years = - 1 , months = - 2 , days = - 3 , hours = - 4 , minutes = - 5 , seconds = 0 , nanoseconds = 500_000_000 ),
94
- DateTimePeriod .parse( " P-1Y-2M-3DT-4H-5M0.500000000S " ))
95
-
96
- 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 " ) )
78
+ assertPeriodComponents (DateTimePeriod .parse(" P1Y" ) as DatePeriod , years = 1 )
79
+ assertPeriodComponents( DateTimePeriod .parse( " P1Y1M " ) as DatePeriod , years = 1 , months = 1 )
80
+ assertPeriodComponents (DateTimePeriod .parse(" P11M" ) as DatePeriod , months = 11 )
81
+ assertPeriodComponents (DateTimePeriod .parse(" P14M" ) as DatePeriod , years = 1 , months = 2 )
82
+ assertPeriodComponents (DateTimePeriod .parse( " P10M5D " ) as DatePeriod , months = 10 , days = 5 )
83
+ assertPeriodComponents (DateTimePeriod .parse( " P1Y40D " ) as DatePeriod , years = 1 , days = 40 )
84
+
85
+ assertPeriodComponents (DateTimePeriod .parse(" PT1H" ), hours = 1 )
86
+ assertPeriodComponents( DateTimePeriod .parse(" P0D" ))
87
+
88
+ assertPeriodComponents( DateTimePeriod .parse( " P1DT-1H " ), days = 1 , hours = - 1 )
89
+ assertPeriodComponents (DateTimePeriod .parse( " -P1DT1H " ), days = - 1 , hours = - 1 )
90
+ assertPeriodComponents (DateTimePeriod .parse( " -P1M " ), months = - 1 )
91
+
92
+ assertPeriodComponents( DateTimePeriod .parse( " P-1Y-2M-3DT-4H-5M0.500000000S " ),
93
+ years = - 1 , months = - 2 , days = - 3 , hours = - 4 , minutes = - 4 , seconds = - 59 , nanoseconds = - 500_000_000 )
94
+
95
+ assertPeriodComponents( DateTimePeriod .parse( " PT277H46M39.999999999S " ),
96
+ hours = 277 , minutes = 46 , seconds = 39 , nanoseconds = 999_999_999 )
97
+ assertPeriodComponents (DateTimePeriod .parse(" PT0.999999999S" ), nanoseconds = 999_999_999 )
98
+ assertPeriodComponents (DateTimePeriod .parse(" -PT0.000000001S" ), nanoseconds = - 1 )
99
+ assertPeriodComponents (DateTimePeriod .parse( " P1DT-0.000000001S " ), days = 1 , nanoseconds = - 1 )
100
+ assertPeriodComponents (DateTimePeriod .parse(" -PT0.999999999S" ), nanoseconds = - 999_999_999 )
101
+ assertPeriodComponents (DateTimePeriod .parse( " P1DT-0.999999999S " ), days = 1 , nanoseconds = - 999_999_999 )
102
102
103
103
// overflow of `Int.MAX_VALUE` months
104
104
assertFailsWith<IllegalArgumentException > { DateTimePeriod .parse(" P2000000000Y" ) }
0 commit comments