Skip to content

Commit 5d7fb04

Browse files
committed
Enhance tests with documentation of properties resulting from parsing
1 parent 3214ee3 commit 5d7fb04

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

core/common/test/DateTimePeriodTest.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,12 @@ class DateTimePeriodTest {
7878
assertEquals(DateTimePeriod(years = 1), DateTimePeriod.parse("P1Y"))
7979
assertEquals(DatePeriod(years = 1, months = 1), DateTimePeriod.parse("P1Y1M"))
8080
assertEquals(DateTimePeriod(months = 11), DateTimePeriod.parse("P11M"))
81-
assertEquals(DateTimePeriod(months = 14), DateTimePeriod.parse("P14M"))
8281
assertEquals(DateTimePeriod(months = 10, days = 5), DateTimePeriod.parse("P10M5D"))
8382
assertEquals(DateTimePeriod(years = 1, days = 40), DateTimePeriod.parse("P1Y40D"))
8483

84+
assertEquals(DateTimePeriod(months = 14), DateTimePeriod.parse("P14M"))
85+
assertPeriodComponents(DateTimePeriod.parse("P14M") as DatePeriod, years = 1, months = 2)
86+
8587
assertEquals(DateTimePeriod(hours = 1), DateTimePeriod.parse("PT1H"))
8688
assertEquals(DateTimePeriod(), DateTimePeriod.parse("P0D"))
8789
assertEquals(DatePeriod(), DateTimePeriod.parse("P0D"))
@@ -92,13 +94,19 @@ class DateTimePeriodTest {
9294

9395
assertEquals(DateTimePeriod(years = -1, months = -2, days = -3, hours = -4, minutes = -5, seconds = 0, nanoseconds = 500_000_000),
9496
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)
9599

96100
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)
102110

103111
// overflow of `Int.MAX_VALUE` months
104112
assertFailsWith<IllegalArgumentException> { DateTimePeriod.parse("P2000000000Y") }

0 commit comments

Comments
 (0)