UNPKG

dct

Version:

Node.js implementation of the Discrete Cosine Transform (version 2 for now).

46 lines (37 loc) 1.54 kB
var assert = require('assert'), dct = require('../'); describe('DCT-2', function () { describe('1,0,1,0', function () { it('Should properly compute [1,0,1,0]', function () { var coef = dct([1,0,1,0]); assert(equalWithThresh(coef[0], 4, 0.01)); assert(equalWithThresh(coef[1], 1.082392, 0.01)); assert(equalWithThresh(coef[2], 0, 0.01)); assert(equalWithThresh(coef[3], 2.613126, 0.01)); }); }); describe('1,1,1,1,1,1', function () { it('Should properly compute [1,1,1,1,1,1]', function () { var coef = dct([1,1,1,1,1,1]); assert(equalWithThresh(coef[0], 12, 0.01)); assert(equalWithThresh(coef[1], 0, 0.01)); assert(equalWithThresh(coef[2], 0, 0.01)); assert(equalWithThresh(coef[3], 0, 0.01)); assert(equalWithThresh(coef[4], 0, 0.01)); assert(equalWithThresh(coef[5], 0, 0.01)); }); }); describe('2,0.5,0.1,5', function () { it('Should properly compute [2,0.5,0.1,5]', function () { var coef = dct([2,0.5,0.1,5]); assert(equalWithThresh(coef[0], 15.2, 0.01)); assert(equalWithThresh(coef[1], -5.24, 0.01)); assert(equalWithThresh(coef[2], 9.05, 0.01)); assert(equalWithThresh(coef[3], -3.04, 0.01)); }); }); }); function equalWithThresh(val1, val2, threshold) { return (val1 > val2 - threshold) && (val1 < val2 + threshold); };