mirror of
https://github.com/0x5eal/rbxts-pako.git
synced 2025-04-04 10:50:59 +01:00
Inflate tests/helpers cleanup
This commit is contained in:
parent
3f30aa8250
commit
1d91d3b187
2 changed files with 38 additions and 41 deletions
|
@ -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');
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue