UNPKG

matrix-utilities

Version:

Tiny, high performance utilities for performing 2/3D matrix calculations. Full unit test coverage, compatible with Node/CommonJS, AMD, and browser globals.

86 lines (77 loc) 2.89 kB
// Generated by CoffeeScript 1.6.3 (function() { var util; util = require('../matrix-utilities'); exports.Identity = function(test) { var actual, expected; actual = new util.Identity(); expected = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]; test.deepEqual(actual, expected); return test.done(); }; exports.add = function(test) { var actual, expected, one, two; one = two = [[1, 2, 4, 8], [16, 32, 64, 128]]; expected = [[2, 4, 8, 16], [32, 64, 128, 256]]; actual = util.add(one, two); test.deepEqual(actual, expected); one = [[1, 2], [4, 8], [16, 32], [64, 128]]; two = [[2, 3], [5, 7], [11, 13], [17, 19]]; expected = [[3, 5], [9, 15], [27, 45], [81, 147]]; actual = util.add(one, two); test.deepEqual(actual, expected); one = [[1, 2], [3, 4]]; two = [[5, 6], [7, 8], [9, 10]]; test.throws(function() { return util.add(one, two); }); one = [[1, 2], [3, 4]]; two = [[5, 6], [7, 8, 9]]; test.throws(function() { return util.add(one, two); }); return test.done(); }; exports.multiply = function(test) { var actual, expected, one, two; one = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; two = [[1, 2], [3, 4], [5, 6]]; actual = util.multiply(one, two); expected = [[1 * 1 + 2 * 3 + 3 * 5, 1 * 2 + 2 * 4 + 3 * 6], [4 * 1 + 5 * 3 + 6 * 5, 4 * 2 + 5 * 4 + 6 * 6], [7 * 1 + 8 * 3 + 9 * 5, 7 * 2 + 8 * 4 + 9 * 6]]; test.deepEqual(actual, expected); one = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]; two = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]; actual = util.multiply(one, two); expected = [[90, 100, 110, 120], [202, 228, 254, 280], [314, 356, 398, 440], [426, 484, 542, 600]]; test.deepEqual(actual, expected); return test.done(); }; exports.flip = function(test) { var actual, expected, matrix; matrix = [[1, 2], [3, 4]]; actual = util.flip(matrix); expected = [[1, 3], [2, 4]]; test.deepEqual(actual, expected); matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]; actual = util.flip(matrix); expected = [[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]; test.deepEqual(actual, expected); return test.done(); }; exports.to2d = function(test) { var actual, expected, matrix; matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]; actual = util.to2d(matrix); expected = [[1, 2, 4], [5, 6, 8]]; test.deepEqual(actual, expected); return test.done(); }; exports.to3d = function(test) { var actual, expected, matrix; matrix = [[1, 2, 3], [4, 5, 6]]; actual = util.to3d(matrix); expected = [[1, 2, 0, 3], [4, 5, 0, 6], [0, 0, 1, 0], [0, 0, 0, 1]]; test.deepEqual(actual, expected); return test.done(); }; }).call(this);