@@ -193,8 +193,8 @@ class TestDuration extends AnyFunSuite with AssertionsHelper {
193
193
assertEquals(test.toSeconds, Long .MaxValue / 1000000000 )
194
194
assertEquals(test.toDays, test.toSeconds / SECONDS_PER_DAY )
195
195
assertEquals(test.toDaysPart, test.toSeconds / SECONDS_PER_DAY )
196
- assertEquals(test.toMinutesPart, test.toMinutes / MINUTES_PER_HOUR )
197
- assertEquals(test.toSecondsPart, test.toSeconds / SECONDS_PER_MINUTE )
196
+ assertEquals(test.toMinutesPart, test.toMinutes % MINUTES_PER_HOUR )
197
+ assertEquals(test.toSecondsPart, test.toSeconds % SECONDS_PER_MINUTE )
198
198
assertEquals(test.getNano, Long .MaxValue % 1000000000 )
199
199
}
200
200
@@ -204,7 +204,7 @@ class TestDuration extends AnyFunSuite with AssertionsHelper {
204
204
assertEquals(test.toSeconds, Long .MinValue / 1000000000 - 1 )
205
205
assertEquals(test.toDays, test.toSeconds / SECONDS_PER_DAY )
206
206
assertEquals(test.toDaysPart, test.toSeconds / SECONDS_PER_DAY )
207
- assertEquals(test.toMinutesPart, test.toMinutes / MINUTES_PER_HOUR )
207
+ assertEquals(test.toMinutesPart, test.toMinutes % MINUTES_PER_HOUR )
208
208
assertEquals(test.getNano, Long .MinValue % 1000000000 + 1000000000 )
209
209
}
210
210
@@ -1893,6 +1893,25 @@ class TestDuration extends AnyFunSuite with AssertionsHelper {
1893
1893
assertEquals(Duration .ofSeconds(Long .MaxValue ).negated, Duration .ofSeconds(- Long .MaxValue ))
1894
1894
}
1895
1895
1896
+ test(" test_*_part" ) {
1897
+ assertEquals(Duration .ofSeconds(0 ).toSecondsPart, 0 )
1898
+ assertEquals(Duration .ofSeconds(59 ).toSecondsPart, 59 )
1899
+ assertEquals(Duration .ofSeconds(61 ).toSecondsPart, 1 )
1900
+ assertEquals(Duration .ofSeconds(187 ).toSecondsPart, 7 )
1901
+ assertEquals(Duration .ofDays(387 ).plusHours(18 ).plusMinutes(29 ).plusSeconds(88 ).plusMillis(234 ).toDaysPart, 387 )
1902
+ assertEquals(Duration .ofDays(387 ).plusHours(18 ).plusMinutes(29 ).plusSeconds(88 ).plusMillis(234 ).toHoursPart, 18 )
1903
+ assertEquals(Duration .ofDays(387 ).plusHours(18 ).plusMinutes(29 ).plusSeconds(38 ).plusMillis(234 ).toMinutesPart, 29 )
1904
+ assertEquals(Duration .ofDays(387 ).plusHours(18 ).plusMinutes(29 ).plusSeconds(88 ).plusMillis(234 ).toSecondsPart, 28 )
1905
+ assertEquals(Duration .ofDays(387 ).plusHours(18 ).plusMinutes(29 ).plusSeconds(88 ).plusMillis(234 ).toMillisPart, 234 )
1906
+ }
1907
+
1908
+ test(" test_*_part_with_overflow" ) {
1909
+ assertEquals(Duration .ofDays(3 ).plusHours(38 ).toDaysPart, 4 )
1910
+ assertEquals(Duration .ofDays(0 ).plusHours(18 ).plusMinutes(79 ).toHoursPart, 19 )
1911
+ assertEquals(Duration .ofDays(0 ).plusHours(18 ).plusMinutes(19 ).plusSeconds(90 ).toSecondsPart, 30 )
1912
+ assertEquals(Duration .ofDays(0 ).plusHours(18 ).plusMinutes(19 ).plusSeconds(90 ).plusMillis(10000 ).toSecondsPart, 40 )
1913
+ }
1914
+
1896
1915
test(" test_negated_overflow" ) {
1897
1916
assertThrows[ArithmeticException ] {
1898
1917
Duration .ofSeconds(Long .MinValue ).negated
0 commit comments