Provide until function to construct integer ranges with an end being excluded from range.

#KT-4665 Fixed
This commit is contained in:
Ilya Gorbunov
2015-07-10 22:01:55 +03:00
parent 808170a84b
commit 71f3e3049a
5 changed files with 236 additions and 2 deletions
@@ -20,6 +20,12 @@ public class RangeTest {
assertFalse(9000 in range)
assertFalse(range.isEmpty())
val openRange = 1 until 10
assertTrue(9 in openRange)
assertFalse(10 in openRange)
assertTrue(fails { 1 until Int.MIN_VALUE } is IllegalArgumentException)
}
test fun byteRange() {
@@ -38,6 +44,13 @@ public class RangeTest {
assertFalse(111.toByte() in range)
assertFalse(range.isEmpty())
val openRange = 1.toByte() until 10.toByte()
assertTrue(9.toByte() in openRange)
assertFalse(10.toByte() in openRange)
assertTrue(fails { 0.toByte() until Byte.MIN_VALUE } is IllegalArgumentException)
}
test fun shortRange() {
@@ -56,6 +69,12 @@ public class RangeTest {
assertFalse(239.toShort() in range)
assertFalse(range.isEmpty())
val openRange = 1.toShort() until 10.toShort()
assertTrue(9.toShort() in openRange)
assertFalse(10.toShort() in openRange)
assertTrue(fails { 0.toShort() until Short.MIN_VALUE } is IllegalArgumentException)
}
test fun longRange() {
@@ -74,6 +93,13 @@ public class RangeTest {
assertFalse(10000000L in range)
assertFalse(range.isEmpty())
val openRange = 1L until 10L
assertTrue(9L in openRange)
assertFalse(10L in openRange)
assertTrue(fails { 0L until Long.MIN_VALUE } is IllegalArgumentException)
}
test fun charRange() {
@@ -92,6 +118,12 @@ public class RangeTest {
assertFalse('\u1000' in range)
assertFalse(range.isEmpty())
val openRange = 'A' until 'Z'
assertTrue('Y' in openRange)
assertFalse('Z' in openRange)
assertTrue(fails { 'A' until '\u0000' } is IllegalArgumentException)
}
test fun doubleRange() {