Explorar o código

Add test for ClosedSplineCurve3

Joshua Koo %!s(int64=9) %!d(string=hai) anos
pai
achega
e3d2617108

+ 51 - 0
test/unit/extras/curves/ClosedSplineCurve3.js

@@ -0,0 +1,51 @@
+/**
+ * @author zz85 / http://joshuakoo.com
+ */
+
+module( "ClosedSplineCurve3" );
+
+function vectorsAreEqual( check, that ) {
+
+	if ( check.length !== that.length ) return 'Length not equal';
+
+	for ( var i = 0; i < check.length; i ++ ) {
+
+		if ( ! check[ i ] .equals( that[ i ] ) ) {
+
+			return 'Vector differs at index ' + i;
+		}
+	}
+
+	return;
+}
+
+test( "basic check", function() {
+
+	var closedSpline = new THREE.ClosedSplineCurve3( [
+		new THREE.Vector3( -60, -100,  60 ),
+		new THREE.Vector3( -60,   20,  60 ),
+		new THREE.Vector3( -60,  120,  60 ),
+		new THREE.Vector3(  60,   20, -60 ),
+		new THREE.Vector3(  60, -100, -60 )
+	] );
+
+	var closedSplinePoints = [
+		new THREE.Vector3(-60,-100,60),
+		new THREE.Vector3(-67.5,-46.25,67.5),
+		new THREE.Vector3(-60,20,60),
+		new THREE.Vector3(-67.5,83.75,67.5),
+		new THREE.Vector3(-60,120,60),
+		new THREE.Vector3(0,83.75,0),
+		new THREE.Vector3(60,20,-60),
+		new THREE.Vector3(75,-46.25,-75),
+		new THREE.Vector3(60,-100,-60),
+		new THREE.Vector3(0,-115,0),
+		new THREE.Vector3(-60,-100,60),
+	];
+
+	var getPoints = closedSpline.getPoints(10);
+	var error = vectorsAreEqual( getPoints , closedSplinePoints );
+	ok( getPoints.length == 11, 'getPoints are equal.' + error );
+	ok( !error, 'Points are equal.' + error );
+
+});

+ 6 - 0
test/unit/unittests_sources.html

@@ -33,6 +33,10 @@
   <script src="../../src/math/Triangle.js"></script>
   <script src="../../src/math/Interpolant.js"></script>
 
+  <script src="../../src/extras/core/Curve.js"></script>
+  <script src="../../src/extras/CurveUtils.js"></script>
+  <script src="../../src/extras/curves/ClosedSplineCurve3.js"></script>
+
   <!-- add class-based unit tests below -->
 
   <script src="math/Constants.js"></script>
@@ -55,5 +59,7 @@
   <script src="math/Color.js"></script>
   <script src="math/Interpolant.js"></script>
 
+  <script src="extras/curves/ClosedSplineCurve3.js"></script>
+
 </body>
 </html>