@@ -120,26 +120,29 @@ suite('p5.Vector', function() {
120120 test ( 'should not trip on rounding issues in 2D space' , function ( ) {
121121 var v1 = myp5 . createVector ( - 11 , - 20 ) ;
122122 var v2 = myp5 . createVector ( - 5.5 , - 10 ) ;
123- expect ( v1 . angleBetween ( v2 ) ) . to . be . closeTo ( 0 , 0.00001 ) ;
123+ var res = v1 . angleBetween ( v2 ) ;
124+ //expect(Math.abs(v1.angleBetween(v2))).to.be.closeTo(0, 0.00001);
125+ expect ( res ) . to . be . closeTo ( 0 , 0.00001 ) ;
124126
125127 var v3 = myp5 . createVector ( - 11 , - 20 ) ;
126128 var v4 = myp5 . createVector ( 5.5 , 10 ) ;
129+ expect ( Math . abs ( v3 . angleBetween ( v4 ) ) ) . to . be . closeTo ( 180 , 0.00001 ) ;
127130 expect ( v3 . angleBetween ( v4 ) ) . to . be . closeTo ( 180 , 0.00001 ) ;
128131 } ) ;
129132
130133 test ( 'should not trip on rounding issues in 3D space' , function ( ) {
131134 var v1 = myp5 . createVector ( 1 , 1.1 , 1.2 ) ;
132135 var v2 = myp5 . createVector ( 2 , 2.2 , 2.4 ) ;
133136
134- var angle = v1 . angleBetween ( v2 ) ;
137+ var angle = Math . abs ( v1 . angleBetween ( v2 ) ) ;
135138 expect ( angle ) . to . be . closeTo ( 0 , 0.00001 ) ;
136139 } ) ;
137140
138141 test ( 'should return NaN for zero vector' , function ( ) {
139142 var v1 = myp5 . createVector ( 0 , 0 , 0 ) ;
140143 var v2 = myp5 . createVector ( 2 , 3 , 4 ) ;
141144
142- expect ( v1 . angleBetween ( v2 ) ) . to . be . NaN ; // jshint ignore:line
145+ expect ( Math . abs ( v1 . angleBetween ( v2 ) ) ) . to . be . NaN ; // jshint ignore:line
143146 expect ( v2 . angleBetween ( v1 ) ) . to . be . NaN ; // jshint ignore:line
144147 } ) ;
145148 } ) ;
@@ -869,14 +872,15 @@ suite('p5.Vector', function() {
869872 v2 = new p5 . Vector ( 2 , 2 , 0 ) ;
870873 res = v1 . angleBetween ( v2 ) ;
871874 expect ( res ) . to . be . closeTo ( Math . PI / 4 , 0.01 ) ;
875+ expect ( v2 . angleBetween ( v1 ) ) . to . be . closeTo ( - 1 * Math . PI / 4 , 0.01 ) ;
872876 } ) ;
873877 } ) ;
874878
875879 suite ( 'with [2,0,0] and [-2,0,0]' , function ( ) {
876880 test ( 'should be 180 deg difference' , function ( ) {
877881 v1 = new p5 . Vector ( 2 , 0 , 0 ) ;
878882 v2 = new p5 . Vector ( - 2 , 0 , 0 ) ;
879- res = v1 . angleBetween ( v2 ) ;
883+ res = Math . abs ( v1 . angleBetween ( v2 ) ) ;
880884 expect ( res ) . to . be . closeTo ( Math . PI , 0.01 ) ;
881885 } ) ;
882886 } ) ;
@@ -885,14 +889,23 @@ suite('p5.Vector', function() {
885889 test ( 'should be 135 deg difference' , function ( ) {
886890 v1 = new p5 . Vector ( 2 , 0 , 0 ) ;
887891 v2 = new p5 . Vector ( - 2 , - 2 , 0 ) ;
888- res = v1 . angleBetween ( v2 ) ;
889- expect ( res ) . to . be . closeTo ( Math . PI / 2 + Math . PI / 4 , 0.01 ) ;
892+ expect ( v1 . angleBetween ( v2 ) ) . to . be . closeTo (
893+ - 1 * ( Math . PI / 2 + Math . PI / 4 ) ,
894+ 0.01
895+ ) ;
896+ expect ( v2 . angleBetween ( v1 ) ) . to . be . closeTo (
897+ Math . PI / 2 + Math . PI / 4 ,
898+ 0.01
899+ ) ;
890900 } ) ;
891901
892902 test ( 'should be commutative' , function ( ) {
893903 v1 = new p5 . Vector ( 2 , 0 , 0 ) ;
894904 v2 = new p5 . Vector ( - 2 , - 2 , 0 ) ;
895- expect ( v1 . angleBetween ( v2 ) ) . to . be . closeTo ( v2 . angleBetween ( v1 ) , 0.01 ) ;
905+ expect ( Math . abs ( v1 . angleBetween ( v2 ) ) ) . to . be . closeTo (
906+ Math . abs ( v2 . angleBetween ( v1 ) ) ,
907+ 0.01
908+ ) ;
896909 } ) ;
897910 } ) ;
898911 } ) ;
0 commit comments