[K/N] Migrate some runtime/basic tests to new testing infra ^KT-61259

This commit is contained in:
Alexander Shabalin
2023-10-25 18:15:18 +02:00
committed by Space Team
parent 4fa121071a
commit fa9c620261
35 changed files with 448 additions and 636 deletions
@@ -0,0 +1,36 @@
/*
* 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.utils
import kotlin.test.*
private class TopLevel
private fun Any.toStringWithoutHashCode(): String {
val string = toString()
assertEquals(1, string.count { it == '@' }, "Invalid toString() value: $string")
return string.substringBefore('@')
}
class AnyTest {
@Test
fun testToString() {
assertEquals("test.utils.TopLevel", TopLevel().toStringWithoutHashCode())
class Local1
assertEquals("test.utils.AnyTest\$testToString\$Local1", Local1().toStringWithoutHashCode())
assertEquals("test.utils.AnyTest\$testToString\$1", object {}.toStringWithoutHashCode())
fun localFun() {
class Local2
assertEquals("test.utils.AnyTest\$testToString\$localFun\$Local2", Local2().toStringWithoutHashCode())
assertEquals("test.utils.AnyTest\$testToString\$localFun\$1", object {}.toStringWithoutHashCode())
}
localFun()
}
}
@@ -0,0 +1,54 @@
/*
* 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.utils
import kotlin.test.*
// Native-specific part of stdlib/test/utils/HashCodeTest.kt
class HashCodeNativeTest {
@Test
fun hashCodeOfInt() {
assertEquals(239, 239.hashCode())
}
@Test
fun hashCodeOfLong() {
assertEquals(0, (-1L).hashCode())
}
@Test
fun hashCodeOfChar() {
assertEquals(97, 'a'.hashCode())
}
@Test
fun hashCodeOfFloat() {
assertEquals(1065353216, 1.0f.hashCode())
}
@Test
fun hashCodeOfDouble() {
assertEquals(1072693248, 1.0.hashCode())
}
@Test
fun hashCodeOfBool() {
assertEquals(1231, true.hashCode())
assertEquals(1237, false.hashCode())
}
@Test
fun hashCodeOfAny() {
assertNotEquals(Any().hashCode(), Any().hashCode())
}
@Test
fun hashCodeOfString() {
val str = "Hello"
val charArray = charArrayOf('H', 'e', 'l', 'l', 'o')
assertEquals(str.hashCode(), charArray.concatToString(0, 5).hashCode())
}
}
@@ -0,0 +1,17 @@
/*
* 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.utils
import kotlin.test.*
class RepeatTest {
@Test
fun testRepeat() {
var i = 0
repeat(10) { i++ }
assertEquals(10, i)
}
}
@@ -0,0 +1,43 @@
/*
* 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.utils
import kotlin.test.*
private class Box(val value: Int)
class ScopeFunctionsTest {
@Test
fun testLet() {
val box = Box(42)
assertEquals(42, box.let { it.value })
}
@Test
fun testWith() {
val box = Box(42)
assertEquals(42, with(box) { value })
}
@Test
fun testRun() {
assertEquals(42, run { 42 })
val box = Box(42)
assertEquals(42, box.run { value })
}
@Test
fun testApply() {
val box = Box(42)
assertEquals(box, box.apply { value })
}
@Test
fun testAlso() {
val box = Box(42)
assertEquals(box, box.also { it.value })
}
}