-
Notifications
You must be signed in to change notification settings - Fork 312
/
deflater_test.rb
67 lines (55 loc) · 1.69 KB
/
deflater_test.rb
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
63
64
65
66
67
require 'test_helper'
class DeflaterTest < MiniTest::Test
include CrcTest
DEFLATER_TEST_FILE = 'test/data/generated/deflatertest.bin'
BEST_COMP_FILE = 'test/data/generated/compressiontest_best_compression.bin'
DEFAULT_COMP_FILE = 'test/data/generated/compressiontest_default_compression.bin'
NO_COMP_FILE = 'test/data/generated/compressiontest_no_compression.bin'
def test_outputOperator
txt = load_file("test/data/file2.txt")
deflate(txt, DEFLATER_TEST_FILE)
inflatedTxt = inflate(DEFLATER_TEST_FILE)
assert_equal(txt, inflatedTxt)
end
def test_default_compression
txt = load_file("test/data/file2.txt")
Zip.default_compression = ::Zlib::BEST_COMPRESSION
deflate(txt, BEST_COMP_FILE)
Zip.default_compression = ::Zlib::DEFAULT_COMPRESSION
deflate(txt, DEFAULT_COMP_FILE)
Zip.default_compression = ::Zlib::NO_COMPRESSION
deflate(txt, NO_COMP_FILE)
best = File.size(BEST_COMP_FILE)
default = File.size(DEFAULT_COMP_FILE)
no = File.size(NO_COMP_FILE)
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