From 0a81bb2571e58c7411909d8af6e40b94dc564867 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Tue, 19 Mar 2024 12:27:56 +0100 Subject: [PATCH 1/2] Add context to the DayOfWeek constructor precondition --- core/common/src/DayOfWeek.kt | 2 +- core/common/test/DayOfWeekTest.kt | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 core/common/test/DayOfWeekTest.kt diff --git a/core/common/src/DayOfWeek.kt b/core/common/src/DayOfWeek.kt index 54013d400..61c3058df 100644 --- a/core/common/src/DayOfWeek.kt +++ b/core/common/src/DayOfWeek.kt @@ -27,6 +27,6 @@ public val DayOfWeek.isoDayNumber: Int get() = ordinal + 1 * Returns the [DayOfWeek] instance for the given ISO-8601 week day number. Monday is 1, Sunday is 7. */ public fun DayOfWeek(isoDayNumber: Int): DayOfWeek { - require(isoDayNumber in 1..7) + require(isoDayNumber in 1..7) { "Expected day number in 1..7, got $isoDayNumber" } return DayOfWeek.entries[isoDayNumber - 1] } diff --git a/core/common/test/DayOfWeekTest.kt b/core/common/test/DayOfWeekTest.kt new file mode 100644 index 000000000..cbdb252aa --- /dev/null +++ b/core/common/test/DayOfWeekTest.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2019-2024 JetBrains s.r.o. and contributors. + * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. + */ + +package kotlinx.datetime.test + +import kotlinx.datetime.* +import kotlin.test.* + +class DayOfWeekTest { + + @Test + fun testDayOfWeek() { + for (i in 1..7) { + assertEquals(i, DayOfWeek(i).isoDayNumber) + } + assertFailsWith { DayOfWeek(-1) } + assertFailsWith { DayOfWeek(8) } + assertFailsWith { DayOfWeek(Int.MIN_VALUE) } + } +} \ No newline at end of file From bfc3c53add6fc5b977d30d106574cb11c3102e48 Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Fri, 22 Mar 2024 19:12:21 +0100 Subject: [PATCH 2/2] Update core/common/src/DayOfWeek.kt Co-authored-by: Dmitry Khalanskiy <52952525+dkhalanskyjb@users.noreply.github.com> --- core/common/src/DayOfWeek.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/common/src/DayOfWeek.kt b/core/common/src/DayOfWeek.kt index 61c3058df..496d61bef 100644 --- a/core/common/src/DayOfWeek.kt +++ b/core/common/src/DayOfWeek.kt @@ -27,6 +27,6 @@ public val DayOfWeek.isoDayNumber: Int get() = ordinal + 1 * Returns the [DayOfWeek] instance for the given ISO-8601 week day number. Monday is 1, Sunday is 7. */ public fun DayOfWeek(isoDayNumber: Int): DayOfWeek { - require(isoDayNumber in 1..7) { "Expected day number in 1..7, got $isoDayNumber" } + require(isoDayNumber in 1..7) { "Expected ISO day-of-week number in 1..7, got $isoDayNumber" } return DayOfWeek.entries[isoDayNumber - 1] }