var crc32 = require('..'); var test = require('tap').test; test('simple crc32 is no problem', function (t) { var input = Buffer('hey sup bros'); var expected = Buffer([0x47, 0xfa, 0x55, 0x70]); t.same(crc32(input), expected); t.end(); }); test('another simple one', function (t) { var input = Buffer('IEND'); var expected = Buffer([0xae, 0x42, 0x60, 0x82]); t.same(crc32(input), expected); t.end(); }); test('slightly more complex', function (t) { var input = Buffer([0x00, 0x00, 0x00]); var expected = Buffer([0xff, 0x41, 0xd9, 0x12]); t.same(crc32(input), expected); t.end(); }); test('complex crc32 gets calculated like a champ', function (t) { var input = Buffer('शीर्षक'); var expected = Buffer([0x17, 0xb8, 0xaf, 0xf1]); t.same(crc32(input), expected); t.end(); }); test('casts to buffer if necessary', function (t) { var input = 'शीर्षक'; var expected = Buffer([0x17, 0xb8, 0xaf, 0xf1]); t.same(crc32(input), expected); t.end(); }); test('can do signed', function (t) { var input = 'ham sandwich'; var expected = -1891873021; t.same(crc32.signed(input), expected); t.end(); }); test('can do unsigned', function (t) { var input = 'bear sandwich'; var expected = 3711466352; t.same(crc32.unsigned(input), expected); t.end(); }); test('simple crc32 in append mode', function (t) { var input = [Buffer('hey'), Buffer(' '), Buffer('sup'), Buffer(' '), Buffer('bros')]; var expected = Buffer([0x47, 0xfa, 0x55, 0x70]); for (var crc = 0, i = 0; i < input.length; i++) { crc = crc32(input[i], crc); } t.same(crc, expected); t.end(); }); test('can do signed in append mode', function (t) { var input1 = 'ham'; var input2 = ' '; var input3 = 'sandwich'; var expected = -1891873021; var crc = crc32.signed(input1); crc = crc32.signed(input2, crc); crc = crc32.signed(input3, crc); t.same(crc, expected); t.end(); }); test('can do unsigned in append mode', function (t) { var input1 = 'bear san'; var input2 = 'dwich'; var expected = 3711466352; var crc = crc32.unsigned(input1); crc = crc32.unsigned(input2, crc); t.same(crc, expected); t.end(); });