Inflate tests/helpers cleanup

master
Vitaly Puzrin 2014-03-13 23:30:55 +04:00
rodzic 3f30aa8250
commit 1d91d3b187
2 zmienionych plików z 38 dodań i 41 usunięć

Wyświetl plik

@ -130,23 +130,18 @@ function testDeflate(zlib_factory, pako_deflate, samples, options, callback) {
}
function testInflate(samples, options, callback, is_gzip) {
var name, data, deflated, inflated, inflate_options;
function testInflate(samples, inflateOptions, deflateOptions, callback) {
var name, data, deflated, inflated;
// inflate options have windowBits = 0 to force autodetect window size
//
inflate_options = pako_utils.assign({}, options);
if (inflate_options.windowBits > 0 && inflate_options.windowBits < 16) {
inflate_options.windowBits = 0;
}
for (name in samples) {
data = samples[name];
deflated = is_gzip ? pako.gzip(data, options) : pako.deflate(data, options);
deflated = pako.deflate(data, deflateOptions);
// with untyped arrays
pako_utils.setTyped(false);
inflated = pako.inflate(deflated, inflate_options);
inflated = pako.inflate(deflated, inflateOptions);
pako_utils.setTyped(true);
if (!cmpBuf(inflated, data)) {
@ -155,7 +150,7 @@ function testInflate(samples, options, callback, is_gzip) {
}
// with typed arrays
inflated = pako.inflate(deflated, inflate_options);
inflated = pako.inflate(deflated, inflateOptions);
if (!cmpBuf(inflated, data)) {
callback('Error in "' + name + '" - inflate result != original');

Wyświetl plik

@ -14,59 +14,61 @@ var samples = helpers.loadSamples();
describe('Inflate defaults', function () {
it('inflate, no options', function(done) {
testInflate(samples, {}, done);
testInflate(samples, {}, {}, done);
});
it('inflate raw, no options', function(done) {
testInflate(samples, { raw: true }, done);
testInflate(samples, { raw: true }, { raw: true }, done);
});
});
describe('Inflate ungzip', function () {
// TODO: Investigate, why ungzip does not autodetect window size and
// require to set windowBits directly
it.skip('with autodetect', function(done) {
testInflate(samples, {}, done, true);
testInflate(samples, {}, { gzip: true }, done);
});
it('with method set directly', function(done) {
testInflate(samples, { windowBits: 15 + 16 }, done, true);
testInflate(samples, { windowBits: 15 + 16 }, { gzip: true }, done);
});
});
describe('Inflate levels', function () {
it('level 9', function(done) {
testInflate(samples, { level: 9 }, done);
testInflate(samples, {}, { level: 9 }, done);
});
it('level 8', function(done) {
testInflate(samples, { level: 8 }, done);
testInflate(samples, {}, { level: 8 }, done);
});
it('level 7', function(done) {
testInflate(samples, { level: 7 }, done);
testInflate(samples, {}, { level: 7 }, done);
});
it('level 6', function(done) {
testInflate(samples, { level: 6 }, done);
testInflate(samples, {}, { level: 6 }, done);
});
it('level 5', function(done) {
testInflate(samples, { level: 5 }, done);
testInflate(samples, {}, { level: 5 }, done);
});
it('level 4', function(done) {
testInflate(samples, { level: 4 }, done);
testInflate(samples, {}, { level: 4 }, done);
});
it('level 3', function(done) {
testInflate(samples, { level: 3 }, done);
testInflate(samples, {}, { level: 3 }, done);
});
it('level 2', function(done) {
testInflate(samples, { level: 2 }, done);
testInflate(samples, {}, { level: 2 }, done);
});
it('level 1', function(done) {
testInflate(samples, { level: 1 }, done);
testInflate(samples, {}, { level: 1 }, done);
});
it('level 0', function(done) {
testInflate(samples, { level: 0 }, done);
testInflate(samples, {}, { level: 0 }, done);
});
});
@ -75,28 +77,28 @@ describe('Inflate levels', function () {
describe('Inflate windowBits', function () {
it('windowBits 15', function(done) {
testInflate(samples, { windowBits: 15 }, done);
testInflate(samples, {}, { windowBits: 15 }, done);
});
it('windowBits 14', function(done) {
testInflate(samples, { windowBits: 14 }, done);
testInflate(samples, {}, { windowBits: 14 }, done);
});
it('windowBits 13', function(done) {
testInflate(samples, { windowBits: 13 }, done);
testInflate(samples, {}, { windowBits: 13 }, done);
});
it('windowBits 12', function(done) {
testInflate(samples, { windowBits: 12 }, done);
testInflate(samples, {}, { windowBits: 12 }, done);
});
it('windowBits 11', function(done) {
testInflate(samples, { windowBits: 11 }, done);
testInflate(samples, {}, { windowBits: 11 }, done);
});
it('windowBits 10', function(done) {
testInflate(samples, { windowBits: 10 }, done);
testInflate(samples, {}, { windowBits: 10 }, done);
});
it('windowBits 9', function(done) {
testInflate(samples, { windowBits: 9 }, done);
testInflate(samples, {}, { windowBits: 9 }, done);
});
it('windowBits 8', function(done) {
testInflate(samples, { windowBits: 8 }, done);
testInflate(samples, {}, { windowBits: 8 }, done);
});
});
@ -104,19 +106,19 @@ describe('Inflate windowBits', function () {
describe('Inflate strategy', function () {
it('Z_DEFAULT_STRATEGY', function(done) {
testInflate(samples, { strategy: 0 }, done);
testInflate(samples, {}, { strategy: 0 }, done);
});
it('Z_FILTERED', function(done) {
testInflate(samples, { strategy: 1 }, done);
testInflate(samples, {}, { strategy: 1 }, done);
});
it('Z_HUFFMAN_ONLY', function(done) {
testInflate(samples, { strategy: 2 }, done);
testInflate(samples, {}, { strategy: 2 }, done);
});
it('Z_RLE', function(done) {
testInflate(samples, { strategy: 3 }, done);
testInflate(samples, {}, { strategy: 3 }, done);
});
it.skip('Z_FIXED', function(done) {
testInflate(samples, { strategy: 4 }, done);
testInflate(samples, {}, { strategy: 4 }, done);
});
});
@ -125,13 +127,13 @@ describe('Inflate strategy', function () {
describe('Inflate RAW', function () {
// Since difference is only in rwapper, test for store/fast/slow methods are enougth
it('level 4', function(done) {
testInflate(samples, { level: 4, raw: true }, done);
testInflate(samples, { raw: true }, { level: 4, raw: true }, done);
});
it('level 1', function(done) {
testInflate(samples, { level: 1, raw: true }, done);
testInflate(samples, { raw: true }, { level: 1, raw: true }, done);
});
it('level 0', function(done) {
testInflate(samples, { level: 0, raw: true }, done);
testInflate(samples, { raw: true }, { level: 0, raw: true }, done);
});
});