Implement min max minOf maxOf functions for unsigned types (KT-30035)

This commit is contained in:
Abduqodiri Qurbonzoda
2019-02-26 15:33:20 +03:00
committed by Ilya Gorbunov
parent bf83f0e070
commit be6c2d8c7d
8 changed files with 341 additions and 20 deletions
@@ -0,0 +1,44 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package unsigned
import kotlin.test.Test
import kotlin.test.expect
class UComparisonsTest {
@Test
fun minOf_2() {
expect(1.toUByte()) { minOf(2.toUByte(), 1.toUByte()) }
expect(58.toUShort()) { minOf(58.toUShort(), 32768.toUShort()) }
expect(UInt.MIN_VALUE) { minOf(UInt.MIN_VALUE, UInt.MAX_VALUE) }
expect(42312uL) { minOf(42312uL, 42312uL) }
}
@Test
fun minOf_3() {
expect(1.toUByte()) { minOf(2.toUByte(), 1.toUByte(), 3.toUByte()) }
expect(55.toUShort()) { minOf(58.toUShort(), 32768.toUShort(), 55.toUShort()) }
expect(UInt.MIN_VALUE) { minOf(UInt.MIN_VALUE, UInt.MAX_VALUE, 0u) }
expect(42312uL) { minOf(42312uL, 42312uL, 42312uL) }
}
@Test
fun maxOf_2() {
expect(2.toUByte()) { maxOf(2.toUByte(), 1.toUByte()) }
expect(32768.toUShort()) { maxOf(58.toUShort(), 32768.toUShort()) }
expect(UInt.MAX_VALUE) { maxOf(UInt.MIN_VALUE, UInt.MAX_VALUE) }
expect(42312uL) { maxOf(42312uL, 42312uL) }
}
@Test
fun maxOf_3() {
expect(3.toUByte()) { maxOf(2.toUByte(), 1.toUByte(), 3.toUByte()) }
expect(32768.toUShort()) { maxOf(58.toUShort(), 32768.toUShort(), 55.toUShort()) }
expect(UInt.MAX_VALUE) { maxOf(UInt.MIN_VALUE, UInt.MAX_VALUE, 0u) }
expect(42312uL) { maxOf(42312uL, 42312uL, 42312uL) }
}
}
@@ -0,0 +1,30 @@
/*
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package test.unsigned
import kotlin.math.max
import kotlin.math.min
import kotlin.test.Test
import kotlin.test.expect
class UMathTest {
@Test
fun min() {
expect(1uL) { min(2uL, 1uL) }
expect(ULong.MIN_VALUE) { min(ULong.MIN_VALUE, ULong.MAX_VALUE) }
expect(58u) { min(58u, 1u shl 31) }
expect(42312u) { min(42312u, 42312u) }
}
@Test
fun max() {
expect(2u) { max(2u, 1u) }
expect(UInt.MAX_VALUE) { maxOf(UInt.MIN_VALUE, UInt.MAX_VALUE) }
expect(1uL shl 63) { max(58uL, 1uL shl 63) }
expect(42312uL) { maxOf(42312uL, 42312uL) }
}
}