matrix-test.js revision 3292ebaf3948b95e71b5dc0722dcfc46c263eaab
2b372d7f27a89b31208fc8c7db673a8d45b33747TrippYUI.add('matrix-test', function (Y) {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Trippvar Assert = Y.Assert,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Matrix = Y.Matrix,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Round = function(val)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp return Math.round(val * 1000)/1000;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp suite = new Y.Test.Suite('Y.Matrix');
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Trippsuite.add(new Y.Test.Case({
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp name: 'MatrixUtil tests',
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp testGet3x3Determinant: function() {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp var matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 2, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 1, -2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, -3, -1]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp determinant = -25;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Y.MatrixUtil.getDeterminant(matrix), determinant, "The determinant should be: " + determinant + ".");
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, 2, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 4, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, -7, 3]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp determinant = -62;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Y.MatrixUtil.getDeterminant(matrix), determinant, "The determinant should be: " + determinant + ".");
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 0, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 4, 0]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp determinant = -4;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Y.MatrixUtil.getDeterminant(matrix), determinant, "The determinant should be: " + determinant + ".");
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, -7, -3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-1, 0, -1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 0, -6]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp determinant = 42;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Y.MatrixUtil.getDeterminant(matrix), determinant, "The determinant should be: " + determinant + ".");
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp },
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp testGet4x4Determinant: function() {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp var matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 3, 1, 9],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 0, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 2, 4, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 4, 0]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp determinant = -80;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Y.MatrixUtil.getDeterminant(matrix), determinant, "The determinant should be: " + determinant + ".");
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, -5, 3, 4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 3, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 1, -12, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [11, 3, 0, 3]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp determinant = 2349;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Y.MatrixUtil.getDeterminant(matrix), determinant, "The determinant should be: " + determinant + ".");
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, -4, .5, -7],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 0, 3, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 3, 3, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 6, 3, 9]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp determinant = 6;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Y.MatrixUtil.getDeterminant(matrix), determinant, "The determinant should be: " + determinant + ".");
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [14, 3, 11, -4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-5, 9, 0, 3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [.2, 2, 0, 9],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 4, 6, 2]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp determinant = -4832.2;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Y.MatrixUtil.getDeterminant(matrix), determinant, "The determinant should be: " + determinant + ".");
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp },
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp testGet3x3Inverse: function()
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp var matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 2, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 1, -2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, -3, -1]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp inverse = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.28, -0.08, 0.16],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.08, 0.12, -0.24],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.04, -0.44, -0.12]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.inverse(matrix),
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp i,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp j,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp len = matrix.length;
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, 2, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 4, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, -7, 3]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp inverse = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-0.194, 0.21, 0.065],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.097, 0.145, -0.032],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.226, 0.339, 0.258]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.inverse(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 0, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 4, 0]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp inverse = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, -2, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-0.5, 1, -0.25],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 1, -0.5]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.inverse(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, -7, -3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-1, 0, -1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 0, -6]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp inverse = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, -1, 0.167],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-0.143, 0.429, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 0, -0.167]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.inverse(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp },
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp test4x4Inverse: function()
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp var matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 3, 1, 9],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 0, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 2, 4, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 4, 0]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp inverse = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.2, -0.25, -0.9, 0.85],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-0.1, 0.625, 0.45, -0.425],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, -0.25, 0, 0.25],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.1, -0.125, 0.05, -0.075]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp len = matrix.length,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp i,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp j,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.inverse(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, -5, 3, 4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 3, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 1, -12, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [11, 3, 0, 3]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp inverse = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, -0.138, -0.034, 0.103],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-0.111, 0.285, 0.043, -0.056],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 0.042, -0.073, -0.004],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.111, 0.221, 0.083, 0.01]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.inverse(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, -4, .5, -7],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 0, 3, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 3, 3, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 6, 3, 9]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp inverse = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-12, 7.25, 5.5, -10.75],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [8, -5.167, -3.333, 7.167],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [6, -3.333, -2.667, 5.333],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-6, 3.75, 2.5, -5.25]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.inverse(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [14, 3, 11, -4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-5, 9, 0, 3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [.2, 2, 0, 9],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 4, 6, 2]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp inverse = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.093, 0.029, 0.07, -0.171],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0.057, 0.138, 0.002, -0.104],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-0.048, -0.086, -0.049, 0.255],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-0.015, -0.031, 0.109, 0.027]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.inverse(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp },
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp test3x3Transpose: function()
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp var matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 2, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 1, -2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, -3, -1]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp transpose = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 0, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 1, -3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, -2, -1]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp i,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp j,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp len = matrix.length,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.transpose(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, 2, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 4, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, -7, 3]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp transpose = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, 2, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 4, -7],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 0, 3]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.transpose(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 0, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 4, 0]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp transpose = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 1, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 2, 4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 1, 0]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.transpose(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, -7, -3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-1, 0, -1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 0, -6]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp transpose = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, -1, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-7, 0, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, -1, -6]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.transpose(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp },
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp test4x4Transpose: function()
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp var matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 3, 1, 9],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 0, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 2, 4, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 4, 0]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp transpose = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [2, 1, 0, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 2, 2, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 0, 4, 4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [9, 0, 2, 0]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp i,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp j,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp len = matrix.length,
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.transpose(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, -5, 3, 4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 2, 3, 2],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [0, 1, -12, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [11, 3, 0, 3]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp transpose = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-3, 1, 0, 11],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-5, 2, 1, 3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 3, -12, 0],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [4, 2, 1, 3]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.transpose(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, -4, .5, -7],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 0, 3, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 3, 3, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 6, 3, 9]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp transpose = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 1, 3, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-4, 0, 3, 6],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [.5, 3, 3, 3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-7, 1, 1, 9]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.transpose(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp matrix = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [14, 3, 11, -4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-5, 9, 0, 3],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [.2, 2, 0, 9],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [1, 4, 6, 2]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp transpose = [
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [14, -5, .2, 1],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [3, 9, 2, 4],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [11, 0, 0, 6],
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp [-4, 3, 9, 2]
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp ];
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp result = Y.MatrixUtil.transpose(matrix);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(i = 0; i < len; ++i)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp for(j = 0; j < len; ++j)
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp {
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp }
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp}));
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTrippsuite.add(new Y.Test.Case({
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp name: 'Matrix tests',
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp testGetDeterminant: function() {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp determinant = 1,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix = new Y.Matrix();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.rotate(45);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.70711, -0.70711, 0]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.70711, 0.70711, 0]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(mymatrix.getDeterminant()), determinant, "The determinant should be: " + determinant + ".");
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.init();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.translate(15, 15);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1, 0, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 1, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(mymatrix.getDeterminant()), determinant, "The determinant should be: " + determinant + ".");
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.skewX(15);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1, 0.26795, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 1, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(mymatrix.getDeterminant()), determinant, "The determinant should be: " + determinant + ".");
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.scale(33, 11);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [33, 2.9474500000000003, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 11, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp determinant = 363;
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(mymatrix.getDeterminant()), determinant, "The determinant should be: " + determinant + ".");
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.skewY(67);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [39.9437500825, 2.9474500000000003, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [25.914350000000002, 11, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(mymatrix.getDeterminant()), determinant, "The determinant should be: " + determinant + ".");
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp },
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp testGetInverse: function() {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp var result,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp i,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp j,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp inverse,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp len = 3,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix = new Y.Matrix();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.rotate(45);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.70711, -0.70711, 0]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.70711, 0.70711, 0]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //inverse test
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp inverse = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.707, 0.707, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [-0.707, 0.707, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 0.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.inverse();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //clear and translate
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.init();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.translate(15, 15);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1, 0, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 1, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //inverse test
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp inverse = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1.000, 0.000, -15.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 1.000, -15.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 0.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.inverse();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //add a skewX
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.skewX(15);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1, 0.26795, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 1, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //inverse test
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp inverse = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1.000, -0.268, -10.981],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 1.000, -15.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 0.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.inverse();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //add a scale
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.scale(33, 11);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [33, 2.9474500000000003, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 11, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //inverse test
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp inverse = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.030, -0.008, -0.333],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 0.091, -1.364],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 0.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.inverse();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //add a skewY
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.skewY(67);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [39.9437500825, 2.9474500000000003, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [25.914350000000002, 11, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //inverse test
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp inverse = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.030, -0.008, -0.333],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [-0.071, 0.110, -0.580],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 0.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.inverse();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(inverse[i][j]), Round(result[i][j]), "The result of inverse" + (j + 1) + "," + (i +1) + " should be " + inverse[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp },
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp testGetTranspose: function() {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp var result,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp i,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp j,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp transpose,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp len = 3,
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix = new Y.Matrix();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.rotate(45);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.70711, -0.70711, 0]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.70711, 0.70711, 0]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp transpose = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.707, 0.707, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [-0.707, 0.707, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 0.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.transpose();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //clear and translate
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.init();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.translate(15, 15);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1, 0, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 1, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp transpose = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1.000, 0.000, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.000, 1.000, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [15.000, 15.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.transpose();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //add a skewX
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.skewX(15);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1, 0.26795, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 1, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp transpose = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [1.000, 0.000, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0.268, 1.000, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [15.000, 15.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.transpose();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //add a scale
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.scale(33, 11);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [33, 2.9474500000000003, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 11, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp transpose = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [33.000, 0.000, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [2.947, 11.000, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [15.000, 15.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.transpose();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp //add a skewY
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp mymatrix.skewY(67);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp /*
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [39.9437500825, 2.9474500000000003, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [25.914350000000002, 11, 15]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [0, 0, 1]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp */
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp transpose = [
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [39.944, 25.914, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [2.947, 11.000, 0.000],
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp [15.000, 15.000, 1.000]
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp ];
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp result = mymatrix.transpose();
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(i = 0; i < len; ++i)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp for(j = 0; j < len; ++j)
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp {
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp Y.Assert.areEqual(Round(transpose[i][j]), Round(result[i][j]), "The result of transpose" + (j + 1) + "," + (i +1) + " should be " + transpose[i][j] + ", not " + result[i][j]);
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp }
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp}));
3292ebaf3948b95e71b5dc0722dcfc46c263eaabTripp
2b372d7f27a89b31208fc8c7db673a8d45b33747TrippY.Test.Runner.add(suite);
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp
2b372d7f27a89b31208fc8c7db673a8d45b33747Tripp}, '@VERSION@', {requires: ['test']});