external 0.1.0 → 0.3.0
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.
- data/History +7 -0
- data/MIT-LICENSE +1 -3
- data/README +162 -127
- data/lib/external.rb +2 -3
- data/lib/external/base.rb +174 -47
- data/lib/external/chunkable.rb +131 -105
- data/lib/external/enumerable.rb +78 -33
- data/lib/external/io.rb +163 -398
- data/lib/external/patches/ruby_1_8_io.rb +31 -0
- data/lib/external/patches/windows_io.rb +53 -0
- data/lib/external/patches/windows_utils.rb +27 -0
- data/lib/external/utils.rb +148 -0
- data/lib/external_archive.rb +840 -0
- data/lib/external_array.rb +57 -0
- data/lib/external_index.rb +1053 -0
- metadata +42 -58
- data/lib/ext_arc.rb +0 -108
- data/lib/ext_arr.rb +0 -727
- data/lib/ext_ind.rb +0 -1120
- data/test/benchmarks/benchmarks_20070918.txt +0 -45
- data/test/benchmarks/benchmarks_20070921.txt +0 -91
- data/test/benchmarks/benchmarks_20071006.txt +0 -147
- data/test/benchmarks/test_copy_file.rb +0 -80
- data/test/benchmarks/test_pos_speed.rb +0 -47
- data/test/benchmarks/test_read_time.rb +0 -55
- data/test/cached_ext_ind_test.rb +0 -219
- data/test/check/benchmark_check.rb +0 -441
- data/test/check/namespace_conflicts_check.rb +0 -23
- data/test/check/pack_check.rb +0 -90
- data/test/ext_arc_test.rb +0 -286
- data/test/ext_arr/alt_sep.txt +0 -3
- data/test/ext_arr/cr_lf_input.txt +0 -3
- data/test/ext_arr/input.index +0 -0
- data/test/ext_arr/input.txt +0 -1
- data/test/ext_arr/inputb.index +0 -0
- data/test/ext_arr/inputb.txt +0 -1
- data/test/ext_arr/lf_input.txt +0 -3
- data/test/ext_arr/lines.txt +0 -19
- data/test/ext_arr/without_index.txt +0 -1
- data/test/ext_arr_test.rb +0 -534
- data/test/ext_ind_test.rb +0 -1472
- data/test/external/base_test.rb +0 -74
- data/test/external/chunkable_test.rb +0 -182
- data/test/external/index/input.index +0 -0
- data/test/external/index/inputb.index +0 -0
- data/test/external/io_test.rb +0 -414
- data/test/external_test_helper.rb +0 -31
- data/test/external_test_suite.rb +0 -4
- data/test/test_array.rb +0 -1192
@@ -1,23 +0,0 @@
|
|
1
|
-
module External
|
2
|
-
class Array
|
3
|
-
end
|
4
|
-
end
|
5
|
-
|
6
|
-
require 'test/unit'
|
7
|
-
|
8
|
-
class NamespaceConfilctsCheck < Test::Unit::TestCase
|
9
|
-
include External
|
10
|
-
|
11
|
-
# this is why it's problematic to use a naming scheme like:
|
12
|
-
# External::Index
|
13
|
-
# External::Array
|
14
|
-
# External::Archive
|
15
|
-
#
|
16
|
-
# even if you alias to the top level, within External itself
|
17
|
-
# there is some ambiguity about whether you're using Array
|
18
|
-
# or External::Array
|
19
|
-
|
20
|
-
def test_array_now_refers_to_external_array
|
21
|
-
assert_equal Array, External::Array
|
22
|
-
end
|
23
|
-
end
|
data/test/check/pack_check.rb
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
|
3
|
-
# a variety of tests that establish some basic facts/assumptions
|
4
|
-
# that get leveraged in somewhere in the library
|
5
|
-
class PackCheck < Test::Unit::TestCase
|
6
|
-
|
7
|
-
# NOTE: upon pack:
|
8
|
-
# unsigned values throw an error if > MAX or < -MAX
|
9
|
-
# negative values are the same as positive values counting back from MAX
|
10
|
-
|
11
|
-
LONG_MIN = -2147483648
|
12
|
-
LONG_MAX = 2147483647
|
13
|
-
|
14
|
-
ULONG_MIN = 0
|
15
|
-
ULONG_MAX = 4294967295
|
16
|
-
|
17
|
-
LLONG_MIN = -9223372036854775808
|
18
|
-
LLONG_MAX = 9223372036854775807
|
19
|
-
|
20
|
-
ULLONG_MIN = 0
|
21
|
-
ULLONG_MAX = 18446744073709551615
|
22
|
-
|
23
|
-
def test_negative_unsigned_values_count_back_from_max_in_pack_and_unpack
|
24
|
-
assert_equal [ULONG_MAX], [-1].pack('I').unpack('I')
|
25
|
-
assert_equal [ULONG_MAX], [-1].pack('L').unpack('L')
|
26
|
-
assert_equal [ULLONG_MAX], [-1].pack('Q').unpack('Q')
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_signed_values_beyond_min_count_back_from_max_in_pack_and_unpack
|
30
|
-
assert_equal [LONG_MAX], [LONG_MIN-1].pack('i').unpack('i')
|
31
|
-
assert_equal [LONG_MAX], [LONG_MIN-1].pack('l').unpack('l')
|
32
|
-
assert_equal [LLONG_MAX], [LLONG_MIN-1].pack('q').unpack('q')
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_signed_values_beyond_max_count_up_from_min_in_pack_and_unpack
|
36
|
-
assert_equal [LONG_MIN], [LONG_MAX+1].pack('i').unpack('i')
|
37
|
-
assert_equal [LONG_MIN], [LONG_MAX+1].pack('l').unpack('l')
|
38
|
-
assert_equal [LLONG_MIN], [LLONG_MAX+1].pack('q').unpack('q')
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_numeric_ranges_for_pack_and_unpack
|
42
|
-
# I,L handle an unsigned long
|
43
|
-
['I', 'L'].each do |format|
|
44
|
-
assert_equal [ULONG_MIN], [ULONG_MIN].pack(format).unpack(format)
|
45
|
-
assert_equal [ULONG_MAX], [ULONG_MAX].pack(format).unpack(format)
|
46
|
-
|
47
|
-
#assert_equal [ULONG_MIN], [ULONG_MAX+1].pack(format).unpack(format)
|
48
|
-
assert_equal [ULONG_MAX], [ULONG_MIN-1].pack(format).unpack(format)
|
49
|
-
|
50
|
-
assert_raise(RangeError) { [-(ULONG_MAX+1)].pack(format) }
|
51
|
-
assert_raise(RangeError) { [(ULONG_MAX+1)].pack(format) }
|
52
|
-
end
|
53
|
-
|
54
|
-
# i,l handle an signed long
|
55
|
-
['i', 'l'].each do |format|
|
56
|
-
assert_equal [LONG_MIN], [LONG_MIN].pack(format).unpack(format)
|
57
|
-
assert_equal [LONG_MAX], [LONG_MAX].pack(format).unpack(format)
|
58
|
-
|
59
|
-
assert_equal [LONG_MIN], [LONG_MAX+1].pack(format).unpack(format)
|
60
|
-
assert_equal [LONG_MAX], [LONG_MIN-1].pack(format).unpack(format)
|
61
|
-
|
62
|
-
assert_raise(RangeError) { [-2*(LONG_MAX+1)].pack(format) }
|
63
|
-
assert_raise(RangeError) { [2*(LONG_MAX+1)].pack(format) }
|
64
|
-
end
|
65
|
-
|
66
|
-
# Q handles an unsigned long long
|
67
|
-
['Q'].each do |format|
|
68
|
-
assert_equal [ULLONG_MIN], [ULLONG_MIN].pack(format).unpack(format)
|
69
|
-
assert_equal [ULLONG_MAX], [ULLONG_MAX].pack(format).unpack(format)
|
70
|
-
|
71
|
-
#assert_equal [ULLONG_MIN], [ULLONG_MAX+1].pack(format).unpack(format)
|
72
|
-
assert_equal [ULLONG_MAX], [ULLONG_MIN-1].pack(format).unpack(format)
|
73
|
-
|
74
|
-
assert_raise(RangeError) { [-(ULLONG_MAX+1)].pack(format) }
|
75
|
-
assert_raise(RangeError) { [(ULLONG_MAX+1)].pack(format) }
|
76
|
-
end
|
77
|
-
|
78
|
-
# q handles an signed long long
|
79
|
-
['q'].each do |format|
|
80
|
-
assert_equal [LLONG_MIN], [LLONG_MIN].pack(format).unpack(format)
|
81
|
-
assert_equal [LLONG_MAX], [LLONG_MAX].pack(format).unpack(format)
|
82
|
-
|
83
|
-
assert_equal [LLONG_MIN], [LLONG_MAX+1].pack(format).unpack(format)
|
84
|
-
assert_equal [LLONG_MAX], [LLONG_MIN-1].pack(format).unpack(format)
|
85
|
-
|
86
|
-
assert_raise(RangeError) { [-2*(LLONG_MAX+1)].pack(format) }
|
87
|
-
assert_raise(RangeError) { [2*(LLONG_MAX+1)].pack(format) }
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
data/test/ext_arc_test.rb
DELETED
@@ -1,286 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'external_test_helper.rb')
|
2
|
-
require 'ext_arc'
|
3
|
-
|
4
|
-
class ExtArcTest < Test::Unit::TestCase
|
5
|
-
include Benchmark
|
6
|
-
|
7
|
-
attr_reader :ea
|
8
|
-
|
9
|
-
def setup
|
10
|
-
@ea = ExtArc.new
|
11
|
-
end
|
12
|
-
|
13
|
-
#
|
14
|
-
# readme doc test
|
15
|
-
#
|
16
|
-
|
17
|
-
def test_readme_doc_for_ext_arc
|
18
|
-
arc = ExtArc[">swift", ">brown", ">fox"]
|
19
|
-
assert_equal ">fox", arc[2]
|
20
|
-
assert_equal [">swift", ">brown", ">fox"], arc.to_a
|
21
|
-
|
22
|
-
assert_equal Tempfile, arc.io.class
|
23
|
-
arc.io.rewind
|
24
|
-
assert_equal ">swift>brown>fox", arc.io.read
|
25
|
-
|
26
|
-
Tempfile.open('test_readme_doc_for_ext_arc') do |file|
|
27
|
-
file << ">swift>brown>fox"
|
28
|
-
file.flush
|
29
|
-
|
30
|
-
arc = ExtArc.new(file)
|
31
|
-
assert_equal [], arc.to_a
|
32
|
-
arc.reindex_by_sep(:sep_string => ">", :entry_follows_sep => true)
|
33
|
-
assert_equal [">swift", ">brown", ">fox"], arc.to_a
|
34
|
-
|
35
|
-
arc = ExtArc.new(file)
|
36
|
-
assert_equal [], arc.to_a
|
37
|
-
arc.reindex_by_scan(/>\w*/)
|
38
|
-
assert_equal [">swift", ">brown", ">fox"], arc.to_a
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
#
|
43
|
-
# entry_to_str, str_to_entry test
|
44
|
-
#
|
45
|
-
|
46
|
-
def test_entry_to_str_simply_stringifies_entry
|
47
|
-
obj = "abc"
|
48
|
-
assert_equal obj.to_s, ea.entry_to_str(obj)
|
49
|
-
|
50
|
-
obj = 1
|
51
|
-
assert_equal obj.to_s, ea.entry_to_str(obj)
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_entry_to_str_simply_return_input
|
55
|
-
obj = "abc"
|
56
|
-
assert_equal obj.object_id, ea.str_to_entry(obj).object_id
|
57
|
-
end
|
58
|
-
|
59
|
-
#####################################
|
60
|
-
# indexing tests
|
61
|
-
#####################################
|
62
|
-
|
63
|
-
def reindex_by_line_test(expected, options={}, &block)
|
64
|
-
cases = {
|
65
|
-
:end_midline => "012\n\n56\n\n9",
|
66
|
-
:end_on_line => "012\n\n56\n\n9\n",
|
67
|
-
:end_on_break => "012\n\n56\n\n9\n\n",
|
68
|
-
:no_break => "0123456789",
|
69
|
-
:backing_breaks => "012\n\n\n\n\n\n9",
|
70
|
-
:cr_lf => "012\r\n\r\n56\r\n\r\n9"
|
71
|
-
}
|
72
|
-
|
73
|
-
cases.each_pair do |key, string|
|
74
|
-
next unless expected.has_key?(key)
|
75
|
-
|
76
|
-
Tempfile.open("reindex_by_line") do |tempfile|
|
77
|
-
# MUST SET binmode so that these tests work properly on Windows
|
78
|
-
tempfile.binmode
|
79
|
-
tempfile << string
|
80
|
-
tempfile.flush
|
81
|
-
|
82
|
-
begin
|
83
|
-
ea = ExtArc.new(tempfile)
|
84
|
-
ea.reindex_by_line(options, &block)
|
85
|
-
assert_equal expected[key], ea.to_a, key
|
86
|
-
ensure
|
87
|
-
ea.close
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
def reindex_by_scan_test(expected, carryover_limit=nil, options={}, &block)
|
94
|
-
cases = {
|
95
|
-
:end_midline => "012\n\n56\n\n9",
|
96
|
-
:end_on_line => "012\n\n56\n\n9\n",
|
97
|
-
:end_on_break => "012\n\n56\n\n9\n\n",
|
98
|
-
:no_break => "0123456789",
|
99
|
-
:backing_breaks => "012\n\n\n\n\n\n9",
|
100
|
-
:cr_lf => "012\r\n\r\n56\r\n\r\n9"}
|
101
|
-
|
102
|
-
cases.each_pair do |key, string|
|
103
|
-
next unless expected.has_key?(key)
|
104
|
-
|
105
|
-
Tempfile.open("reindex_by_scan") do |tempfile|
|
106
|
-
tempfile.binmode
|
107
|
-
tempfile << string
|
108
|
-
tempfile.flush
|
109
|
-
|
110
|
-
begin
|
111
|
-
ea = ExtArc.new(tempfile)
|
112
|
-
ea.reindex_by_scan
|
113
|
-
assert_equal expected[key].length, ea.length, key
|
114
|
-
assert_equal expected[key], ea.to_a, key
|
115
|
-
ensure
|
116
|
-
ea.close
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
def test_reindex_treats_each_line_as_break_by_default
|
123
|
-
reindex_by_line_test(
|
124
|
-
:end_midline => ["012\n", "\n", "56\n", "\n", "9"],
|
125
|
-
:end_on_line => ["012\n", "\n", "56\n", "\n", "9\n"],
|
126
|
-
:end_on_break => ["012\n", "\n", "56\n", "\n", "9\n", "\n"],
|
127
|
-
:no_break => ["0123456789"],
|
128
|
-
:backing_breaks => ["012\n", "\n", "\n", "\n", "\n", "\n", "9"],
|
129
|
-
:cr_lf => ["012\r\n", "\r\n", "56\r\n", "\r\n", "9"])
|
130
|
-
|
131
|
-
reindex_by_scan_test(
|
132
|
-
:end_midline => ["012\n", "\n", "56\n", "\n", "9"],
|
133
|
-
:end_on_line => ["012\n", "\n", "56\n", "\n", "9\n"],
|
134
|
-
:end_on_break => ["012\n", "\n", "56\n", "\n", "9\n", "\n"],
|
135
|
-
:no_break => ["0123456789"],
|
136
|
-
:backing_breaks => ["012\n", "\n", "\n", "\n", "\n", "\n", "9"],
|
137
|
-
:cr_lf => ["012\r\n", "\r\n", "56\r\n", "\r\n", "9"])
|
138
|
-
end
|
139
|
-
|
140
|
-
def BROKEN_test_reindex_by_scan_with_chunk_size_less_than_full_length
|
141
|
-
reindex_by_scan_test({
|
142
|
-
:end_midline => ["012\n", "\n", "56\n", "\n", "9"],
|
143
|
-
:end_on_line => ["012\n", "\n", "56\n", "\n", "9\n"],
|
144
|
-
:end_on_break => ["012\n", "\n", "56\n", "\n", "9\n", "\n"],
|
145
|
-
:no_break => ["0123456789"],
|
146
|
-
:backing_breaks => ["012\n", "\n", "\n", "\n", "\n", "\n", "9"],
|
147
|
-
:cr_lf => ["012\r\n", "\r\n", "56\r\n", "\r\n", "9"]},
|
148
|
-
nil,
|
149
|
-
:buffer_size => 3)
|
150
|
-
end
|
151
|
-
|
152
|
-
def test_reindex_block_determines_if_line_is_a_break
|
153
|
-
reindex_by_line_test(
|
154
|
-
:end_midline => ["012\n\n", "56\n\n", "9"],
|
155
|
-
:end_on_line => ["012\n\n", "56\n\n", "9\n"],
|
156
|
-
:end_on_break => ["012\n\n", "56\n\n", "9\n\n"],
|
157
|
-
:no_break => ["0123456789"],
|
158
|
-
:backing_breaks => ["012\n\n", "\n", "\n", "\n", "\n", "9"],
|
159
|
-
:cr_lf => ["012\r\n\r\n", "56\r\n\r\n", "9"]) do |line|
|
160
|
-
line.strip.empty?
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
|
-
def test_reindex_breaking_before
|
165
|
-
reindex_by_line_test({
|
166
|
-
:end_midline => ["012\n", "\n56\n", "\n9"],
|
167
|
-
:end_on_line => ["012\n", "\n56\n", "\n9\n"],
|
168
|
-
:end_on_break => ["012\n", "\n56\n", "\n9\n", "\n"],
|
169
|
-
:no_break => ["0123456789"],
|
170
|
-
:backing_breaks => ["012\n", "\n", "\n", "\n", "\n", "\n9"],
|
171
|
-
:cr_lf => ["012\r\n", "\r\n56\r\n", "\r\n9"]},
|
172
|
-
:break_before => true) do |line|
|
173
|
-
line.strip.empty?
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
def test_reindex_excluding_break
|
178
|
-
reindex_by_line_test({
|
179
|
-
:end_midline => ["012\n", "56\n", "9"],
|
180
|
-
:end_on_line => ["012\n", "56\n", "9\n"],
|
181
|
-
:end_on_break => ["012\n", "56\n", "9\n"],
|
182
|
-
:no_break => ["0123456789"],
|
183
|
-
:backing_breaks => ["012\n", "9"],
|
184
|
-
:cr_lf => ["012\r\n", "56\r\n", "9"]},
|
185
|
-
:exclude_break => true) do |line|
|
186
|
-
line.strip.empty?
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
def test_reindex_breaking_before_and_excluding_break
|
191
|
-
# note this is the same as simply excluding the break
|
192
|
-
reindex_by_line_test({
|
193
|
-
:end_midline => ["012\n", "56\n", "9"],
|
194
|
-
:end_on_line => ["012\n", "56\n", "9\n"],
|
195
|
-
:end_on_break => ["012\n", "56\n", "9\n"],
|
196
|
-
:no_break => ["0123456789"],
|
197
|
-
:backing_breaks => ["012\n", "9"],
|
198
|
-
:cr_lf => ["012\r\n", "56\r\n", "9"]},
|
199
|
-
:exclude_break => true,
|
200
|
-
:break_before => true) do |line|
|
201
|
-
line.strip.empty?
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
|
-
def test_reindex_with_alt_sep_string
|
206
|
-
reindex_by_line_test({
|
207
|
-
:end_midline => ["012\n\n", "56\n\n", "9"],
|
208
|
-
:end_on_line => ["012\n\n", "56\n\n", "9\n"],
|
209
|
-
:end_on_break => ["012\n\n", "56\n\n", "9\n\n"],
|
210
|
-
:no_break => ["0123456789"],
|
211
|
-
:backing_breaks => ["012\n\n", "\n\n", "\n\n", "9"],
|
212
|
-
:cr_lf => ["012\r\n\r\n56\r\n\r\n9"]},
|
213
|
-
:sep_string => "\n\n")
|
214
|
-
|
215
|
-
reindex_by_line_test({
|
216
|
-
:end_midline => ["012\n\n56", "\n\n9"],
|
217
|
-
:end_on_line => ["012\n\n56", "\n\n9\n"],
|
218
|
-
:end_on_break => ["012\n\n56", "\n\n9\n\n"],
|
219
|
-
:no_break => ["0123456", "789"],
|
220
|
-
:backing_breaks => ["012\n\n\n\n\n\n9"],
|
221
|
-
:cr_lf => ["012\r\n\r\n56", "\r\n\r\n9"]},
|
222
|
-
:sep_string => "56")
|
223
|
-
end
|
224
|
-
|
225
|
-
# #
|
226
|
-
# # file format tests
|
227
|
-
# #
|
228
|
-
#
|
229
|
-
# def file_format_test(path, &block)
|
230
|
-
# begin
|
231
|
-
# filepath = tempfile('format')
|
232
|
-
#
|
233
|
-
# FileUtils.cp(ifs.filepath(:root, path), filepath + ".txt")
|
234
|
-
# FileUtils.cp(input_base + '.index', filepath + ".index")
|
235
|
-
#
|
236
|
-
# uaio = ExtArr.open(filepath + ".txt", 'ru')
|
237
|
-
# yield(uaio)
|
238
|
-
# ensure
|
239
|
-
# uaio.close
|
240
|
-
# end
|
241
|
-
# end
|
242
|
-
#
|
243
|
-
# def test_cr_lf_file
|
244
|
-
# file_format_test('cr_lf_input.txt') do |aio|
|
245
|
-
# aio.reindex_by_line
|
246
|
-
#
|
247
|
-
# assert_equal "012\r\n", aio[0]
|
248
|
-
# assert_equal "56\r\n", aio[1]
|
249
|
-
# assert_equal "9", aio[2]
|
250
|
-
# end
|
251
|
-
# end
|
252
|
-
#
|
253
|
-
# def test_parse_from_lf_file
|
254
|
-
# file_format_test('lf_input.txt') do |aio|
|
255
|
-
# aio.reindex_by_line
|
256
|
-
#
|
257
|
-
# assert_equal "012\n", aio[0]
|
258
|
-
# assert_equal "56\n", aio[1]
|
259
|
-
# assert_equal "9", aio[2]
|
260
|
-
# end
|
261
|
-
# end
|
262
|
-
#
|
263
|
-
# def test_parse_from_alt_sep
|
264
|
-
# file_format_test('alt_sep.txt') do |aio|
|
265
|
-
# aio.reindex_by_line do |line|
|
266
|
-
# line =~ /^>/
|
267
|
-
# end
|
268
|
-
#
|
269
|
-
# assert_equal ">abc\r\n", aio[0]
|
270
|
-
# assert_equal ">def\r\n", aio[1]
|
271
|
-
# assert_equal ">gh", aio[2]
|
272
|
-
# end
|
273
|
-
# end
|
274
|
-
|
275
|
-
#######################
|
276
|
-
# Benchmarks
|
277
|
-
#######################
|
278
|
-
|
279
|
-
def break_test_reindex_speed
|
280
|
-
aiobm_test('r') do |x, type, aio|
|
281
|
-
|
282
|
-
x.report("#{type} by_line") { aio.reindex_by_line }
|
283
|
-
x.report("#{type} by_scan") { aio.reindex_by_scan }
|
284
|
-
end
|
285
|
-
end
|
286
|
-
end
|
data/test/ext_arr/alt_sep.txt
DELETED
data/test/ext_arr/input.index
DELETED
Binary file
|
data/test/ext_arr/input.txt
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
abcdefgh
|
data/test/ext_arr/inputb.index
DELETED
Binary file
|
data/test/ext_arr/inputb.txt
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
abcdefgh
|
data/test/ext_arr/lf_input.txt
DELETED