aboutsummaryrefslogtreecommitdiff
path: root/src/test/kotlin/io
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/kotlin/io')
-rw-r--r--src/test/kotlin/io/github/moulberry/notenoughupdates/util/BootstrapHook.kt54
-rw-r--r--src/test/kotlin/io/github/moulberry/notenoughupdates/util/CalculatorTest.kt2
2 files changed, 55 insertions, 1 deletions
diff --git a/src/test/kotlin/io/github/moulberry/notenoughupdates/util/BootstrapHook.kt b/src/test/kotlin/io/github/moulberry/notenoughupdates/util/BootstrapHook.kt
new file mode 100644
index 00000000..cab10aaa
--- /dev/null
+++ b/src/test/kotlin/io/github/moulberry/notenoughupdates/util/BootstrapHook.kt
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2023 NotEnoughUpdates contributors
+ *
+ * This file is part of NotEnoughUpdates.
+ *
+ * NotEnoughUpdates is free software: you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * NotEnoughUpdates is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with NotEnoughUpdates. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package io.github.moulberry.notenoughupdates.util
+
+import net.minecraft.block.Block
+import net.minecraft.block.BlockFire
+import net.minecraft.init.Bootstrap
+import net.minecraft.item.Item
+import org.junit.jupiter.api.extension.BeforeAllCallback
+import org.junit.jupiter.api.extension.Extension
+import org.junit.jupiter.api.extension.ExtensionContext
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+class BootstrapHook : BeforeAllCallback, Extension {
+ companion object {
+ private val LOCK: Lock = ReentrantLock()
+ private var bootstrapped = false
+ }
+
+ override fun beforeAll(p0: ExtensionContext?) {
+ LOCK.lock()
+ try {
+ if (!bootstrapped) {
+ bootstrapped = true
+
+ Bootstrap::class.java.getDeclaredField("alreadyRegistered").also { it.isAccessible = true }
+ .set(null, true)
+ Block.registerBlocks()
+ BlockFire.init()
+ Item.registerItems()
+ }
+ } finally {
+ LOCK.unlock()
+ }
+ }
+}
diff --git a/src/test/kotlin/io/github/moulberry/notenoughupdates/util/CalculatorTest.kt b/src/test/kotlin/io/github/moulberry/notenoughupdates/util/CalculatorTest.kt
index ce866eec..6c4b1e1c 100644
--- a/src/test/kotlin/io/github/moulberry/notenoughupdates/util/CalculatorTest.kt
+++ b/src/test/kotlin/io/github/moulberry/notenoughupdates/util/CalculatorTest.kt
@@ -41,7 +41,7 @@ internal class CalculatorTest {
calculationShouldBe("(1)+1", 2)
calculationShouldBe("-0", 0)
calculationShouldBe("-10+2", -8)
- calculationShouldBe("14k*23m/2.35+596123-9213", 137021863505.74)
+ calculationShouldBe("14k*23m/2.35+596123-9213", 137021863505.74467)
calculationShouldBe("1+-10+2", -7)
calculationShouldBe("2**--10", 2.0.pow(10))
}