Files
2020-09-16 04:05:12 +03:00

83 lines
2.0 KiB
Kotlin

/*
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* 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.numbers
import kotlin.test.*
// TODO: Run these tests during compiler test only (JVM & JS)
class BitwiseOperationsTest {
@Test fun orForInt() {
assertEquals(3, 2 or 1)
}
@Test fun andForInt() {
assertEquals(0, 1 and 0)
}
@Test fun xorForInt() {
assertEquals(1, 2 xor 3)
}
@Test fun shlForInt() {
assertEquals(4, 1 shl 2)
assertEquals(4, 1 shl 34)
}
@Test fun shrForInt() {
assertEquals(1, 2 shr 1)
assertEquals(1, 2 shr 33)
}
@Test fun ushrForInt() {
assertEquals(2147483647, -1 ushr 1)
assertEquals(2147483647, -1 ushr 33)
}
@Test fun shlForUInt() {
assertEquals(4u, 1u shl 2)
assertEquals(4u, 1u shl 34)
}
@Test fun shrForUInt() {
assertEquals(1u, 2u shr 1)
assertEquals(1u, 2u shr 33)
assertEquals(Int.MAX_VALUE.toUInt(), UInt.MAX_VALUE shr 1)
assertEquals(Int.MAX_VALUE.toUInt(), UInt.MAX_VALUE shr 33)
}
@Test fun shlForLong() {
assertEquals(4L, 1L shl 2)
assertEquals(4L, 1L shl 66)
}
@Test fun shrForLong() {
assertEquals(1L, 2L shr 1)
assertEquals(1L, 2L shr 65)
}
@Test fun ushrForLong() {
assertEquals(Long.MAX_VALUE, -1L ushr 1)
assertEquals(Long.MAX_VALUE, -1L ushr 65)
}
@Test fun shlForULong() {
assertEquals(4UL, 1UL shl 2)
assertEquals(4UL, 1UL shl 66)
}
@Test fun shrForULong() {
assertEquals(1UL, 2UL shr 1)
assertEquals(1UL, 2UL shr 65)
assertEquals(Long.MAX_VALUE.toULong(), ULong.MAX_VALUE shr 1)
assertEquals(Long.MAX_VALUE.toULong(), ULong.MAX_VALUE shr 65)
}
@Test fun invForInt() {
assertEquals(0, (-1).inv())
}
}