1
1
import test from 'ava' ;
2
2
import { CSG } from '../csg' ;
3
+ import { nearlyEqual } from "../helpers/nearlyEqual" ;
3
4
4
5
test ( "CSG.Vector2D creation" , t => {
5
6
// FAILS const v1 = new CSG.Vector2D()
@@ -24,52 +25,52 @@ test("CSG.Vector2D creation", t => {
24
25
t . is ( v6 . y , 5 )
25
26
26
27
const v7 = CSG . Vector2D . fromAngleRadians ( 2 )
27
- t . is ( v7 . x , - 0.4161468365471424 )
28
- t . is ( v7 . y , 0.9092974268256817 )
28
+ nearlyEqual ( t , v7 . x , - 0.4161468365 , 1e-10 )
29
+ nearlyEqual ( t , v7 . y , 0.9092974268 , 1e-10 )
29
30
30
31
const v8 = CSG . Vector2D . fromAngle ( - 2 )
31
- t . is ( v8 . x , - 0.4161468365471424 )
32
- t . is ( v8 . y , - 0.9092974268256817 )
32
+ nearlyEqual ( t , v8 . x , - 0.4161468365 , 1e-10 )
33
+ nearlyEqual ( t , v8 . y , - 0.9092974268 , 1e-10 )
33
34
34
35
const v9 = CSG . Vector2D . fromAngleDegrees ( 45 )
35
- t . is ( v9 . x , 0.7071067811865476 )
36
- t . is ( v9 . y , 0.7071067811865475 )
36
+ nearlyEqual ( t , v9 . x , 0.7071067811 , 1e-10 )
37
+ nearlyEqual ( t , v9 . y , 0.7071067811 , 1e-10 )
37
38
} ) ;
38
39
39
40
test ( "CSG.Vector2D operations" , t => {
40
41
const v1 = CSG . Vector2D . fromAngleDegrees ( 45 )
41
42
42
43
var v2 = v1 . clone ( )
43
- t . is ( v2 . x , 0.7071067811865476 )
44
- t . is ( v2 . y , 0.7071067811865475 )
44
+ nearlyEqual ( t , v2 . x , 0.7071067811 , 1e-10 )
45
+ nearlyEqual ( t , v2 . y , 0.7071067811 , 1e-10 )
45
46
46
47
var l = v2 . length ( )
47
48
t . is ( l , 1.0 )
48
49
l = v2 . lengthSquared ( )
49
50
t . is ( l , 1.0 )
50
51
51
52
var a = v2 . angle ( )
52
- t . is ( a , 0.7853981633974482 )
53
+ nearlyEqual ( t , a , 0.7853981633 , 1e-10 )
53
54
a = v2 . angleRadians ( )
54
- t . is ( a , 0.7853981633974482 )
55
+ nearlyEqual ( t , a , 0.7853981633 , 1e-10 )
55
56
a = v2 . angleDegrees ( )
56
- t . is ( a , 44.99999999999999 )
57
+ nearlyEqual ( t , a , 45.0 , 1e-10 )
57
58
58
59
var v3 = v2 . negated ( )
59
- t . is ( v3 . x , - 0.7071067811865476 )
60
- t . is ( v3 . y , - 0.7071067811865475 )
60
+ nearlyEqual ( t , v3 . x , - 0.7071067811 , 1e-10 )
61
+ nearlyEqual ( t , v3 . y , - 0.7071067811 , 1e-10 )
61
62
62
63
v3 = v2 . unit ( )
63
- t . is ( v3 . x , 0.7071067811865476 )
64
- t . is ( v3 . y , 0.7071067811865475 )
64
+ nearlyEqual ( t , v3 . x , 0.7071067811 , 1e-10 )
65
+ nearlyEqual ( t , v3 . y , 0.7071067811 , 1e-10 )
65
66
66
67
v3 = v3 . negated ( ) . abs ( )
67
- t . is ( v3 . x , 0.7071067811865476 )
68
- t . is ( v3 . y , 0.7071067811865475 )
68
+ nearlyEqual ( t , v3 . x , 0.7071067811 , 1e-10 )
69
+ nearlyEqual ( t , v3 . y , 0.7071067811 , 1e-10 )
69
70
70
71
v3 = v2 . normal ( )
71
- t . is ( v3 . x , 0.7071067811865475 )
72
- t . is ( v3 . y , - 0.7071067811865476 )
72
+ nearlyEqual ( t , v3 . x , 0.7071067811 , 1e-10 )
73
+ nearlyEqual ( t , v3 . y , - 0.7071067811 , 1e-10 )
73
74
74
75
t . true ( v1 . equals ( v2 ) )
75
76
@@ -115,11 +116,11 @@ test("CSG.Vector2D operations", t => {
115
116
t . is ( d , 0 )
116
117
117
118
d = c1 . distanceTo ( c2 )
118
- t . is ( d , 7.0710678118654755 )
119
+ nearlyEqual ( t , d , 7.0710678118 , 1e-10 )
119
120
d = c1 . distanceTo ( c3 )
120
- t . is ( d , 10.0 )
121
+ nearlyEqual ( t , d , 10.0 , 1e-10 )
121
122
d = c1 . distanceTo ( c4 )
122
- t . is ( d , 7.0710678118654755 )
123
+ nearlyEqual ( t , d , 7.0710678118 , 1e-10 )
123
124
124
125
d = c1 . distanceToSquared ( c2 )
125
126
t . is ( d , 50.0 )
0 commit comments