source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/mrdoob-three.js-4862f5f/test/unit/math/Vector2.js@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 5.2 KB
Line 
1/**
2 * @author bhouston / http://exocortex.com
3 */
4
5module( "Vector2" );
6
7test( "constructor", function() {
8 var a = new THREE.Vector2();
9 ok( a.x == 0, "Passed!" );
10 ok( a.y == 0, "Passed!" );
11
12 a = new THREE.Vector2( x, y );
13 ok( a.x === x, "Passed!" );
14 ok( a.y === y, "Passed!" );
15});
16
17test( "copy", function() {
18 var a = new THREE.Vector2( x, y );
19 var b = new THREE.Vector2().copy( a );
20 ok( b.x == x, "Passed!" );
21 ok( b.y == y, "Passed!" );
22
23 // ensure that it is a true copy
24 a.x = 0;
25 a.y = -1;
26 ok( b.x == x, "Passed!" );
27 ok( b.y == y, "Passed!" );
28});
29
30test( "set", function() {
31 var a = new THREE.Vector2();
32 ok( a.x == 0, "Passed!" );
33 ok( a.y == 0, "Passed!" );
34
35 a.set( x, y );
36 ok( a.x == x, "Passed!" );
37 ok( a.y == y, "Passed!" );
38});
39
40test( "setX,setY", function() {
41 var a = new THREE.Vector2();
42 ok( a.x == 0, "Passed!" );
43 ok( a.y == 0, "Passed!" );
44
45 a.setX( x );
46 a.setY( y );
47 ok( a.x == x, "Passed!" );
48 ok( a.y == y, "Passed!" );
49});
50
51test( "setComponent,getComponent", function() {
52 var a = new THREE.Vector2();
53 ok( a.x == 0, "Passed!" );
54 ok( a.y == 0, "Passed!" );
55
56 a.setComponent( 0, 1 );
57 a.setComponent( 1, 2 );
58 ok( a.getComponent( 0 ) == 1, "Passed!" );
59 ok( a.getComponent( 1 ) == 2, "Passed!" );
60});
61
62test( "add", function() {
63 var a = new THREE.Vector2( x, y );
64 var b = new THREE.Vector2( -x, -y );
65
66 a.add( b );
67 ok( a.x == 0, "Passed!" );
68 ok( a.y == 0, "Passed!" );
69
70 var c = new THREE.Vector2().addVectors( b, b );
71 ok( c.x == -2*x, "Passed!" );
72 ok( c.y == -2*y, "Passed!" );
73});
74
75test( "sub", function() {
76 var a = new THREE.Vector2( x, y );
77 var b = new THREE.Vector2( -x, -y );
78
79 a.sub( b );
80 ok( a.x == 2*x, "Passed!" );
81 ok( a.y == 2*y, "Passed!" );
82
83 var c = new THREE.Vector2().subVectors( a, a );
84 ok( c.x == 0, "Passed!" );
85 ok( c.y == 0, "Passed!" );
86});
87
88test( "multiply/divide", function() {
89 var a = new THREE.Vector2( x, y );
90 var b = new THREE.Vector2( -x, -y );
91
92 a.multiplyScalar( -2 );
93 ok( a.x == x*-2, "Passed!" );
94 ok( a.y == y*-2, "Passed!" );
95
96 b.multiplyScalar( -2 );
97 ok( b.x == 2*x, "Passed!" );
98 ok( b.y == 2*y, "Passed!" );
99
100 a.divideScalar( -2 );
101 ok( a.x == x, "Passed!" );
102 ok( a.y == y, "Passed!" );
103
104 b.divideScalar( -2 );
105 ok( b.x == -x, "Passed!" );
106 ok( b.y == -y, "Passed!" );
107});
108
109
110test( "min/max/clamp", function() {
111 var a = new THREE.Vector2( x, y );
112 var b = new THREE.Vector2( -x, -y );
113 var c = new THREE.Vector2();
114
115 c.copy( a ).min( b );
116 ok( c.x == -x, "Passed!" );
117 ok( c.y == -y, "Passed!" );
118
119 c.copy( a ).max( b );
120 ok( c.x == x, "Passed!" );
121 ok( c.y == y, "Passed!" );
122
123 c.set( -2*x, 2*y );
124 c.clamp( b, a );
125 ok( c.x == -x, "Passed!" );
126 ok( c.y == y, "Passed!" );
127});
128
129test( "negate", function() {
130 var a = new THREE.Vector2( x, y );
131
132 a.negate();
133 ok( a.x == -x, "Passed!" );
134 ok( a.y == -y, "Passed!" );
135});
136
137test( "dot", function() {
138 var a = new THREE.Vector2( x, y );
139 var b = new THREE.Vector2( -x, -y );
140 var c = new THREE.Vector2();
141
142 var result = a.dot( b );
143 ok( result == (-x*x-y*y), "Passed!" );
144
145 result = a.dot( c );
146 ok( result == 0, "Passed!" );
147});
148
149test( "length/lengthSq", function() {
150 var a = new THREE.Vector2( x, 0 );
151 var b = new THREE.Vector2( 0, -y );
152 var c = new THREE.Vector2();
153
154 ok( a.length() == x, "Passed!" );
155 ok( a.lengthSq() == x*x, "Passed!" );
156 ok( b.length() == y, "Passed!" );
157 ok( b.lengthSq() == y*y, "Passed!" );
158 ok( c.length() == 0, "Passed!" );
159 ok( c.lengthSq() == 0, "Passed!" );
160
161 a.set( x, y );
162 ok( a.length() == Math.sqrt( x*x + y*y ), "Passed!" );
163 ok( a.lengthSq() == ( x*x + y*y ), "Passed!" );
164});
165
166test( "normalize", function() {
167 var a = new THREE.Vector2( x, 0 );
168 var b = new THREE.Vector2( 0, -y );
169 var c = new THREE.Vector2();
170
171 a.normalize();
172 ok( a.length() == 1, "Passed!" );
173 ok( a.x == 1, "Passed!" );
174
175 b.normalize();
176 ok( b.length() == 1, "Passed!" );
177 ok( b.y == -1, "Passed!" );
178});
179
180test( "distanceTo/distanceToSquared", function() {
181 var a = new THREE.Vector2( x, 0 );
182 var b = new THREE.Vector2( 0, -y );
183 var c = new THREE.Vector2();
184
185 ok( a.distanceTo( c ) == x, "Passed!" );
186 ok( a.distanceToSquared( c ) == x*x, "Passed!" );
187
188 ok( b.distanceTo( c ) == y, "Passed!" );
189 ok( b.distanceToSquared( c ) == y*y, "Passed!" );
190});
191
192test( "setLength", function() {
193 var a = new THREE.Vector2( x, 0 );
194
195 ok( a.length() == x, "Passed!" );
196 a.setLength( y );
197 ok( a.length() == y, "Passed!" );
198
199 a = new THREE.Vector2( 0, 0 );
200 ok( a.length() == 0, "Passed!" );
201 a.setLength( y );
202 ok( a.length() == 0, "Passed!" );
203});
204
205test( "lerp/clone", function() {
206 var a = new THREE.Vector2( x, 0 );
207 var b = new THREE.Vector2( 0, -y );
208
209 ok( a.lerp( a, 0 ).equals( a.lerp( a, 0.5 ) ), "Passed!" );
210 ok( a.lerp( a, 0 ).equals( a.lerp( a, 1 ) ), "Passed!" );
211
212 ok( a.clone().lerp( b, 0 ).equals( a ), "Passed!" );
213
214 ok( a.clone().lerp( b, 0.5 ).x == x*0.5, "Passed!" );
215 ok( a.clone().lerp( b, 0.5 ).y == -y*0.5, "Passed!" );
216
217 ok( a.clone().lerp( b, 1 ).equals( b ), "Passed!" );
218});
219
220test( "equals", function() {
221 var a = new THREE.Vector2( x, 0 );
222 var b = new THREE.Vector2( 0, -y );
223
224 ok( a.x != b.x, "Passed!" );
225 ok( a.y != b.y, "Passed!" );
226
227 ok( ! a.equals( b ), "Passed!" );
228 ok( ! b.equals( a ), "Passed!" );
229
230 a.copy( b );
231 ok( a.x == b.x, "Passed!" );
232 ok( a.y == b.y, "Passed!" );
233
234 ok( a.equals( b ), "Passed!" );
235 ok( b.equals( a ), "Passed!" );
236});
Note: See TracBrowser for help on using the repository browser.