Added ComparableRange.
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user