Added ComparableRange.

This commit is contained in:
Evgeny Gerashchenko
2013-01-25 01:29:37 +04:00
parent cec0389a8a
commit 6d41697af0
2 changed files with 32 additions and 0 deletions
+19
View File
@@ -1,5 +1,24 @@
package kotlin
public data class ComparableRange<T: Comparable<T>> (
public override val start: T,
public override val end: T
): Range<T> {
public override fun contains(item: T): Boolean {
return start <= item && item <= end
}
public fun toString(): String {
return "$start..$end"
}
}
public fun <T: Comparable<T>> T.rangeTo(that: T): ComparableRange<T> {
return ComparableRange(this, that)
}
public fun CharacterSequence.reversed(): CharacterSequence {
return CharacterSequence(end, start, -increment)
}
@@ -35,4 +35,17 @@ class RangeTest {
assertEquals(0.0, reversedDoubleRange.end)
assertEquals(doubleRange.toList(), reversedDoubleRange.reversed().toList())
}
test fun comparableRange() {
val range1 = "island".."isle"
assertTrue("island" in range1)
assertTrue("isle" in range1)
assertTrue("islandic" in range1)
assertFalse("apple" in range1)
assertFalse("icicle" in range1)
assertFalse("item" in range1)
assertFalse("trail" in range1)
}
}