Add more reduceOrNull tests

- Test for unsigned arrays
- Update binary api dump with the new functions
This commit is contained in:
Ilya Gorbunov
2019-12-26 08:30:46 +03:00
parent 9546307243
commit 6d092b5f71
2 changed files with 43 additions and 0 deletions
@@ -518,6 +518,16 @@ class UnsignedArraysTest {
}
}
@Test
fun reduceOrNull() {
expect(0u) { ubyteArrayOf(3, 2, 1).reduceOrNull { acc, e -> (acc - e).toUByte() } }
expect(0u) { ushortArrayOf(3, 2, 1).reduceOrNull { acc, e -> (acc - e).toUShort() } }
expect((-4).toUInt()) { uintArrayOf(1, 2, 3).reduceOrNull { acc, e -> acc - e } }
expect((-4).toULong()) { ulongArrayOf(1, 2, 3).reduceOrNull { acc, e -> acc - e } }
assertNull(uintArrayOf().reduceOrNull { acc, e -> acc + e })
}
@Test
fun reduceIndexed() {
expect(1u) { ubyteArrayOf(3, 2, 1).reduceIndexed { index, acc, e -> if (index != 2) (e - acc).toUByte() else e } }
@@ -532,6 +542,16 @@ class UnsignedArraysTest {
@Test
fun reduceRight() {
expect(2u) { ubyteArrayOf(1, 2, 3).reduceRightOrNull { e, acc -> (e - acc).toUByte() } }
expect(2u) { ushortArrayOf(1, 2, 3).reduceRightOrNull { e, acc -> (e - acc).toUShort() } }
expect(2u) { uintArrayOf(1, 2, 3).reduceRightOrNull { e, acc -> e - acc } }
expect(2uL) { ulongArrayOf(1, 2, 3).reduceRightOrNull { e, acc -> e - acc } }
assertNull(uintArrayOf().reduceRightOrNull { e, acc -> e + acc })
}
@Test
fun reduceRightOrNull() {
expect(2u) { ubyteArrayOf(1, 2, 3).reduceRight { e, acc -> (e - acc).toUByte() } }
expect(2u) { ushortArrayOf(1, 2, 3).reduceRight { e, acc -> (e - acc).toUShort() } }
expect(2u) { uintArrayOf(1, 2, 3).reduceRight { e, acc -> e - acc } }
@@ -1447,6 +1447,15 @@ public final class kotlin/collections/ArraysKt {
public static final fun reduceIndexed ([Ljava/lang/Object;Lkotlin/jvm/functions/Function3;)Ljava/lang/Object;
public static final fun reduceIndexed ([SLkotlin/jvm/functions/Function3;)S
public static final fun reduceIndexed ([ZLkotlin/jvm/functions/Function3;)Z
public static final fun reduceOrNull ([BLkotlin/jvm/functions/Function2;)Ljava/lang/Byte;
public static final fun reduceOrNull ([CLkotlin/jvm/functions/Function2;)Ljava/lang/Character;
public static final fun reduceOrNull ([DLkotlin/jvm/functions/Function2;)Ljava/lang/Double;
public static final fun reduceOrNull ([FLkotlin/jvm/functions/Function2;)Ljava/lang/Float;
public static final fun reduceOrNull ([ILkotlin/jvm/functions/Function2;)Ljava/lang/Integer;
public static final fun reduceOrNull ([JLkotlin/jvm/functions/Function2;)Ljava/lang/Long;
public static final fun reduceOrNull ([Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static final fun reduceOrNull ([SLkotlin/jvm/functions/Function2;)Ljava/lang/Short;
public static final fun reduceOrNull ([ZLkotlin/jvm/functions/Function2;)Ljava/lang/Boolean;
public static final fun reduceRight ([BLkotlin/jvm/functions/Function2;)B
public static final fun reduceRight ([CLkotlin/jvm/functions/Function2;)C
public static final fun reduceRight ([DLkotlin/jvm/functions/Function2;)D
@@ -1465,6 +1474,15 @@ public final class kotlin/collections/ArraysKt {
public static final fun reduceRightIndexed ([Ljava/lang/Object;Lkotlin/jvm/functions/Function3;)Ljava/lang/Object;
public static final fun reduceRightIndexed ([SLkotlin/jvm/functions/Function3;)S
public static final fun reduceRightIndexed ([ZLkotlin/jvm/functions/Function3;)Z
public static final fun reduceRightOrNull ([BLkotlin/jvm/functions/Function2;)Ljava/lang/Byte;
public static final fun reduceRightOrNull ([CLkotlin/jvm/functions/Function2;)Ljava/lang/Character;
public static final fun reduceRightOrNull ([DLkotlin/jvm/functions/Function2;)Ljava/lang/Double;
public static final fun reduceRightOrNull ([FLkotlin/jvm/functions/Function2;)Ljava/lang/Float;
public static final fun reduceRightOrNull ([ILkotlin/jvm/functions/Function2;)Ljava/lang/Integer;
public static final fun reduceRightOrNull ([JLkotlin/jvm/functions/Function2;)Ljava/lang/Long;
public static final fun reduceRightOrNull ([Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static final fun reduceRightOrNull ([SLkotlin/jvm/functions/Function2;)Ljava/lang/Short;
public static final fun reduceRightOrNull ([ZLkotlin/jvm/functions/Function2;)Ljava/lang/Boolean;
public static final fun requireNoNulls ([Ljava/lang/Object;)[Ljava/lang/Object;
public static final fun reverse ([B)V
public static final fun reverse ([C)V
@@ -2062,8 +2080,10 @@ public final class kotlin/collections/CollectionsKt {
public static final fun random (Ljava/util/Collection;Lkotlin/random/Random;)Ljava/lang/Object;
public static final fun reduce (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static final fun reduceIndexed (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function3;)Ljava/lang/Object;
public static final fun reduceOrNull (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static final fun reduceRight (Ljava/util/List;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static final fun reduceRightIndexed (Ljava/util/List;Lkotlin/jvm/functions/Function3;)Ljava/lang/Object;
public static final fun reduceRightOrNull (Ljava/util/List;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static final fun removeAll (Ljava/lang/Iterable;Lkotlin/jvm/functions/Function1;)Z
public static final fun removeAll (Ljava/util/Collection;Ljava/lang/Iterable;)Z
public static final fun removeAll (Ljava/util/Collection;Lkotlin/sequences/Sequence;)Z
@@ -4678,6 +4698,7 @@ public final class kotlin/sequences/SequencesKt {
public static final fun plus (Lkotlin/sequences/Sequence;[Ljava/lang/Object;)Lkotlin/sequences/Sequence;
public static final fun reduce (Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static final fun reduceIndexed (Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function3;)Ljava/lang/Object;
public static final fun reduceOrNull (Lkotlin/sequences/Sequence;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object;
public static final fun requireNoNulls (Lkotlin/sequences/Sequence;)Lkotlin/sequences/Sequence;
public static final fun sequence (Lkotlin/jvm/functions/Function2;)Lkotlin/sequences/Sequence;
public static final fun sequenceOf ([Ljava/lang/Object;)Lkotlin/sequences/Sequence;
@@ -5070,8 +5091,10 @@ public final class kotlin/text/StringsKt {
public static final fun random (Ljava/lang/CharSequence;Lkotlin/random/Random;)C
public static final fun reduce (Ljava/lang/CharSequence;Lkotlin/jvm/functions/Function2;)C
public static final fun reduceIndexed (Ljava/lang/CharSequence;Lkotlin/jvm/functions/Function3;)C
public static final fun reduceOrNull (Ljava/lang/CharSequence;Lkotlin/jvm/functions/Function2;)Ljava/lang/Character;
public static final fun reduceRight (Ljava/lang/CharSequence;Lkotlin/jvm/functions/Function2;)C
public static final fun reduceRightIndexed (Ljava/lang/CharSequence;Lkotlin/jvm/functions/Function3;)C
public static final fun reduceRightOrNull (Ljava/lang/CharSequence;Lkotlin/jvm/functions/Function2;)Ljava/lang/Character;
public static final fun regionMatches (Ljava/lang/CharSequence;ILjava/lang/CharSequence;IIZ)Z
public static final fun regionMatches (Ljava/lang/String;ILjava/lang/String;IIZ)Z
public static synthetic fun regionMatches$default (Ljava/lang/CharSequence;ILjava/lang/CharSequence;IIZILjava/lang/Object;)Z