|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 "use strict"; |
|
4 |
|
5 function test() { |
|
6 let m1 = mat4.create(); |
|
7 |
|
8 ok(m1, "Should have created a matrix with mat4.create()."); |
|
9 is(m1.length, 16, "A mat4 should have 16 elements."); |
|
10 |
|
11 ok(isApproxVec(m1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), |
|
12 "When created, a mat4 should have the values default to identity."); |
|
13 |
|
14 mat4.set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], m1); |
|
15 ok(isApproxVec(m1, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]), |
|
16 "The mat4.set() function didn't set the values correctly."); |
|
17 |
|
18 mat4.transpose(m1); |
|
19 ok(isApproxVec(m1, [1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 4, 8, 12, 16]), |
|
20 "The mat4.transpose() function didn't set the values correctly."); |
|
21 |
|
22 mat4.identity(m1); |
|
23 ok(isApproxVec(m1, [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]), |
|
24 "The mat4.identity() function didn't set the values correctly."); |
|
25 |
|
26 ok(isApprox(mat4.determinant(m1), 1), |
|
27 "The mat4.determinant() function didn't calculate the value correctly."); |
|
28 |
|
29 let m2 = mat4.inverse([1, 3, 1, 1, 1, 1, 2, 1, 2, 3, 4, 1, 1, 1, 1, 1]); |
|
30 ok(isApproxVec(m2, [ |
|
31 -1, -3, 1, 3, 0.5, 0, 0, -0.5, 0, 1, 0, -1, 0.5, 2, -1, -0.5 |
|
32 ]), "The mat4.inverse() function didn't calculate the values correctly."); |
|
33 |
|
34 let m3 = mat4.toRotationMat([ |
|
35 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 4, 8, 12, 16]); |
|
36 ok(isApproxVec(m3, [ |
|
37 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 0, 0, 0, 1 |
|
38 ]), "The mat4.toRotationMat() func. didn't calculate the values correctly."); |
|
39 |
|
40 let m4 = mat4.toMat3([ |
|
41 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 4, 8, 12, 16]); |
|
42 ok(isApproxVec(m4, [1, 5, 9, 2, 6, 10, 3, 7, 11]), |
|
43 "The mat4.toMat3() function didn't set the values correctly."); |
|
44 |
|
45 let m5 = mat4.toInverseMat3([ |
|
46 1, 3, 1, 1, 1, 1, 2, 1, 2, 3, 4, 1, 1, 1, 1, 1]); |
|
47 ok(isApproxVec(m5, [2, 9, -5, 0, -2, 1, -1, -3, 2]), |
|
48 "The mat4.toInverseMat3() function didn't set the values correctly."); |
|
49 } |