/* * Copyright 2010-2023 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.kotlinx.cinterop import kotlinx.cinterop.* import kotlin.test.* class AllocTest { @Test fun boolean() = memScoped { assertEquals(true, alloc(true).value) assertEquals(false, alloc(false).value) } @Test fun byte() = memScoped { assertEquals(Byte.MIN_VALUE, alloc(Byte.MIN_VALUE).value) assertEquals(Byte.MAX_VALUE, alloc(Byte.MAX_VALUE).value) assertEquals(0.toByte(), alloc(0.toByte()).value) assertEquals(1.toByte(), alloc(1.toByte()).value) assertEquals(1, alloc(1).value) } @Test fun short() = memScoped { assertEquals(Short.MIN_VALUE, alloc(Short.MIN_VALUE).value) assertEquals(Short.MAX_VALUE, alloc(Short.MAX_VALUE).value) assertEquals(0.toShort(), alloc(0.toShort()).value) assertEquals(2.toShort(), alloc(2.toShort()).value) assertEquals(2, alloc(2).value) } @Test fun int() = memScoped { assertEquals(Int.MIN_VALUE, alloc(Int.MIN_VALUE).value) assertEquals(Int.MAX_VALUE, alloc(Int.MAX_VALUE).value) assertEquals(0.toInt(), alloc(0.toInt()).value) assertEquals(3.toInt(), alloc(3.toInt()).value) assertEquals(3, alloc(3).value) } @Test fun long() = memScoped { assertEquals(Long.MIN_VALUE, alloc(Long.MIN_VALUE).value) assertEquals(Long.MAX_VALUE, alloc(Long.MAX_VALUE).value) assertEquals(0L, alloc(0L).value) assertEquals(4L, alloc(4L).value) assertEquals(4, alloc(4).value) } @Test fun uByte() = memScoped { assertEquals(UByte.MIN_VALUE, alloc(UByte.MIN_VALUE).value) assertEquals(UByte.MAX_VALUE, alloc(UByte.MAX_VALUE).value) assertEquals(5.toUByte(), alloc(5.toUByte()).value) assertEquals(5u, alloc(5u).value) } @Test fun uShort() = memScoped { assertEquals(UShort.MIN_VALUE, alloc(UShort.MIN_VALUE).value) assertEquals(UShort.MAX_VALUE, alloc(UShort.MAX_VALUE).value) assertEquals(6.toUShort(), alloc(6.toUShort()).value) assertEquals(6u, alloc(6u).value) } @Test fun uInt() = memScoped { assertEquals(UInt.MIN_VALUE, alloc(UInt.MIN_VALUE).value) assertEquals(UInt.MAX_VALUE, alloc(UInt.MAX_VALUE).value) assertEquals(7.toUInt(), alloc(7.toUInt()).value) assertEquals(7u, alloc(7u).value) } @Test fun uLong() = memScoped { assertEquals(ULong.MIN_VALUE, alloc(ULong.MIN_VALUE).value) assertEquals(ULong.MAX_VALUE, alloc(ULong.MAX_VALUE).value) assertEquals(8uL, alloc(8uL).value) assertEquals(8u, alloc(8u).value) } @Test fun float() = memScoped { assertEquals(Float.MIN_VALUE, alloc(Float.MIN_VALUE).value) assertEquals(Float.MAX_VALUE, alloc(Float.MAX_VALUE).value) assertEquals(0.0f, alloc(0.0f).value) assertEquals(9.0f, alloc(9.0f).value) assertEquals(9.0f, alloc(9.0f).value) } @Test fun double() = memScoped { assertEquals(Double.MIN_VALUE, alloc(Double.MIN_VALUE).value) assertEquals(Double.MAX_VALUE, alloc(Double.MAX_VALUE).value) assertEquals(0.0, alloc(0.0).value) assertEquals(10.0, alloc(10.0).value) assertEquals(10.0, alloc(10.0).value) } }