From 339483c8a3f75f21ff43fa09a7b53400989d5806 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 3 Mar 2025 14:42:05 +0600 Subject: [PATCH] disable hard test of binary trees for js --- .../SortedBinaryTreeNodeTests.android.kt | 2 + .../kotlin/SortedBinaryTreeNodeTests.kt | 40 ++++++++++++++++++- .../kotlin/SortedBinaryTreeNodeTests.js.kt | 2 + .../kotlin/SortedBinaryTreeNodeTests.jvm.kt | 2 + .../SortedBinaryTreeNodeTests.linuxArm64.kt | 2 + .../SortedBinaryTreeNodeTests.linuxX64.kt | 2 + .../SortedBinaryTreeNodeTests.mingwX64.kt | 2 + ...sAndroidLinuxMingwLinuxArm64Project.gradle | 4 +- ...sAndroidLinuxMingwLinuxArm64Project.gradle | 4 +- .../mppJvmJsLinuxMingwProject.gradle | 4 +- ...pProjectWithSerializationAndCompose.gradle | 4 +- 11 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 coroutines/src/androidUnitTest/kotlin/SortedBinaryTreeNodeTests.android.kt create mode 100644 coroutines/src/jsTest/kotlin/SortedBinaryTreeNodeTests.js.kt create mode 100644 coroutines/src/jvmTest/kotlin/SortedBinaryTreeNodeTests.jvm.kt create mode 100644 coroutines/src/linuxArm64Test/kotlin/SortedBinaryTreeNodeTests.linuxArm64.kt create mode 100644 coroutines/src/linuxX64Test/kotlin/SortedBinaryTreeNodeTests.linuxX64.kt create mode 100644 coroutines/src/mingwX64Test/kotlin/SortedBinaryTreeNodeTests.mingwX64.kt diff --git a/coroutines/src/androidUnitTest/kotlin/SortedBinaryTreeNodeTests.android.kt b/coroutines/src/androidUnitTest/kotlin/SortedBinaryTreeNodeTests.android.kt new file mode 100644 index 00000000000..4ab57abfee1 --- /dev/null +++ b/coroutines/src/androidUnitTest/kotlin/SortedBinaryTreeNodeTests.android.kt @@ -0,0 +1,2 @@ +actual val AllowDeepReInsertOnWorksTest: Boolean + get() = true \ No newline at end of file diff --git a/coroutines/src/commonTest/kotlin/SortedBinaryTreeNodeTests.kt b/coroutines/src/commonTest/kotlin/SortedBinaryTreeNodeTests.kt index 148445e886b..6dfb0156d15 100644 --- a/coroutines/src/commonTest/kotlin/SortedBinaryTreeNodeTests.kt +++ b/coroutines/src/commonTest/kotlin/SortedBinaryTreeNodeTests.kt @@ -11,6 +11,8 @@ import kotlin.test.assertTrue import kotlin.time.Duration.Companion.seconds import kotlin.time.measureTime +expect val AllowDeepReInsertOnWorksTest: Boolean + class SortedBinaryTreeNodeTests { @Test fun insertOnZeroLevelWorks() = runTest { @@ -44,7 +46,8 @@ class SortedBinaryTreeNodeTests { } } @Test - fun deepInsertOnWorks() = runTest(timeout = 440.seconds) { // 440 due to js targets -.- + fun deepReInsertOnWorks() = runTest(timeout = 240.seconds) { + if (AllowDeepReInsertOnWorksTest == false) return@runTest val zeroNode = SortedBinaryTreeNode(0) val rangeRadius = 500 val nodes = mutableMapOf>() @@ -121,6 +124,41 @@ class SortedBinaryTreeNodeTests { assertTrue(sourceTreeSize == zeroNode.size()) } @Test + fun deepInsertOnWorks() = runTest(timeout = 440.seconds) { // 440 due to js targets -.- + val zeroNode = SortedBinaryTreeNode(0) + val rangeRadius = 500 + val nodes = mutableMapOf>() + for (i in -rangeRadius .. rangeRadius) { + nodes[i] = zeroNode.addSubNode(i) + } + + for (i in -rangeRadius .. rangeRadius) { + val expectedNode = nodes.getValue(i) + val foundNode = zeroNode.findNode(i) + + assertTrue(expectedNode === foundNode) + + if (expectedNode === zeroNode) continue + + val parentNode = zeroNode.findParentNode(i) + assertTrue( + parentNode ?.getLeftNode() === expectedNode || parentNode ?.getRightNode() === expectedNode, + "It is expected, that parent node with data ${parentNode ?.data} will be parent of ${expectedNode.data}, but its left subnode is ${parentNode ?.getLeftNode() ?.data} and right one is ${parentNode ?.getRightNode() ?.data}" + ) + } + + val sourceTreeSize = zeroNode.size() + + var previousData = -rangeRadius - 1 + for (node in zeroNode) { + assertTrue(nodes[node.data] === node) + assertTrue(previousData == node.data - 1) + previousData = node.data + } + + assertTrue(sourceTreeSize == zeroNode.size()) + } + @Test fun deepInsertIteratorWorking() = runTest { val zeroNode = SortedBinaryTreeNode(0) val rangeRadius = 500 diff --git a/coroutines/src/jsTest/kotlin/SortedBinaryTreeNodeTests.js.kt b/coroutines/src/jsTest/kotlin/SortedBinaryTreeNodeTests.js.kt new file mode 100644 index 00000000000..3b385510216 --- /dev/null +++ b/coroutines/src/jsTest/kotlin/SortedBinaryTreeNodeTests.js.kt @@ -0,0 +1,2 @@ +actual val AllowDeepReInsertOnWorksTest: Boolean + get() = false \ No newline at end of file diff --git a/coroutines/src/jvmTest/kotlin/SortedBinaryTreeNodeTests.jvm.kt b/coroutines/src/jvmTest/kotlin/SortedBinaryTreeNodeTests.jvm.kt new file mode 100644 index 00000000000..4ab57abfee1 --- /dev/null +++ b/coroutines/src/jvmTest/kotlin/SortedBinaryTreeNodeTests.jvm.kt @@ -0,0 +1,2 @@ +actual val AllowDeepReInsertOnWorksTest: Boolean + get() = true \ No newline at end of file diff --git a/coroutines/src/linuxArm64Test/kotlin/SortedBinaryTreeNodeTests.linuxArm64.kt b/coroutines/src/linuxArm64Test/kotlin/SortedBinaryTreeNodeTests.linuxArm64.kt new file mode 100644 index 00000000000..4ab57abfee1 --- /dev/null +++ b/coroutines/src/linuxArm64Test/kotlin/SortedBinaryTreeNodeTests.linuxArm64.kt @@ -0,0 +1,2 @@ +actual val AllowDeepReInsertOnWorksTest: Boolean + get() = true \ No newline at end of file diff --git a/coroutines/src/linuxX64Test/kotlin/SortedBinaryTreeNodeTests.linuxX64.kt b/coroutines/src/linuxX64Test/kotlin/SortedBinaryTreeNodeTests.linuxX64.kt new file mode 100644 index 00000000000..4ab57abfee1 --- /dev/null +++ b/coroutines/src/linuxX64Test/kotlin/SortedBinaryTreeNodeTests.linuxX64.kt @@ -0,0 +1,2 @@ +actual val AllowDeepReInsertOnWorksTest: Boolean + get() = true \ No newline at end of file diff --git a/coroutines/src/mingwX64Test/kotlin/SortedBinaryTreeNodeTests.mingwX64.kt b/coroutines/src/mingwX64Test/kotlin/SortedBinaryTreeNodeTests.mingwX64.kt new file mode 100644 index 00000000000..4ab57abfee1 --- /dev/null +++ b/coroutines/src/mingwX64Test/kotlin/SortedBinaryTreeNodeTests.mingwX64.kt @@ -0,0 +1,2 @@ +actual val AllowDeepReInsertOnWorksTest: Boolean + get() = true \ No newline at end of file diff --git a/gradle/templates/mppComposeJvmJsAndroidLinuxMingwLinuxArm64Project.gradle b/gradle/templates/mppComposeJvmJsAndroidLinuxMingwLinuxArm64Project.gradle index 78457422610..5e2606e4b50 100644 --- a/gradle/templates/mppComposeJvmJsAndroidLinuxMingwLinuxArm64Project.gradle +++ b/gradle/templates/mppComposeJvmJsAndroidLinuxMingwLinuxArm64Project.gradle @@ -15,14 +15,14 @@ kotlin { browser { testTask { useMocha { - timeout = "600000" + timeout = "240000" } } } nodejs { testTask { useMocha { - timeout = "600000" + timeout = "240000" } } } diff --git a/gradle/templates/mppJvmJsAndroidLinuxMingwLinuxArm64Project.gradle b/gradle/templates/mppJvmJsAndroidLinuxMingwLinuxArm64Project.gradle index 01d73caacf5..574b69a0107 100644 --- a/gradle/templates/mppJvmJsAndroidLinuxMingwLinuxArm64Project.gradle +++ b/gradle/templates/mppJvmJsAndroidLinuxMingwLinuxArm64Project.gradle @@ -15,14 +15,14 @@ kotlin { browser { testTask { useMocha { - timeout = "600000" + timeout = "240000" } } } nodejs { testTask { useMocha { - timeout = "600000" + timeout = "240000" } } } diff --git a/gradle/templates/mppJvmJsLinuxMingwProject.gradle b/gradle/templates/mppJvmJsLinuxMingwProject.gradle index 86bc347ae69..b62c12dc548 100644 --- a/gradle/templates/mppJvmJsLinuxMingwProject.gradle +++ b/gradle/templates/mppJvmJsLinuxMingwProject.gradle @@ -15,14 +15,14 @@ kotlin { browser { testTask { useMocha { - timeout = "600000" + timeout = "240000" } } } nodejs { testTask { useMocha { - timeout = "600000" + timeout = "240000" } } } diff --git a/gradle/templates/mppProjectWithSerializationAndCompose.gradle b/gradle/templates/mppProjectWithSerializationAndCompose.gradle index 7b74e53eb34..0a5c853bf56 100644 --- a/gradle/templates/mppProjectWithSerializationAndCompose.gradle +++ b/gradle/templates/mppProjectWithSerializationAndCompose.gradle @@ -15,14 +15,14 @@ kotlin { browser { testTask { useMocha { - timeout = "600000" + timeout = "240000" } } } nodejs { testTask { useMocha { - timeout = "600000" + timeout = "240000" } } }