adsp 1.0.2 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/{test → lib/adsp/test}/common.rb +4 -1
  3. data/{test → lib/adsp/test}/coverage_helper.rb +0 -0
  4. data/lib/adsp/test/file.rb +120 -0
  5. data/{test → lib/adsp/test}/minitest.rb +1 -0
  6. data/{test → lib/adsp/test}/mock/common.rb +1 -0
  7. data/{test → lib/adsp/test}/mock/file.rb +1 -0
  8. data/{test → lib/adsp/test}/mock/stream/raw/compressor.rb +1 -0
  9. data/{test → lib/adsp/test}/mock/stream/raw/decompressor.rb +1 -0
  10. data/{test → lib/adsp/test}/mock/stream/raw/native_compressor.rb +1 -0
  11. data/{test → lib/adsp/test}/mock/stream/raw/native_decompressor.rb +1 -0
  12. data/{test → lib/adsp/test}/mock/stream/reader.rb +1 -0
  13. data/{test → lib/adsp/test}/mock/stream/writer.rb +1 -0
  14. data/{test → lib/adsp/test}/mock/string.rb +1 -0
  15. data/{test → lib/adsp/test}/option.rb +1 -0
  16. data/{test → lib/adsp/test}/stream/abstract.rb +1 -0
  17. data/lib/adsp/test/stream/minitar.rb +50 -0
  18. data/{test → lib/adsp/test}/stream/raw/abstract.rb +1 -0
  19. data/lib/adsp/test/stream/raw/compressor.rb +165 -0
  20. data/lib/adsp/test/stream/raw/decompressor.rb +165 -0
  21. data/lib/adsp/test/stream/reader.rb +642 -0
  22. data/lib/adsp/test/stream/reader_helpers.rb +421 -0
  23. data/lib/adsp/test/stream/writer.rb +609 -0
  24. data/lib/adsp/test/stream/writer_helpers.rb +267 -0
  25. data/lib/adsp/test/string.rb +95 -0
  26. data/{test → lib/adsp/test}/validation.rb +7 -0
  27. data/lib/adsp/test/version.rb +18 -0
  28. data/lib/adsp/version.rb +1 -1
  29. data/test/file.test.rb +3 -116
  30. data/test/stream/minitar.test.rb +3 -46
  31. data/test/stream/raw/compressor.test.rb +3 -162
  32. data/test/stream/raw/decompressor.test.rb +3 -162
  33. data/test/stream/reader.test.rb +3 -639
  34. data/test/stream/reader_helpers.test.rb +3 -417
  35. data/test/stream/writer.test.rb +3 -606
  36. data/test/stream/writer_helpers.test.rb +3 -263
  37. data/test/string.test.rb +3 -91
  38. data/test/version.test.rb +3 -14
  39. metadata +28 -19
@@ -1,166 +1,7 @@
1
1
  # Abstract data stream processor.
2
2
  # Copyright (c) 2021 AUTHORS, MIT License.
3
3
 
4
- require_relative "abstract"
5
- require_relative "../../common"
6
- require_relative "../../minitest"
7
- require_relative "../../mock/stream/raw/compressor"
8
- require_relative "../../mock/string"
9
- require_relative "../../option"
10
- require_relative "../../validation"
4
+ require "adsp/test/minitest"
5
+ require "adsp/test/stream/raw/compressor"
11
6
 
12
- module ADSP
13
- module Test
14
- module Stream
15
- module Raw
16
- class Compressor < Abstract
17
- Target = Mock::Stream::Raw::Compressor
18
- String = Mock::String
19
-
20
- TEXTS = Common::TEXTS
21
- LARGE_TEXTS = Common::LARGE_TEXTS
22
- PORTION_LENGTHS = Common::PORTION_LENGTHS
23
- LARGE_PORTION_LENGTHS = Common::LARGE_PORTION_LENGTHS
24
-
25
- BUFFER_LENGTH_NAMES = %i[destination_buffer_length].freeze
26
- BUFFER_LENGTH_MAPPING = { :destination_buffer_length => :destination_buffer_length }.freeze
27
-
28
- def test_invalid_initialize
29
- get_invalid_compressor_options do |invalid_options|
30
- assert_raises ValidateError do
31
- Target.new invalid_options
32
- end
33
- end
34
- end
35
-
36
- def test_invalid_write
37
- compressor = Target.new
38
-
39
- Validation::INVALID_STRINGS.each do |invalid_string|
40
- assert_raises ValidateError do
41
- compressor.write invalid_string, &NOOP_PROC
42
- end
43
- end
44
-
45
- assert_raises ValidateError do
46
- compressor.write ""
47
- end
48
-
49
- compressor.close(&NOOP_PROC)
50
-
51
- assert_raises UsedAfterCloseError do
52
- compressor.write "", &NOOP_PROC
53
- end
54
- end
55
-
56
- def test_texts
57
- parallel_compressor_options do |compressor_options|
58
- TEXTS.each do |text|
59
- PORTION_LENGTHS.each do |portion_length|
60
- compressed_buffer = ::StringIO.new
61
- compressed_buffer.set_encoding ::Encoding::BINARY
62
-
63
- writer = proc { |portion| compressed_buffer << portion }
64
- compressor = Target.new compressor_options
65
-
66
- begin
67
- source = "".b
68
- text_offset = 0
69
- index = 0
70
-
71
- loop do
72
- portion = text.byteslice text_offset, portion_length
73
- break if portion.nil?
74
-
75
- text_offset += portion_length
76
- source << portion
77
-
78
- bytes_written = compressor.write source, &writer
79
- source = source.byteslice bytes_written, source.bytesize - bytes_written
80
-
81
- compressor.flush(&writer) if index.even?
82
- index += 1
83
- end
84
-
85
- ensure
86
- refute_predicate compressor, :closed?
87
- compressor.close(&writer)
88
- assert_predicate compressor, :closed?
89
- end
90
-
91
- compressed_text = compressed_buffer.string
92
-
93
- get_compatible_decompressor_options compressor_options do |decompressor_options|
94
- decompressed_text = String.decompress compressed_text, decompressor_options
95
- decompressed_text.force_encoding text.encoding
96
-
97
- assert_equal text, decompressed_text
98
- end
99
- end
100
- end
101
- end
102
- end
103
-
104
- def test_large_texts
105
- options_generator = OCG.new(
106
- :text => LARGE_TEXTS,
107
- :portion_length => LARGE_PORTION_LENGTHS
108
- )
109
-
110
- Common.parallel_options options_generator do |options|
111
- text = options[:text]
112
- portion_length = options[:portion_length]
113
-
114
- compressed_buffer = ::StringIO.new
115
- compressed_buffer.set_encoding ::Encoding::BINARY
116
-
117
- writer = proc { |portion| compressed_buffer << portion }
118
- compressor = Target.new
119
-
120
- begin
121
- source = "".b
122
- text_offset = 0
123
-
124
- loop do
125
- portion = text.byteslice text_offset, portion_length
126
- break if portion.nil?
127
-
128
- text_offset += portion_length
129
- source << portion
130
-
131
- bytes_written = compressor.write source, &writer
132
- source = source.byteslice bytes_written, source.bytesize - bytes_written
133
- end
134
- ensure
135
- compressor.close(&writer)
136
- end
137
-
138
- compressed_text = compressed_buffer.string
139
-
140
- decompressed_text = String.decompress compressed_text
141
- decompressed_text.force_encoding text.encoding
142
-
143
- assert_equal text, decompressed_text
144
- end
145
- end
146
-
147
- # -----
148
-
149
- def get_invalid_compressor_options(&block)
150
- Option.get_invalid_compressor_options BUFFER_LENGTH_NAMES, &block
151
- end
152
-
153
- def parallel_compressor_options(&block)
154
- Common.parallel_options Option.get_compressor_options_generator(BUFFER_LENGTH_NAMES), &block
155
- end
156
-
157
- def get_compatible_decompressor_options(compressor_options, &block)
158
- Option.get_compatible_decompressor_options compressor_options, BUFFER_LENGTH_MAPPING, &block
159
- end
160
- end
161
-
162
- Minitest << Compressor
163
- end
164
- end
165
- end
166
- end
7
+ Minitest << ADSP::Test::Stream::Raw::Compressor
@@ -1,166 +1,7 @@
1
1
  # Abstract data stream processor.
2
2
  # Copyright (c) 2021 AUTHORS, MIT License.
3
3
 
4
- require_relative "abstract"
5
- require_relative "../../common"
6
- require_relative "../../minitest"
7
- require_relative "../../mock/stream/raw/decompressor"
8
- require_relative "../../mock/string"
9
- require_relative "../../option"
10
- require_relative "../../validation"
4
+ require "adsp/test/minitest"
5
+ require "adsp/test/stream/raw/decompressor"
11
6
 
12
- module ADSP
13
- module Test
14
- module Stream
15
- module Raw
16
- class Decompressor < Abstract
17
- Target = Mock::Stream::Raw::Decompressor
18
- String = Mock::String
19
-
20
- TEXTS = Common::TEXTS
21
- LARGE_TEXTS = Common::LARGE_TEXTS
22
- PORTION_LENGTHS = Common::PORTION_LENGTHS
23
- LARGE_PORTION_LENGTHS = Common::LARGE_PORTION_LENGTHS
24
-
25
- BUFFER_LENGTH_NAMES = %i[destination_buffer_length].freeze
26
- BUFFER_LENGTH_MAPPING = { :destination_buffer_length => :destination_buffer_length }.freeze
27
-
28
- def test_invalid_initialize
29
- get_invalid_decompressor_options do |invalid_options|
30
- assert_raises ValidateError do
31
- Target.new invalid_options
32
- end
33
- end
34
- end
35
-
36
- def test_invalid_read
37
- decompressor = Target.new
38
-
39
- Validation::INVALID_STRINGS.each do |invalid_string|
40
- assert_raises ValidateError do
41
- decompressor.read invalid_string, &NOOP_PROC
42
- end
43
- end
44
-
45
- assert_raises ValidateError do
46
- decompressor.read ""
47
- end
48
-
49
- decompressor.close(&NOOP_PROC)
50
-
51
- assert_raises UsedAfterCloseError do
52
- decompressor.read "", &NOOP_PROC
53
- end
54
- end
55
-
56
- def test_texts
57
- parallel_compressor_options do |compressor_options|
58
- TEXTS.each do |text|
59
- compressed_text = String.compress text, compressor_options
60
-
61
- PORTION_LENGTHS.each do |portion_length|
62
- get_compatible_decompressor_options compressor_options do |decompressor_options|
63
- decompressed_buffer = ::StringIO.new
64
- decompressed_buffer.set_encoding ::Encoding::BINARY
65
-
66
- writer = proc { |portion| decompressed_buffer << portion }
67
- decompressor = Target.new decompressor_options
68
-
69
- begin
70
- source = "".b
71
- compressed_text_offset = 0
72
- index = 0
73
-
74
- loop do
75
- portion = compressed_text.byteslice compressed_text_offset, portion_length
76
- break if portion.nil?
77
-
78
- compressed_text_offset += portion_length
79
- source << portion
80
-
81
- bytes_read = decompressor.read source, &writer
82
- source = source.byteslice bytes_read, source.bytesize - bytes_read
83
-
84
- decompressor.flush(&writer) if index.even?
85
- index += 1
86
- end
87
-
88
- ensure
89
- refute_predicate decompressor, :closed?
90
- decompressor.close(&writer)
91
- assert_predicate decompressor, :closed?
92
- end
93
-
94
- decompressed_text = decompressed_buffer.string
95
- decompressed_text.force_encoding text.encoding
96
-
97
- assert_equal text, decompressed_text
98
- end
99
- end
100
- end
101
- end
102
- end
103
-
104
- def test_large_texts
105
- options_generator = OCG.new(
106
- :text => LARGE_TEXTS,
107
- :portion_length => LARGE_PORTION_LENGTHS
108
- )
109
-
110
- Common.parallel_options options_generator do |options|
111
- text = options[:text]
112
- portion_length = options[:portion_length]
113
-
114
- compressed_text = String.compress text
115
-
116
- decompressed_buffer = ::StringIO.new
117
- decompressed_buffer.set_encoding ::Encoding::BINARY
118
-
119
- writer = proc { |portion| decompressed_buffer << portion }
120
- decompressor = Target.new
121
-
122
- begin
123
- source = "".b
124
- compressed_text_offset = 0
125
-
126
- loop do
127
- portion = compressed_text.byteslice compressed_text_offset, portion_length
128
- break if portion.nil?
129
-
130
- compressed_text_offset += portion_length
131
- source << portion
132
-
133
- bytes_read = decompressor.read source, &writer
134
- source = source.byteslice bytes_read, source.bytesize - bytes_read
135
- end
136
- ensure
137
- decompressor.close(&writer)
138
- end
139
-
140
- decompressed_text = decompressed_buffer.string
141
- decompressed_text.force_encoding text.encoding
142
-
143
- assert_equal text, decompressed_text
144
- end
145
- end
146
-
147
- # -----
148
-
149
- def get_invalid_decompressor_options(&block)
150
- Option.get_invalid_decompressor_options BUFFER_LENGTH_NAMES, &block
151
- end
152
-
153
- def parallel_compressor_options(&block)
154
- Common.parallel_options Option.get_compressor_options_generator(BUFFER_LENGTH_NAMES), &block
155
- end
156
-
157
- def get_compatible_decompressor_options(compressor_options, &block)
158
- Option.get_compatible_decompressor_options compressor_options, BUFFER_LENGTH_MAPPING, &block
159
- end
160
- end
161
-
162
- Minitest << Decompressor
163
- end
164
- end
165
- end
166
- end
7
+ Minitest << ADSP::Test::Stream::Raw::Decompressor