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 } }