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.
201 lines (161 loc) • 2.49 kB
text/coffeescript
util = require '../matrix-utilities'
exports.Identity = (test) ->
actual = new util.Identity()
expected = [
[ ]
[ ]
[ ]
[ ]
]
test.deepEqual actual, expected
test.done()
exports.add = (test) ->
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 ->
util.add one, two
one = [
[ 1, 2 ]
[ 3, 4 ]
]
two = [
[ 5, 6 ]
[ 7, 8, 9 ]
]
test.throws ->
util.add one, two
test.done()
exports.multiply = (test) ->
one = [
[ ]
[ ]
[ ]
]
two = [
[ ]
[ ]
[ ]
]
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 = [
[ ]
[ ]
[ ]
[ ]
]
two = [
[ ]
[ ]
[ ]
[ ]
]
actual = util.multiply one, two
expected = [
[ ]
[ ]
[ ]
[ ]
]
test.deepEqual actual, expected
test.done()
exports.flip = (test) ->
matrix = [
[ ]
[ ]
]
actual = util.flip matrix
expected = [
[ ]
[ ]
]
test.deepEqual actual, expected
matrix = [
[ ]
[ ]
[ ]
[ ]
]
actual = util.flip matrix
expected = [
[ ]
[ ]
[ ]
[ ]
]
test.deepEqual actual, expected
test.done()
exports.to2d = (test) ->
matrix = [
[ ]
[ ]
[ ]
[ ]
]
actual = util.to2d matrix
expected = [
[ ]
[ ]
]
test.deepEqual actual, expected
test.done()
exports.to3d = (test) ->
matrix = [
[ ]
[ ]
]
actual = util.to3d matrix
expected = [
[ ]
[ ]
[ ]
[ ]
]
test.deepEqual actual, expected
test.done()