@@ -132,6 +132,13 @@ const vectorTest = (Vec3) => {
132132 assert . closeTo ( cross3 . y , 0 , 0.01 ) ;
133133 assert . closeTo ( cross3 . z , 49 , 0.01 ) ;
134134 } ) ;
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+ } ) ;
135142} ;
136143
137144describe ( 'standard Vector test.' , ( ) => {
@@ -184,3 +191,31 @@ describe('calc test.', () => {
184191 assert . equal ( vec , 7 ) ;
185192 } ) ;
186193} ) ;
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