瀏覽代碼

add quaternion tests

gero3 6 年之前
父節點
當前提交
2a2cafcac2
共有 1 個文件被更改,包括 58 次插入6 次删除
  1. 58 6
      test/unit/src/math/Quaternion.tests.js

+ 58 - 6
test/unit/src/math/Quaternion.tests.js

@@ -358,9 +358,20 @@ export default QUnit.module( 'Maths', () => {
 
 		} );
 
-		QUnit.todo( "clone", ( assert ) => {
+		QUnit.test( "clone", ( assert ) => {
 
-			assert.ok( false, "everything's gonna be alright" );
+
+			var a = new Quaternion().clone();
+			assert.ok( a.x == 0, "Passed!" );
+			assert.ok( a.y == 0, "Passed!" );
+			assert.ok( a.z == 0, "Passed!" );
+			assert.ok( a.w == 1, "Passed!" );
+
+			var b = a.set( x, y, z, w ).clone();
+			assert.ok( b.x == x, "Passed!" );
+			assert.ok( b.y == y, "Passed!" );
+			assert.ok( b.z === z, "Passed!" );
+			assert.ok( b.w === w, "Passed!" );
 
 		} );
 
@@ -600,9 +611,39 @@ export default QUnit.module( 'Maths', () => {
 
 		} );
 
-		QUnit.todo( "slerp", ( assert ) => {
+		QUnit.test( "slerp", ( assert ) => {
+
+			var a = new Quaternion( x, y, z, w );
+			var b = new Quaternion( - x, - y, - z, - w );
+
+			var c = a.clone().slerp( b, 0 );
+			var d = a.clone().slerp( b, 1 );
+
+			assert.ok( a.equals( c ), "Passed" );
+			assert.ok( b.equals( d ), "Passed" );
+
 
-			assert.ok( false, "everything's gonna be alright" );
+			var D = Math.SQRT1_2;
+
+			var e = new Quaternion( 1, 0, 0, 0 );
+			var f = new Quaternion( 0, 0, 1, 0 );
+			var expected = new Quaternion( D, 0, D, 0 );
+			var result = e.clone().slerp( f, 0.5 );
+			assert.ok( Math.abs( result.x - expected.x ) <= eps, "Check x" );
+			assert.ok( Math.abs( result.y - expected.y ) <= eps, "Check y" );
+			assert.ok( Math.abs( result.z - expected.z ) <= eps, "Check z" );
+			assert.ok( Math.abs( result.w - expected.w ) <= eps, "Check w" );
+
+
+			var g = new Quaternion( 0, D, 0, D );
+			var h = new Quaternion( 0, - D, 0, D );
+			expected = new Quaternion( 0, 0, 0, 1 );
+			result = g.clone().slerp( h, 0.5 );
+
+			assert.ok( Math.abs( result.x - expected.x ) <= eps, "Check x" );
+			assert.ok( Math.abs( result.y - expected.y ) <= eps, "Check y" );
+			assert.ok( Math.abs( result.z - expected.z ) <= eps, "Check z" );
+			assert.ok( Math.abs( result.w - expected.w ) <= eps, "Check w" );
 
 		} );
 
@@ -626,9 +667,20 @@ export default QUnit.module( 'Maths', () => {
 
 		} );
 
-		QUnit.todo( "fromArray", ( assert ) => {
+		QUnit.test( "fromArray", ( assert ) => {
+
+			var a = new Quaternion();
+			a.fromArray( [ x, y, z, w ] );
+			assert.ok( a.x == x, "Passed!" );
+			assert.ok( a.y == y, "Passed!" );
+			assert.ok( a.z === z, "Passed!" );
+			assert.ok( a.w === w, "Passed!" );
 
-			assert.ok( false, "everything's gonna be alright" );
+			a.fromArray( [ undefined, x, y, z, w, undefined ], 1 );
+			assert.ok( a.x == x, "Passed!" );
+			assert.ok( a.y == y, "Passed!" );
+			assert.ok( a.z === z, "Passed!" );
+			assert.ok( a.w === w, "Passed!" );
 
 		} );