@@ -7,8 +7,8 @@ alias Q = CrystalEdge::Quaternion
7
7
alias M3 = CrystalEdge ::Matrix3
8
8
alias M4 = CrystalEdge ::Matrix4
9
9
10
- describe CrystalEdge do
11
- it " passes Vector2 tests " do
10
+ describe CrystalEdge :: Vector2 do
11
+ it " works " do
12
12
vec1 = V2 .new(1.0 , 2.0 )
13
13
vec2 = V2 .new(3.0 , 4.0 )
14
14
vsum = V2 .new(4.0 , 6.0 )
@@ -34,8 +34,10 @@ describe CrystalEdge do
34
34
vec1.should eq(V2 .new(42.0 , 0.0 ))
35
35
vec1.normalize.magnitude.should eq(1.0 )
36
36
end
37
+ end
37
38
38
- it " passes Vector3 tests" do
39
+ describe CrystalEdge ::Vector3 do
40
+ it " works" do
39
41
vec1 = V3 .zero
40
42
vec2 = V3 .new(3.0 , 4.0 , 0.0 )
41
43
(vec1 == vec2).should eq(false )
@@ -64,7 +66,9 @@ describe CrystalEdge do
64
66
vec5.should eq(V3 .new(42.0 , 0.0 , 0.0 ))
65
67
vec5.normalize.magnitude.should eq(1.0 )
66
68
end
69
+ end
67
70
71
+ describe CrystalEdge ::Vector4 do
68
72
it " passes Vector4 tests" do
69
73
vec1 = V4 .zero
70
74
vec2 = V4 .new(1.0 , 2.0 , 3.0 , 4.0 )
@@ -83,32 +87,43 @@ describe CrystalEdge do
83
87
vec1.should eq(V4 .new(42.0 , 0.0 , 0.0 , 0.0 ))
84
88
vec1.normalize.magnitude.should eq(1.0 )
85
89
end
90
+ end
86
91
87
- it " passes Quaternion tests" do
92
+ describe CrystalEdge ::Quaternion do
93
+ it " works" do
88
94
q1 = Q .new(1.0 , 1.0 , 1.0 , 1.0 )
89
95
q2 = Q .new(-1.0 , -1.0 , -1.0 , 1.0 )
90
96
q3 = Q .new(1.0 , 1.0 , 1.0 , -1.0 )
91
97
q1.conjugate.should eq(q2)
92
98
(- (q1.conjugate)).should eq(q3)
93
99
(q2 + q3).should eq(Q .zero)
94
100
end
101
+ end
95
102
96
- it " passes Matrix3 tests" do
103
+ describe CrystalEdge ::Matrix3 do
104
+ it " works" do
97
105
m0 = M3 .new { |i | 0.0 }
98
106
m1 = M3 .new { |i | i.to_f }
99
107
m2 = M3 .new { |i | 2.0 * i }
100
108
101
- (m1 == m2).should eq(false )
109
+ m1.should_not eq(m2 )
102
110
(m1 != m2).should eq(true )
103
- (m0 == m0) .should eq(true )
111
+ m0 .should eq(m0 )
104
112
(m0 + m1).should eq(m1)
105
113
(m1* 2.0 ).should eq(m2)
106
114
107
115
m0.make_translation!(V2 .new(0.0 , 1.0 ))
108
116
m0[1 , 2 ].should eq(1.0 )
117
+
118
+ m3 = M3 .new(StaticArray (Float64 , 9 ).new(0.0 ))
119
+ m4 = M3 .new(StaticArray (Float64 , 9 ).new(0.0 ))
120
+ m4[8 ] = 1.0
121
+ m3.should_not eq(m4)
109
122
end
123
+ end
110
124
111
- it " passes Matrix4 tests" do
125
+ describe CrystalEdge ::Matrix4 do
126
+ it " works" do
112
127
m0 = M4 .new { |i | 0.0 }
113
128
m1 = M4 .new { |i | i.to_f }
114
129
m2 = M4 .new { |i | 2.0 * i }
@@ -119,7 +134,9 @@ describe CrystalEdge do
119
134
(m0 + m1).should eq(m1)
120
135
(m1* 2.0 ).should eq(m2)
121
136
end
137
+ end
122
138
139
+ describe CrystalEdge do
123
140
it " converts Quaternion and Euler angles" do
124
141
ea = V3 .new(1.0 , 2.0 , Math ::PI )
125
142
q = Q .from_euler(ea)
0 commit comments