1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
require 'test_helper'
class DeflaterTest < MiniTest::Unit::TestCase
include CrcTest
def test_outputOperator
txt = load_file("test/data/file2.txt")
deflate(txt, "deflatertest.bin")
inflatedTxt = inflate("deflatertest.bin")
assert_equal(txt, inflatedTxt)
end
def test_default_compression
txt = load_file("test/data/file2.txt")
Zip.default_compression = ::Zlib::BEST_COMPRESSION
deflate(txt, "compressiontest_best_compression.bin")
Zip.default_compression = ::Zlib::DEFAULT_COMPRESSION
deflate(txt, "compressiontest_default_compression.bin")
Zip.default_compression = ::Zlib::NO_COMPRESSION
deflate(txt, "compressiontest_no_compression.bin")
best = File.size("compressiontest_best_compression.bin")
default = File.size("compressiontest_default_compression.bin")
no = File.size("compressiontest_no_compression.bin")
assert(best < default)
assert(best < no)
assert(default < no)
end
private
def load_file(fileName)
txt = nil
File.open(fileName, "rb") { |f| txt = f.read }
end
def deflate(data, fileName)
File.open(fileName, "wb") {
|file|
deflater = ::Zip::Deflater.new(file)
deflater << data
deflater.finish
assert_equal(deflater.size, data.size)
file << "trailing data for zlib with -MAX_WBITS"
}
end
def inflate(fileName)
txt = nil
File.open(fileName, "rb") {
|file|
inflater = ::Zip::Inflater.new(file)
txt = inflater.sysread
}
end
def test_crc
run_crc_test(::Zip::Deflater)
end
end
|