Implement any, all, none, count & sumBy functions for UArrays
This commit is contained in:
committed by
Ilya Gorbunov
parent
512d986006
commit
bbaabb90e4
@@ -285,4 +285,53 @@ class UnsignedArraysTest {
|
||||
expect(1) { uintArrayOf(1, 2).lastIndex }
|
||||
expect(2) { ulongArrayOf(1, 2, 3).lastIndex }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun all() {
|
||||
assertTrue(ubyteArrayOf(0, 1, 2).all { it < 3 })
|
||||
assertFalse(ushortArrayOf(0, 1, 2).all { it % 2u == 0u })
|
||||
assertTrue(uintArrayOf(0, 2, 4).all { it % 2u == 0u })
|
||||
assertTrue(ulongArrayOf(2, 3, 4).all { it > 1 })
|
||||
}
|
||||
|
||||
@Test
|
||||
fun none() {
|
||||
assertTrue(ubyteArrayOf(0, 1, 2).none { it > 2 })
|
||||
assertFalse(ushortArrayOf(0, 1, 2).none { it % 2u == 0u })
|
||||
assertTrue(uintArrayOf(0, 2, 4).none { it % 2u != 0u })
|
||||
assertTrue(ulongArrayOf(2, 3, 4).none { it < 2 })
|
||||
}
|
||||
|
||||
@Test
|
||||
fun any() {
|
||||
assertTrue(ubyteArrayOf(0, 1, 2).any { it >= 2 })
|
||||
assertFalse(ushortArrayOf(0, 1, 2).any { it == 5.toUShort() })
|
||||
assertTrue(uintArrayOf(0, 2, 4).any { it % 3u == 1u })
|
||||
assertTrue(ulongArrayOf(2, 3, 4).any { it % 3u == 0.toULong() })
|
||||
}
|
||||
|
||||
@Test
|
||||
fun count() {
|
||||
assertEquals(1, ubyteArrayOf(0, 1, 2).count { it >= 2 })
|
||||
assertEquals(2, ushortArrayOf(0, 1, 2).count { it % 2u == 0u })
|
||||
assertEquals(0, uintArrayOf(0, 2, 4).count { it % 2u != 0u })
|
||||
assertEquals(3, ulongArrayOf(2, 3, 4).count { it > 1 })
|
||||
}
|
||||
|
||||
@Test
|
||||
fun sumBy() {
|
||||
assertEquals(3u, ubyteArrayOf(0, 1, 2).sumBy { it.toUInt() })
|
||||
assertEquals(1u, ushortArrayOf(0, 1, 2).sumBy { it % 2u })
|
||||
assertEquals(0u, uintArrayOf(0, 2, 4).sumBy { it % 2u })
|
||||
assertEquals(6u, ulongArrayOf(2, 3, 4).sumBy { (it - 1u).toUInt() })
|
||||
}
|
||||
|
||||
@Test
|
||||
fun sumByDouble() {
|
||||
// TODO: .toInt().toDouble() -> .toDouble() when conversion from unsigned primitives to Double gets implemented.
|
||||
assertEquals(3.0, ubyteArrayOf(0, 1, 2).sumByDouble { it.toInt().toDouble() })
|
||||
assertEquals(1.0, ushortArrayOf(0, 1, 2).sumByDouble { (it % 2u).toInt().toDouble() })
|
||||
assertEquals(0.0, uintArrayOf(0, 2, 4).sumByDouble { (it % 2u).toInt().toDouble() })
|
||||
assertEquals(6.0, ulongArrayOf(2, 3, 4).sumByDouble { (it - 1u).toInt().toDouble() })
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user