aboutsummaryrefslogtreecommitdiff
path: root/src/test/kotlin/util/math/ProjectionsBoxTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/kotlin/util/math/ProjectionsBoxTest.kt')
-rw-r--r--src/test/kotlin/util/math/ProjectionsBoxTest.kt28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/kotlin/util/math/ProjectionsBoxTest.kt b/src/test/kotlin/util/math/ProjectionsBoxTest.kt
new file mode 100644
index 0000000..04720a3
--- /dev/null
+++ b/src/test/kotlin/util/math/ProjectionsBoxTest.kt
@@ -0,0 +1,28 @@
+package moe.nea.firmament.test.util.math
+
+import java.util.stream.Stream
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.api.DynamicTest
+import org.junit.jupiter.api.TestFactory
+import kotlin.streams.asStream
+import net.minecraft.util.math.Vec2f
+import moe.nea.firmament.util.math.Projections
+
+class ProjectionsBoxTest {
+ val Double.degrees get() = Math.toRadians(this)
+
+ @TestFactory
+ fun testProjections(): Stream<DynamicTest> {
+ return sequenceOf(
+ 0.0.degrees to Vec2f(1F, 0F),
+ 63.4349.degrees to Vec2f(0.5F, 1F),
+ ).map { (angle, expected) ->
+ DynamicTest.dynamicTest("ProjectionsBoxTest::projectAngleOntoUnitBox(${angle})") {
+ val actual = Projections.Two.projectAngleOntoUnitBox(angle)
+ fun msg() = "Expected (${expected.x}, ${expected.y}) got (${actual.x}, ${actual.y})"
+ Assertions.assertEquals(expected.x, actual.x, 0.0001F, ::msg)
+ Assertions.assertEquals(expected.y, actual.y, 0.0001F, ::msg)
+ }
+ }.asStream()
+ }
+}