@@ -132,6 +132,13 @@ const vectorTest = (Vec3) => {
132
132
assert . closeTo ( cross3 . y , 0 , 0.01 ) ;
133
133
assert . closeTo ( cross3 . z , 49 , 0.01 ) ;
134
134
} ) ;
135
+
136
+ it ( 'should swizzle x y z values' , ( ) => {
137
+ const pos = new Vec3 ( 5 , 6 , 7 ) . swizzle ( 'zxy' ) ;
138
+ assert . equal ( pos . x , 7 ) ;
139
+ assert . equal ( pos . y , 5 ) ;
140
+ assert . equal ( pos . z , 6 ) ;
141
+ } ) ;
135
142
} ;
136
143
137
144
describe ( 'standard Vector test.' , ( ) => {
@@ -184,3 +191,31 @@ describe('calc test.', () => {
184
191
assert . equal ( vec , 7 ) ;
185
192
} ) ;
186
193
} ) ;
194
+
195
+ describe ( 'performance test' , ( ) => {
196
+ it ( 'should be fast' , ( ) => {
197
+ let time = new Date ( ) . getTime ( ) ;
198
+
199
+ const v1 = new Vector ( 1 , 2 , 3 ) ;
200
+ const v2 = new Vector ( 4 , 5 , 6 ) ;
201
+ for ( let i = 0 ; i < 10000 ; i ++ ) {
202
+ const v3 = calc ( ( ) => v1 . cross ( v2 ) + v2 * v1 - v1 / v2 + ( v2 * v2 ) / v1 ) ;
203
+ }
204
+ time = new Date ( ) . getTime ( ) - time ;
205
+ console . log ( 'perf test fast' , `${ Math . round ( time ) / 1000 } s` ) ;
206
+ } ) ;
207
+
208
+ it ( 'should be faster' , ( ) => {
209
+ let time = new Date ( ) . getTime ( ) ;
210
+
211
+ const v1 = new Vector ( 1 , 2 , 3 ) ;
212
+ const v2 = new Vector ( 4 , 5 , 6 ) ;
213
+
214
+ const fn = ( ) => v1 + v2 * v1 - v1 / v2 + ( v2 * v2 ) / v1 ;
215
+ for ( let i = 0 ; i < 10000 ; i ++ ) {
216
+ const v3 = calc ( fn ) ;
217
+ }
218
+ time = new Date ( ) . getTime ( ) - time ;
219
+ console . log ( 'perf test faster' , `${ Math . round ( time ) / 1000 } s` ) ;
220
+ } ) ;
221
+ } ) ;
0 commit comments