c7435ba760
We are going to deprecate `WITH_RUNTIME` directive. The main reason behind this change is that `WITH_STDLIB` directive better describes its meaning, specifically it will add kotlin stdlib to test's classpath.
78 lines
2.5 KiB
Kotlin
Vendored
78 lines
2.5 KiB
Kotlin
Vendored
// WITH_STDLIB
|
|
|
|
import kotlin.test.*
|
|
|
|
fun <T> copyArray(vararg data: T): Array<out T> = data
|
|
|
|
inline fun <reified T> reifiedCopyArray(vararg data: T): Array<out T> = data
|
|
|
|
fun copyBooleanArray(vararg data: Boolean): BooleanArray = data
|
|
fun copyByteArray(vararg data: Byte): ByteArray = data
|
|
fun copyCharArray(vararg data: Char): CharArray = data
|
|
fun copyShortArray(vararg data: Short): ShortArray = data
|
|
fun copyIntArray(vararg data: Int): IntArray = data
|
|
fun copyLongArray(vararg data: Long): LongArray = data
|
|
fun copyFloatArray(vararg data: Float): FloatArray = data
|
|
fun copyDoubleArray(vararg data: Double): DoubleArray = data
|
|
fun copyStringArray(vararg data: String): Array<out String> = data
|
|
|
|
fun box(): String {
|
|
val sarr = arrayOf("OK")
|
|
val sarr2 = copyArray(*sarr)
|
|
sarr[0] = "Array was not copied"
|
|
assertEquals(sarr2[0], "OK", "Failed: Array<String>")
|
|
|
|
var rsarr = arrayOf("OK")
|
|
var rsarr2 = reifiedCopyArray(*rsarr)
|
|
rsarr[0] = "Array was not copied"
|
|
assertEquals(rsarr2[0], "OK", "Failed: Array<String>, reified copy")
|
|
|
|
val boolArray = booleanArrayOf(true)
|
|
val boolArray2 = copyBooleanArray(*boolArray)
|
|
boolArray[0] = false
|
|
assertEquals(boolArray2[0], true, "Failed: BooleanArray")
|
|
|
|
val byteArray = byteArrayOf(1)
|
|
val byteArray2 = copyByteArray(*byteArray)
|
|
byteArray[0] = 42
|
|
assertEquals(1, byteArray2[0], "Failed: ByteArray")
|
|
|
|
val charArray = charArrayOf('a')
|
|
val charArray2 = copyCharArray(*charArray)
|
|
charArray[0] = 'b'
|
|
assertEquals(charArray2[0], 'a', "Failed: CharArray")
|
|
|
|
val shortArray = shortArrayOf(1)
|
|
val shortArray2 = copyShortArray(*shortArray)
|
|
shortArray[0] = 42
|
|
assertEquals(1, shortArray2[0], "Failed: ShortArray")
|
|
|
|
val iarr = IntArray(1)
|
|
iarr[0] = 1
|
|
val iarr2 = copyIntArray(*iarr)
|
|
iarr[0] = 42
|
|
assertEquals(1, iarr2[0], "Failed: IntArray")
|
|
|
|
val longArray = longArrayOf(1L)
|
|
val longArray2 = copyLongArray(*longArray)
|
|
longArray[0] = 42L
|
|
assertEquals(1L, longArray2[0], "Failed: LongArray")
|
|
|
|
val floatArray = floatArrayOf(1.0f)
|
|
val floatArray2 = copyFloatArray(*floatArray)
|
|
floatArray[0] = 42.0f
|
|
assertEquals(1.0f, floatArray2[0], "Failed: FloatArray")
|
|
|
|
val doubleArray = doubleArrayOf(1.0)
|
|
val doubleArray2 = copyDoubleArray(*doubleArray)
|
|
doubleArray[0] = 42.0
|
|
assertEquals(1.0, doubleArray2[0], "Failed: DoubleArray")
|
|
|
|
val stringArray = arrayOf("abc")
|
|
val stringArray2 = copyStringArray(*stringArray)
|
|
stringArray[0] = "def"
|
|
assertEquals("abc", stringArray2[0], "Failed: Array<String>")
|
|
|
|
return "OK"
|
|
}
|