Specialize Progression first/last/OrNull functions #KT-42178

This commit is contained in:
Abduqodiri Qurbonzoda
2022-02-07 17:13:59 +03:00
committed by Space
parent cca2680c7f
commit 42c9a27b8a
16 changed files with 513 additions and 39 deletions
+28
View File
@@ -399,4 +399,32 @@ public class RangeTest {
assertNull(LongRange.EMPTY.randomOrNull())
assertNull(CharRange.EMPTY.randomOrNull())
}
@Test fun firstInEmptyRange() {
assertFailsWith<NoSuchElementException> { IntRange.EMPTY.first() }
assertFailsWith<NoSuchElementException> { LongRange.EMPTY.first() }
assertFailsWith<NoSuchElementException> { CharRange.EMPTY.first() }
assertFailsWith<NoSuchElementException> { IntProgression.fromClosedRange(0, 3, -2).first() }
}
@Test fun firstOrNullInEmptyRange() {
assertNull(IntRange.EMPTY.firstOrNull())
assertNull(LongRange.EMPTY.firstOrNull())
assertNull(CharRange.EMPTY.firstOrNull())
assertNull(IntProgression.fromClosedRange(0, 3, -2).firstOrNull())
}
@Test fun lastInEmptyRange() {
assertFailsWith<NoSuchElementException> { IntRange.EMPTY.last() }
assertFailsWith<NoSuchElementException> { LongRange.EMPTY.last() }
assertFailsWith<NoSuchElementException> { CharRange.EMPTY.last() }
assertFailsWith<NoSuchElementException> { IntProgression.fromClosedRange(0, 3, -2).last() }
}
@Test fun lastOrNullInEmptyRange() {
assertNull(IntRange.EMPTY.lastOrNull())
assertNull(LongRange.EMPTY.lastOrNull())
assertNull(CharRange.EMPTY.lastOrNull())
assertNull(IntProgression.fromClosedRange(0, 3, -2).lastOrNull())
}
}
@@ -241,4 +241,28 @@ public class URangeTest {
assertFailsWith<NoSuchElementException> { UIntRange.EMPTY.random() }
assertFailsWith<NoSuchElementException> { ULongRange.EMPTY.random() }
}
@Test fun firstInEmptyRange() {
assertFailsWith<NoSuchElementException> { UIntRange.EMPTY.first() }
assertFailsWith<NoSuchElementException> { ULongRange.EMPTY.first() }
assertFailsWith<NoSuchElementException> { UIntProgression.fromClosedRange(0u, 3u, -2).first() }
}
@Test fun firstOrNullInEmptyRange() {
assertNull(UIntRange.EMPTY.firstOrNull())
assertNull(ULongRange.EMPTY.firstOrNull())
assertNull(UIntProgression.fromClosedRange(0u, 3u, -2).firstOrNull())
}
@Test fun lastInEmptyRange() {
assertFailsWith<NoSuchElementException> { UIntRange.EMPTY.last() }
assertFailsWith<NoSuchElementException> { ULongRange.EMPTY.last() }
assertFailsWith<NoSuchElementException> { UIntProgression.fromClosedRange(0u, 3u, -2).last() }
}
@Test fun lastOrNullInEmptyRange() {
assertNull(UIntRange.EMPTY.lastOrNull())
assertNull(ULongRange.EMPTY.lastOrNull())
assertNull(UIntProgression.fromClosedRange(0u, 3u, -2).lastOrNull())
}
}