blob: cf6cc4bbfecbf5c2230a37023137f11a41bc26f4 [file]
// WITH_STDLIB
fun <T> T.id() = this
const val code = '1'.code
const val byteFloorDiv1 = 1.toByte().floorDiv(2.toByte())
const val byteFloorDiv2 = 2.toByte().floorDiv(2.toByte())
const val byteFloorDiv3 = 3.toByte().floorDiv(2.toByte())
const val byteFloorDiv4 = (-1).toByte().floorDiv(2.toByte())
const val shortFloorDiv1 = 1.toShort().floorDiv(2.toShort())
const val shortFloorDiv2 = 2.toShort().floorDiv(2.toShort())
const val shortFloorDiv3 = 3.toShort().floorDiv(2.toShort())
const val shortFloorDiv4 = (-1).toShort().floorDiv(2.toShort())
const val intFloorDiv1 = 1.floorDiv(2)
const val intFloorDiv2 = 2.floorDiv(2)
const val intFloorDiv3 = 3.floorDiv(2)
const val intFloorDiv4 = (-1).floorDiv(2)
const val longFloorDiv1 = 1L.floorDiv(2L)
const val longFloorDiv2 = 2L.floorDiv(2L)
const val longFloorDiv3 = 3L.floorDiv(2L)
const val longFloorDiv4 = (-1L).floorDiv(2L)
const val byteMod1 = 1.toByte().mod(2.toByte())
const val byteMod2 = 2.toByte().mod(2.toByte())
const val byteMod3 = 3.toByte().mod(2.toByte())
const val byteMod4 = (-1).toByte().mod(2.toByte())
const val shortMod1 = 1.toShort().mod(2.toShort())
const val shortMod2 = 2.toShort().mod(2.toShort())
const val shortMod3 = 3.toShort().mod(2.toShort())
const val shortMod4 = (-3).toShort().mod(2.toShort())
const val intMod1 = 1.mod(2)
const val intMod2 = 2.mod(2)
const val intMod3 = 3.mod(2)
const val intMod4 = (-1).mod(2)
const val longMod1 = 1L.mod(2L)
const val longMod2 = 2L.mod(2L)
const val longMod3 = 3L.mod(2L)
const val longMod4 = (-1L).mod(2L)
const val floatMod1 = 1.0f.mod(2.0f)
const val floatMod2 = 2.0f.mod(2.0f)
const val floatMod3 = 3.0f.mod(2.0f)
const val floatMod4 = (-1.0f).mod(2.0f)
const val doubleMod1 = 1.0.mod(2.0)
const val doubleMod2 = 2.0.mod(2.0)
const val doubleMod3 = 3.0.mod(2.0)
const val doubleMod4 = (-1.0).mod(2.0)
fun box(): String {
if (code.id() != 49) return "Fail 1"
if (byteFloorDiv1.id() != 0) return "Fail 2.1 Byte"
if (byteFloorDiv2.id() != 1) return "Fail 2.2 Byte"
if (byteFloorDiv3.id() != 1) return "Fail 2.3 Byte"
if (byteFloorDiv4.id() != -1) return "Fail 2.4 Byte"
if (shortFloorDiv1.id() != 0) return "Fail 2.1 Short"
if (shortFloorDiv2.id() != 1) return "Fail 2.2 Short"
if (shortFloorDiv3.id() != 1) return "Fail 2.3 Short"
if (shortFloorDiv4.id() != -1) return "Fail 2.4 Short"
if (intFloorDiv1.id() != 0) return "Fail 2.1 Int"
if (intFloorDiv2.id() != 1) return "Fail 2.2 Int"
if (intFloorDiv3.id() != 1) return "Fail 2.3 Int"
if (intFloorDiv4.id() != -1) return "Fail 2.4 Int"
if (longFloorDiv1.id() != 0L) return "Fail 2.1 Long"
if (longFloorDiv2.id() != 1L) return "Fail 2.2 Long"
if (longFloorDiv3.id() != 1L) return "Fail 2.3 Long"
if (longFloorDiv4.id() != -1L) return "Fail 2.4 Long"
if (byteMod1.id() != 1.toByte()) return "Fail 3.1 Byte"
if (byteMod2.id() != 0.toByte()) return "Fail 3.2 Byte"
if (byteMod3.id() != 1.toByte()) return "Fail 3.3 Byte"
if (byteMod4.id() != 1.toByte()) return "Fail 3.4 Byte"
if (shortMod1.id() != 1.toShort()) return "Fail 3.1 Short"
if (shortMod2.id() != 0.toShort()) return "Fail 3.2 Short"
if (shortMod3.id() != 1.toShort()) return "Fail 3.3 Short"
if (shortMod4.id() != 1.toShort()) return "Fail 3.4 Short"
if (intMod1.id() != 1) return "Fail 3.1 Int"
if (intMod2.id() != 0) return "Fail 3.2 Int"
if (intMod3.id() != 1) return "Fail 3.3 Int"
if (intMod4.id() != 1) return "Fail 3.4 Int"
if (longMod1.id() != 1L) return "Fail 3.1 Long"
if (longMod2.id() != 0L) return "Fail 3.2 Long"
if (longMod3.id() != 1L) return "Fail 3.3 Long"
if (longMod4.id() != 1L) return "Fail 3.4 Long"
if (floatMod1.id() != 1.0f) return "Fail 3.1 Float"
if (floatMod2.id() != 0.0f) return "Fail 3.2 Float"
if (floatMod3.id() != 1.0f) return "Fail 3.3 Float"
if (floatMod4.id() != 1.0f) return "Fail 3.4 Float"
if (doubleMod1.id() != 1.0) return "Fail 3.1 Double"
if (doubleMod2.id() != 0.0) return "Fail 3.2 Double"
if (doubleMod3.id() != 1.0) return "Fail 3.3 Double"
if (doubleMod4.id() != 1.0) return "Fail 3.4 Double"
return "OK"
}