aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2012-05-12 04:07:34 +0200
committerSven Gothel <[email protected]>2012-05-12 04:07:34 +0200
commit7f85501bd448afc9ba52f6abbe5f049d673d824d (patch)
treed4cfd0eaea078d041ae78726703e1b34f30593da /src
parentcbc77718f01a8190e1a8aa0e9afdc2a3a3403358 (diff)
Add unit tests for gluUnProject fix (commit cbc77718f01a8190e1a8aa0e9afdc2a3a3403358)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/test/com/jogamp/opengl/test/junit/jogl/glu/TestGluUnprojectFloatNOUI.java55
1 files changed, 50 insertions, 5 deletions
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/glu/TestGluUnprojectFloatNOUI.java b/src/test/com/jogamp/opengl/test/junit/jogl/glu/TestGluUnprojectFloatNOUI.java
index 9e48a2000..717d5e4b8 100755
--- a/src/test/com/jogamp/opengl/test/junit/jogl/glu/TestGluUnprojectFloatNOUI.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/glu/TestGluUnprojectFloatNOUI.java
@@ -33,14 +33,10 @@ import javax.media.opengl.glu.GLU;
import org.junit.Assert;
import org.junit.Test;
-/**
- * @author Julien Gouesse
- */
public class TestGluUnprojectFloatNOUI {
-
@Test
- public void test(){
+ public void testNaN(){
final GLU glu = new GLU();
final int[] pickedPoint = new int[]{400,300};
final float pickedPointDepth = 0;
@@ -52,6 +48,55 @@ public class TestGluUnprojectFloatNOUI {
Assert.assertTrue(!Double.isNaN(objCoords[0])&&!Double.isNaN(objCoords[1])&&!Double.isNaN(objCoords[2]));
}
+ @Test
+ public void test01(){
+ float[] mv = new float[] { 1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1 };
+
+ float[] p = new float[] { 2.3464675f, 0, 0, 0,
+ 0, 2.4142134f, 0, 0,
+ 0, 0, -1.0002f, -1,
+ 0, 0, -20.002f, 0 };
+
+ int[] v = new int[] { 0, 0, 1000, 1000 };
+
+ float[] s = new float[] { 250, 250, 0.5f };
+
+ float[] expected = new float[] { -4.2612f, -4.1417f, -19.9980f };
+ float[] result = new float[] { 0, 0, 0 };
+
+ final GLU glu = new GLU();
+ glu.gluUnProject(s[0], s[1], s[2], mv, 0, p, 0, v, 0, result, 0);
+
+ Assert.assertArrayEquals(expected, result, 0.0001f);
+ }
+
+ @Test
+ public void test02(){
+ float[] mv = new float[] { 1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, -200, 1 } ;
+
+ float[] p = new float[] { 2.3464675f, 0, 0, 0,
+ 0, 2.4142134f, 0, 0,
+ 0, 0, -1.0002f, -1,
+ 0, 0, -20.002f, 0 };
+
+ int[] v = new int[] { 0, 0, 1000, 1000 };
+
+ float[] s = new float[] { 250, 250, 0.5f };
+ float[] expected = new float[] { -4.2612f, -4.1417f, 180.002f };
+ float[] result = new float[] { 0, 0, 0 };
+
+ final GLU glu = new GLU();
+ glu.gluUnProject(s[0], s[1], s[2], mv, 0, p, 0, v, 0, result, 0);
+
+ Assert.assertArrayEquals(expected, result, 0.0001f);
+ }
+
public static void main(String args[]) {
org.junit.runner.JUnitCore.main(TestGluUnprojectFloatNOUI.class.getName());
}