@@ -0,0 +1,1380 @@
+package org.joml.test;%0D%0A%0D%0Aimport java.nio.IntBuffer;%0D%0A%0D%0Aimport junit.framework.TestCase;%0D%0A%0D%0Aimport org.joml.Matrix4f;%0D%0Aimport org.joml.Vector4f;%0D%0A%0D%0A/**%0D%0A * Tests for the %7B@link Matrix4f%7D class.%0D%0A * %0D%0A * @author Kai Burjack%0D%0A */%0D%0Apublic class Matrix4fTest extends TestCase %7B%0D%0A%0D%0A    /**%0D%0A     * Test that project and unproject are each other's inverse operations.%0D%0A     */%0D%0A    public void testProjectUnproject() %7B%0D%0A        /* Build some arbitrary viewport. */%0D%0A        IntBuffer viewport = IntBuffer.wrap(new int%5B%5D%7B0, 0, 800, 800%7D);%0D%0A%0D%0A        Vector4f expected = new Vector4f(1.0f, 2.0f, -3.0f, 1.0f);%0D%0A        Vector4f actual = new Vector4f();%0D%0A        Matrix4f inverse = new Matrix4f();%0D%0A%0D%0A        /* Build a perspective projection and then project and unproject. */%0D%0A        new Matrix4f()%0D%0A        .perspective(45.0f, 1.0f, 0.01f, 100.0f)%0D%0A        .project(expected.x, expected.y, expected.z, viewport, actual)%0D%0A        .unproject(actual.x, actual.y, actual.z, viewport, inverse, actual);%0D%0A%0D%0A        /* Check for equality of the components */%0D%0A        assertEquals(expected.x, actual.x, TestUtil.MANY_OPS_PRECISION_FLOAT);%0D%0A        assertEquals(expected.y, actual.y, TestUtil.MANY_OPS_PRECISION_FLOAT);%0D%0A        assertEquals(expected.z, actual.z, TestUtil.MANY_OPS_PRECISION_FLOAT);%0D%0A        assertEquals(expected.w, actual.w, TestUtil.MANY_OPS_PRECISION_FLOAT);%0D%0A    %7D%0D%0A%0D%0A%7D%0D%0A

Add Matrix4fTest