stdlib tests: provide expect/actual helper functions

This commit is contained in:
Ilya Gorbunov
2018-01-25 17:39:37 +03:00
parent ee9608f8db
commit ba873e2b46
5 changed files with 24 additions and 16 deletions
@@ -22,6 +22,3 @@ public expect fun randomInt(limit: Int): Int
internal expect fun String.removeLeadingPlusOnJava6(): String
internal expect fun doubleTotalOrderEquals(a: Double?, b: Double?): Boolean
// TODO
internal expect class NumberFormatException : Throwable
@@ -0,0 +1,11 @@
/*
* Copyright 2000-2018 JetBrains s.r.o. 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.collections.js
public actual fun <V> stringMapOf(vararg pairs: Pair<String, V>): HashMap<String, V> = kotlin.collections.stringMapOf(*pairs)
public actual fun <V> linkedStringMapOf(vararg pairs: Pair<String, V>): LinkedHashMap<String, V> = kotlin.collections.linkedStringMapOf(*pairs)
public actual fun stringSetOf(vararg elements: String): HashSet<String> = kotlin.collections.stringSetOf(*elements)
public actual fun linkedStringSetOf(vararg elements: String): LinkedHashSet<String> = kotlin.collections.linkedStringSetOf(*elements)
+4 -4
View File
@@ -18,13 +18,13 @@ package test
import kotlin.test.*
public fun assertTypeEquals(expected: Any?, actual: Any?) {
public actual fun assertTypeEquals(expected: Any?, actual: Any?) {
assertEquals(expected?.let { it::class.js }, actual?.let { it::class.js })
}
@Suppress("DEPRECATION")
public fun randomInt(limit: Int): Int = (kotlin.js.Math.random() * limit).toInt()
public actual fun randomInt(limit: Int): Int = (kotlin.js.Math.random() * limit).toInt()
@Suppress("NOTHING_TO_INLINE")
internal inline fun String.removeLeadingPlusOnJava6(): String = this
internal fun doubleTotalOrderEquals(a: Double?, b: Double?) = a == b || (a != a && b != b)
internal actual inline fun String.removeLeadingPlusOnJava6(): String = this
internal actual fun doubleTotalOrderEquals(a: Double?, b: Double?) = a == b || (a != a && b != b)
+4 -4
View File
@@ -17,7 +17,7 @@
@file:JvmVersion
package test.collections.js
public fun <V> stringMapOf(vararg pairs: Pair<String, V>): HashMap<String, V> = hashMapOf<String, V>(*pairs)
public fun <V> linkedStringMapOf(vararg pairs: Pair<String, V>): LinkedHashMap<String, V> = linkedMapOf(*pairs)
public fun stringSetOf(vararg elements: String): HashSet<String> = hashSetOf(*elements)
public fun linkedStringSetOf(vararg elements: String): LinkedHashSet<String> = linkedSetOf(*elements)
public actual fun <V> stringMapOf(vararg pairs: Pair<String, V>): HashMap<String, V> = hashMapOf<String, V>(*pairs)
public actual fun <V> linkedStringMapOf(vararg pairs: Pair<String, V>): LinkedHashMap<String, V> = linkedMapOf(*pairs)
public actual fun stringSetOf(vararg elements: String): HashSet<String> = hashSetOf(*elements)
public actual fun linkedStringSetOf(vararg elements: String): LinkedHashSet<String> = linkedSetOf(*elements)
+5 -5
View File
@@ -19,19 +19,19 @@ package test
import kotlin.test.assertEquals
@JvmVersion
public fun assertTypeEquals(expected: Any?, actual: Any?) {
public actual fun assertTypeEquals(expected: Any?, actual: Any?) {
assertEquals(expected?.javaClass, actual?.javaClass)
}
@JvmVersion
public fun randomInt(limit: Int): Int = (Math.random() * limit).toInt()
public actual fun randomInt(limit: Int): Int = (Math.random() * limit).toInt()
@kotlin.jvm.JvmVersion
private val isJava6 = System.getProperty("java.version").startsWith("1.6.")
@kotlin.jvm.JvmVersion
internal fun String.removeLeadingPlusOnJava6(): String =
if (isJava6) removePrefix("+") else this
internal actual fun String.removeLeadingPlusOnJava6(): String =
if (isJava6) removePrefix("+") else this
@kotlin.jvm.JvmVersion
internal fun doubleTotalOrderEquals(a: Any?, b: Any?) = a == b
internal actual fun doubleTotalOrderEquals(a: Double?, b: Double?) = (a as Any?) == b