KT-2579 Rename Range.minus() to reversed and make it extension

#KT-2579 fixed
This commit is contained in:
Evgeny Gerashchenko
2012-08-09 16:14:00 +04:00
parent 577d83605f
commit 1bc99ef19a
12 changed files with 43 additions and 50 deletions
-14
View File
@@ -13,8 +13,6 @@ public class IntRange(public val start : Int, public val size : Int) : Range<Int
public val iteratorStart : Int
public fun minus() : IntRange
public fun step(step: Int) : IntIterator
public val isReversed : Boolean
@@ -33,8 +31,6 @@ public class LongRange(public val start : Long, public val size : Long) : Range<
public val end : Long
public fun minus() : LongRange
public fun step(step: Long) : LongIterator
public val isReversed : Boolean
@@ -53,8 +49,6 @@ public class ByteRange(public val start : Byte, public val size : Int) : Range<B
public val iteratorStart : Byte
public fun minus() : ByteRange
public fun step(step: Int) : ByteIterator
public val isReversed : Boolean
@@ -73,8 +67,6 @@ public class ShortRange(public val start : Short, public val size : Int) : Range
public val end : Short
public fun minus() : ShortRange
public fun step(step: Int) : ShortIterator
public val isReversed : Boolean
@@ -93,8 +85,6 @@ public class CharRange(public val start : Char, public val size : Int) : Range<C
public val end : Char
public fun minus() : CharRange
public fun step(step: Int) : CharIterator
public val isReversed : Boolean
@@ -109,8 +99,6 @@ public class FloatRange(public val start : Float, public val size : Float) : Ran
public val end : Float
public fun minus() : FloatRange
public fun step(step: Float) : FloatIterator
public val isReversed : Boolean
@@ -125,8 +113,6 @@ public class DoubleRange(public val start : Double, public val size : Double) :
public val end : Double
public fun minus() : DoubleRange
public fun step(step: Double) : DoubleIterator
public val isReversed : Boolean
-7
View File
@@ -126,7 +126,6 @@ public final class jet.ByteRange : jet.Range<jet.Byte>, jet.ByteIterable {
public final val isReversed: jet.Boolean
public open override /*1*/ fun iterator(): jet.ByteIterator
public final val iteratorStart: jet.Byte
public final fun minus(): jet.ByteRange
public final val size: jet.Int
public final val start: jet.Byte
public final fun step(/*0*/ step: jet.Int): jet.ByteIterator
@@ -220,7 +219,6 @@ public final class jet.CharRange : jet.Range<jet.Char>, jet.CharIterable {
public final val isReversed: jet.Boolean
public open override /*1*/ fun iterator(): jet.CharIterator
public final val iteratorStart: jet.Char
public final fun minus(): jet.CharRange
public final val size: jet.Int
public final val start: jet.Char
public final fun step(/*0*/ step: jet.Int): jet.CharIterator
@@ -323,7 +321,6 @@ public final class jet.DoubleRange : jet.Range<jet.Double> {
public open override /*1*/ fun contains(/*0*/ elem: jet.Double): jet.Boolean
public final val end: jet.Double
public final val isReversed: jet.Boolean
public final fun minus(): jet.DoubleRange
public final val size: jet.Double
public final val start: jet.Double
public final fun step(/*0*/ step: jet.Double): jet.DoubleIterator
@@ -511,7 +508,6 @@ public final class jet.FloatRange : jet.Range<jet.Float> {
public open override /*1*/ fun contains(/*0*/ elem: jet.Float): jet.Boolean
public final val end: jet.Float
public final val isReversed: jet.Boolean
public final fun minus(): jet.FloatRange
public final val size: jet.Float
public final val start: jet.Float
public final fun step(/*0*/ step: jet.Float): jet.FloatIterator
@@ -712,7 +708,6 @@ public final class jet.IntRange : jet.Range<jet.Int>, jet.IntIterable {
public final val isReversed: jet.Boolean
public open override /*1*/ fun iterator(): jet.IntIterator
public final val iteratorStart: jet.Int
public final fun minus(): jet.IntRange
public final val size: jet.Int
public final val start: jet.Int
public final fun step(/*0*/ step: jet.Int): jet.IntIterator
@@ -824,7 +819,6 @@ public final class jet.LongRange : jet.Range<jet.Long>, jet.LongIterable {
public final val isReversed: jet.Boolean
public open override /*1*/ fun iterator(): jet.LongIterator
public final val iteratorStart: jet.Long
public final fun minus(): jet.LongRange
public final val size: jet.Long
public final val start: jet.Long
public final fun step(/*0*/ step: jet.Long): jet.LongIterator
@@ -940,7 +934,6 @@ public final class jet.ShortRange : jet.Range<jet.Short>, jet.ShortIterable {
public final val isReversed: jet.Boolean
public open override /*1*/ fun iterator(): jet.ShortIterator
public final val iteratorStart: jet.Short
public final fun minus(): jet.ShortRange
public final val size: jet.Int
public final val start: jet.Short
public final fun step(/*0*/ step: jet.Int): jet.ShortIterator
@@ -4,7 +4,7 @@ fun box() : String {
cnt++
}
for (n in -(1..5))
for (n in (1..5).reversed)
cnt++
return if(cnt == 9) "OK" else cnt.toString()
+23
View File
@@ -0,0 +1,23 @@
package kotlin
public val CharRange.reversed: CharRange
get() = CharRange(end, if (start < end) -size else size)
public val ByteRange.reversed: ByteRange
get() = ByteRange(end, if (start < end) -size else size)
public val ShortRange.reversed: ShortRange
get() = ShortRange(end, if (start < end) -size else size)
public val IntRange.reversed: IntRange
get() = IntRange(end, if (start < end) -size else size)
public val FloatRange.reversed: FloatRange
get() = FloatRange(end, if (start < end) -size else size)
public val LongRange.reversed: LongRange
get() = LongRange(end, if (start < end) -size else size)
public val DoubleRange.reversed: DoubleRange
get() = DoubleRange(end, if (start < end) -size else size)
@@ -23,4 +23,23 @@ class RangeTest {
assertTrue(range.contains(9))
assertFalse(range.contains(10))
}
test fun reversedRanges() {
val intRange = 0..9
val reversedIntRange = intRange.reversed
assertEquals(10, reversedIntRange.size)
assertEquals(9, reversedIntRange.start)
assertEquals(0, reversedIntRange.end)
assertEquals(intRange, reversedIntRange.reversed)
val doubleRange = 0.0..9.0
val reversedDoubleRange = doubleRange.reversed
assertEquals(9.0, reversedDoubleRange.size)
assertEquals(9.0, reversedDoubleRange.start)
assertEquals(0.0, reversedDoubleRange.end)
assertEquals(doubleRange, reversedDoubleRange.reversed)
assertEquals(IntRange.EMPTY, IntRange.EMPTY.reversed)
assertEquals(FloatRange.EMPTY, FloatRange.EMPTY.reversed)
}
}
-4
View File
@@ -93,10 +93,6 @@ public final class ByteRange implements Range<Byte>, ByteIterable {
return new MyIterator(start, count, step);
}
public ByteRange minus() {
return new ByteRange(getEnd(), -count);
}
@Override
public ByteIterator iterator() {
return new MyIterator(start, count, 1);
-4
View File
@@ -86,10 +86,6 @@ public final class CharRange implements Range<Character>, CharIterable {
return count < 0 ? -count : count;
}
public CharRange minus() {
return new CharRange(getEnd(), -count);
}
public CharIterator step(int step) {
if (step < 0)
return new MyIterator(getEnd(), -count, -step);
-4
View File
@@ -87,10 +87,6 @@ public final class DoubleRange implements Range<Double> {
return size < 0 ? -size : size;
}
public DoubleRange minus() {
return new DoubleRange(getEnd(), -size);
}
public static DoubleRange count(int length) {
return new DoubleRange(0, length);
}
-4
View File
@@ -83,10 +83,6 @@ public final class FloatRange implements Range<Float> {
return size < 0 ? -size : size;
}
public FloatRange minus() {
return new FloatRange(getEnd(), -size);
}
public static FloatRange count(int length) {
return new FloatRange(0, length);
}
-4
View File
@@ -102,10 +102,6 @@ public final class IntRange implements Range<Integer>, IntIterable {
return count < 0 ? -count : count;
}
public IntRange minus() {
return new IntRange(getEnd(), -count);
}
@Override
public IntIterator iterator() {
return new MyIterator(start, count, 1);
-4
View File
@@ -93,10 +93,6 @@ public final class LongRange implements Range<Long>, LongIterable {
return count < 0 ? -count : count;
}
public LongRange minus() {
return new LongRange(getEnd(), -count);
}
@Override
public LongIterator iterator() {
return new MyIterator(start, count, 1);
-4
View File
@@ -93,10 +93,6 @@ public final class ShortRange implements Range<Short>, ShortIterable {
return count < 0 ? -count : count;
}
public ShortRange minus() {
return new ShortRange(getEnd(), -count);
}
@Override
public ShortIterator iterator() {
return new MyIterator(start, count, 1);