rbbt-util 5.17.21 → 5.17.22
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.
- checksums.yaml +4 -4
- data/lib/rbbt/util/misc/pipes.rb +3 -1
- data/test/rbbt/util/misc/test_pipes.rb +1 -1
- data/test/rbbt/util/test_misc.rb +41 -41
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d71a299df6e7ad5194c3eae79edea89ae8e4b274
|
|
4
|
+
data.tar.gz: dd907c1ed5886f7523e01bd5bd9aade9c75db0dd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dcd03456906cec78394d31424b837e68831201ed9db7a20bf95e6327f1d61b2485b64639d38197a5ebd024a572d103183aa87918a681b44566752620171b2460
|
|
7
|
+
data.tar.gz: 32e0ee7a9423802af6aaa8f08eb2e9ea841f483d684aee8352e9e2946b4a40b5c04c0f591dbe406e1da25c0bd5b62849ce170fb8dec0d93ad8768904ba18a8a4
|
data/lib/rbbt/util/misc/pipes.rb
CHANGED
|
@@ -374,10 +374,12 @@ module Misc
|
|
|
374
374
|
parts = []
|
|
375
375
|
lines.each_with_index do |line,i|
|
|
376
376
|
if line.nil?
|
|
377
|
+
keys[i] = nil
|
|
378
|
+
parts[i] = []
|
|
379
|
+
else
|
|
377
380
|
key, *p = line.strip.split(sep, -1)
|
|
378
381
|
keys[i] = key
|
|
379
382
|
parts[i] = p
|
|
380
|
-
else
|
|
381
383
|
end
|
|
382
384
|
end
|
|
383
385
|
sizes = parts.collect{|p| p.nil? ? 0 : p.length }
|
|
@@ -40,7 +40,7 @@ row3 ccc
|
|
|
40
40
|
s1 = StringIO.new text1
|
|
41
41
|
s2 = StringIO.new text2
|
|
42
42
|
s3 = StringIO.new text3
|
|
43
|
-
tsv = TSV.open Misc.paste_streams([s1,s2,s3],nil, " "), :sep => " ", :type => :list
|
|
43
|
+
tsv = TSV.open Misc.paste_streams([s1,s2,s3], nil, " "), :sep => " ", :type => :list
|
|
44
44
|
assert_equal ["A", "B", "C", "a", "b", "c"], tsv["row1"]
|
|
45
45
|
assert_equal ["AA", "BB", "CC", "aa", "bb", "cc"], tsv["row2"]
|
|
46
46
|
assert_equal ["AAA", "BBB", "CCC", "", "", "ccc"], tsv["row3"]
|
data/test/rbbt/util/test_misc.rb
CHANGED
|
@@ -6,7 +6,7 @@ require 'rbbt/entity'
|
|
|
6
6
|
|
|
7
7
|
class TestMisc < Test::Unit::TestCase
|
|
8
8
|
|
|
9
|
-
def
|
|
9
|
+
def test_object_delta
|
|
10
10
|
a = []
|
|
11
11
|
b = nil
|
|
12
12
|
d = Misc.object_delta(String) do
|
|
@@ -16,13 +16,13 @@ class TestMisc < Test::Unit::TestCase
|
|
|
16
16
|
assert_match /^0\.\d+$/, a.first
|
|
17
17
|
end
|
|
18
18
|
|
|
19
|
-
def
|
|
19
|
+
def test_format_seconds
|
|
20
20
|
t = 61.3232
|
|
21
21
|
assert_equal "00:01:01", Misc.format_seconds(t)
|
|
22
22
|
assert_equal "00:01:01.32", Misc.format_seconds(t, true)
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
def
|
|
25
|
+
def test_format_paragraph
|
|
26
26
|
p = <<-EOF
|
|
27
27
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
|
|
28
28
|
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
|
|
@@ -42,7 +42,7 @@ in culpa qui officia deserunt mollit anim id est laborum.
|
|
|
42
42
|
assert Misc.format_paragraph(p, 70, 10, 5) =~ /\n\s*\* two/sm
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
def
|
|
45
|
+
def test_format_dl
|
|
46
46
|
p1 = <<-EOF
|
|
47
47
|
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
|
|
48
48
|
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
|
|
@@ -72,13 +72,13 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
72
72
|
assert Misc.format_definition_list({:paragraph_first => p1, :paragraph_second => p2}) =~ / /
|
|
73
73
|
end
|
|
74
74
|
|
|
75
|
-
def
|
|
75
|
+
def test_parse_cmd_params
|
|
76
76
|
assert_equal ["workflow", "task", "Translation", "translate", "-f", "Associated Gene Name", "-l", "-"],
|
|
77
77
|
Misc.parse_cmd_params("workflow task Translation translate -f 'Associated Gene Name' -l -")
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
|
|
81
|
-
def
|
|
81
|
+
def test_fixutf8
|
|
82
82
|
string = "abc\xffdef"
|
|
83
83
|
string = string.force_encoding("UTF-8") if string.respond_to? :force_encoding
|
|
84
84
|
assert(! string.valid_encoding?) if string.respond_to? :valid_encoding?
|
|
@@ -87,37 +87,37 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
87
87
|
assert( Misc.fixutf8(string).valid_encoding) if string.respond_to? :valid_encoding
|
|
88
88
|
end
|
|
89
89
|
|
|
90
|
-
def
|
|
90
|
+
def test_colors_for
|
|
91
91
|
colors, used = Misc.colors_for([1,2,2,1,2,1,2,2,3,3,2,3,2])
|
|
92
92
|
assert_equal Misc::COLOR_LIST[1], used[2]
|
|
93
93
|
end
|
|
94
94
|
|
|
95
|
-
def
|
|
95
|
+
def test_total_length
|
|
96
96
|
ranges = [(0..100), (50..150), (120..160)]
|
|
97
97
|
ranges = [(0..100), (50..150), (120..160), (51..70)]
|
|
98
98
|
assert_equal 161, Misc.total_length(ranges)
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
-
def
|
|
101
|
+
def test_id_filename?
|
|
102
102
|
TmpFile.with_file("") do |file|
|
|
103
103
|
assert Misc.is_filename?(file)
|
|
104
104
|
assert ! Misc.is_filename?("TEST STRING")
|
|
105
105
|
end
|
|
106
106
|
end
|
|
107
107
|
|
|
108
|
-
def
|
|
108
|
+
def test_merge_sorted_arrays
|
|
109
109
|
assert_equal [1,2,3,4], Misc.merge_sorted_arrays([1,3], [2,4])
|
|
110
110
|
end
|
|
111
111
|
|
|
112
|
-
def
|
|
112
|
+
def test_intersect_sorted_arrays
|
|
113
113
|
assert_equal [2,4], Misc.intersect_sorted_arrays([1,2,3,4], [2,4])
|
|
114
114
|
end
|
|
115
115
|
|
|
116
|
-
def
|
|
116
|
+
def test_sorted_array_matches
|
|
117
117
|
assert_equal [1,3], Misc.sorted_array_hits(%w(a b c d e), %w(b d))
|
|
118
118
|
end
|
|
119
119
|
|
|
120
|
-
def
|
|
120
|
+
def test_binary_include?
|
|
121
121
|
a = %w(a b c d e).sort
|
|
122
122
|
assert Misc.binary_include?(a, "a")
|
|
123
123
|
assert(!Misc.binary_include?(a, "z"))
|
|
@@ -126,12 +126,12 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
126
126
|
assert(Misc.binary_include?(a, "d"))
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
-
def
|
|
129
|
+
def test_process_to_hash
|
|
130
130
|
list = [1,2,3,4]
|
|
131
131
|
assert_equal 4, Misc.process_to_hash(list){|l| l.collect{|e| e * 2}}[2]
|
|
132
132
|
end
|
|
133
133
|
|
|
134
|
-
def
|
|
134
|
+
def test_pipe_fork
|
|
135
135
|
sout, sin = Misc.pipe
|
|
136
136
|
pid = Process.fork do
|
|
137
137
|
Misc.purge_pipes(sin)
|
|
@@ -143,7 +143,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
143
143
|
Process.kill :INT, pid
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
-
def
|
|
146
|
+
def test_open_pipe
|
|
147
147
|
t = 5
|
|
148
148
|
stream = Misc.open_pipe do |sin|
|
|
149
149
|
t.times do |i|
|
|
@@ -164,7 +164,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
164
164
|
assert_equal (0..t-1).to_a.collect{|i| "LINE #{ i }"}, lines
|
|
165
165
|
end
|
|
166
166
|
|
|
167
|
-
def
|
|
167
|
+
def test_open_pipe_fork
|
|
168
168
|
t = 5
|
|
169
169
|
stream = Misc.open_pipe(true) do |sin|
|
|
170
170
|
t.times do |i|
|
|
@@ -185,7 +185,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
185
185
|
assert_equal (0..t-1).to_a.collect{|i| "LINE #{ i }"}, lines
|
|
186
186
|
end
|
|
187
187
|
|
|
188
|
-
def
|
|
188
|
+
def test_open_pipe_fork_cascade
|
|
189
189
|
t = 500
|
|
190
190
|
sleep_time = 2.0 / t
|
|
191
191
|
time = Time.now
|
|
@@ -221,7 +221,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
221
221
|
assert_equal (0..t-1).to_a.collect{|i| "LINE #{ i }".reverse.downcase}, lines
|
|
222
222
|
end
|
|
223
223
|
|
|
224
|
-
def
|
|
224
|
+
def test_tee_stream
|
|
225
225
|
t = 500
|
|
226
226
|
sleep_time = 2.0 / t
|
|
227
227
|
time = Time.now
|
|
@@ -271,7 +271,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
271
271
|
end
|
|
272
272
|
|
|
273
273
|
|
|
274
|
-
def
|
|
274
|
+
def test_string2hash
|
|
275
275
|
assert(Misc.string2hash("--user-agent=firefox").include? "--user-agent")
|
|
276
276
|
assert_equal(true, Misc.string2hash(":true")[:true])
|
|
277
277
|
assert_equal(true, Misc.string2hash("true")["true"])
|
|
@@ -282,16 +282,16 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
282
282
|
assert_equal(:j, Misc.string2hash("a=b#c=d#:h=:j")[:h])
|
|
283
283
|
end
|
|
284
284
|
|
|
285
|
-
def
|
|
285
|
+
def test_named_array
|
|
286
286
|
a = NamedArray.setup([1,2,3,4], %w(a b c d))
|
|
287
287
|
assert_equal(1, a['a'])
|
|
288
288
|
end
|
|
289
289
|
|
|
290
|
-
def
|
|
290
|
+
def test_path_relative_to
|
|
291
291
|
assert_equal "test/foo", Misc.path_relative_to('/test', '/test/test/foo')
|
|
292
292
|
end
|
|
293
293
|
|
|
294
|
-
def
|
|
294
|
+
def test_hash2string
|
|
295
295
|
hash = {}
|
|
296
296
|
assert_equal hash, Misc.string2hash(Misc.hash2string(hash))
|
|
297
297
|
|
|
@@ -309,14 +309,14 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
309
309
|
|
|
310
310
|
end
|
|
311
311
|
|
|
312
|
-
def
|
|
312
|
+
def test_merge
|
|
313
313
|
a = [[1],[2]]
|
|
314
314
|
a = NamedArray.setup a, %w(1 2)
|
|
315
315
|
a.merge [3,4]
|
|
316
316
|
assert_equal [1,3], a[0]
|
|
317
317
|
end
|
|
318
318
|
|
|
319
|
-
def
|
|
319
|
+
def test_indiferent_hash
|
|
320
320
|
a = {:a => 1, "b" => 2}
|
|
321
321
|
a.extend IndiferentHash
|
|
322
322
|
|
|
@@ -326,7 +326,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
326
326
|
assert_equal 2, a[:b]
|
|
327
327
|
end
|
|
328
328
|
|
|
329
|
-
def
|
|
329
|
+
def test_lockfile
|
|
330
330
|
|
|
331
331
|
TmpFile.with_file do |tmpfile|
|
|
332
332
|
pids = []
|
|
@@ -350,7 +350,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
350
350
|
end
|
|
351
351
|
end
|
|
352
352
|
|
|
353
|
-
def
|
|
353
|
+
def test_positions2hash
|
|
354
354
|
inputs = Misc.positional2hash([:one, :two, :three], 1, :two => 2, :four => 4)
|
|
355
355
|
assert_equal 1, inputs[:one]
|
|
356
356
|
assert_equal 2, inputs[:two]
|
|
@@ -358,44 +358,44 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
358
358
|
assert_equal nil, inputs[:four]
|
|
359
359
|
end
|
|
360
360
|
|
|
361
|
-
def
|
|
361
|
+
def test_mean
|
|
362
362
|
assert_equal 2, Misc.mean([1,2,3])
|
|
363
363
|
assert_equal 3, Misc.mean([1,2,3,4,5])
|
|
364
364
|
end
|
|
365
365
|
|
|
366
|
-
def
|
|
366
|
+
def test_zip_fields
|
|
367
367
|
current = [[:a,1], [:b,2]]
|
|
368
368
|
assert_equal [[:a, :b],[1,2]], Misc.zip_fields(current)
|
|
369
369
|
assert_equal current, Misc.zip_fields(Misc.zip_fields(current))
|
|
370
370
|
end
|
|
371
371
|
|
|
372
|
-
def
|
|
372
|
+
def test_zip_fields_comp
|
|
373
373
|
current = [[:a,1], [:b,2], [:c]]
|
|
374
374
|
assert_equal [[:a, :b, :c],[1,2,nil]], Misc.zip_fields(current)
|
|
375
375
|
assert_equal current, Misc.zip_fields(Misc.zip_fields(current)).collect{|v| v.compact }
|
|
376
376
|
end
|
|
377
377
|
|
|
378
|
-
def
|
|
378
|
+
def test_add_zipped
|
|
379
379
|
current = [[:a,1], [:b,2]]
|
|
380
380
|
new = %w(A B)
|
|
381
381
|
Misc.append_zipped current, new
|
|
382
382
|
assert_equal [[:a,1,"A"], [:b,2,"B"]], current
|
|
383
383
|
end
|
|
384
384
|
|
|
385
|
-
def
|
|
385
|
+
def test_divide
|
|
386
386
|
assert_equal 2, Misc.divide(%w(1 2 3 4 5 6 7 8 9),2).length
|
|
387
387
|
end
|
|
388
388
|
|
|
389
|
-
def
|
|
389
|
+
def test_ordered_divide
|
|
390
390
|
assert_equal 5, Misc.ordered_divide(%w(1 2 3 4 5 6 7 8 9),2).length
|
|
391
391
|
end
|
|
392
392
|
|
|
393
|
-
def
|
|
393
|
+
def test_collapse_ranges
|
|
394
394
|
ranges = [(0..100), (50..150), (51..61),(200..250), (300..324),(320..350)]
|
|
395
395
|
assert_equal [(0..150),(200..250), (300..350)], Misc.collapse_ranges(ranges)
|
|
396
396
|
end
|
|
397
397
|
|
|
398
|
-
def
|
|
398
|
+
def test_humanize
|
|
399
399
|
str1 = "test_string"
|
|
400
400
|
str2 = "TEST_string"
|
|
401
401
|
str3 = "test"
|
|
@@ -407,22 +407,22 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
407
407
|
assert_equal "mutation_enrichment", Misc.snake_case("MutationEnrichment")
|
|
408
408
|
end
|
|
409
409
|
|
|
410
|
-
def
|
|
410
|
+
def test_snake_case
|
|
411
411
|
str1 = "ACRONIMTest"
|
|
412
412
|
str2 = "ACRONIM_test"
|
|
413
413
|
assert_equal "ACRONIM_test", Misc.snake_case(str1)
|
|
414
414
|
assert_equal "ACRONIM_test", Misc.snake_case(str2)
|
|
415
415
|
end
|
|
416
416
|
|
|
417
|
-
def
|
|
417
|
+
def test_correct_vcf_mutations
|
|
418
418
|
assert_equal [737407, ["-----", "-----G", "-----GTTAAT"]], Misc.correct_vcf_mutation(737406, "GTTAAT", "G,GG,GGTTAAT")
|
|
419
419
|
end
|
|
420
420
|
|
|
421
|
-
def
|
|
421
|
+
def test_fingerprint
|
|
422
422
|
assert_equal '{a=>1}', Misc.fingerprint({:a => 1})
|
|
423
423
|
end
|
|
424
424
|
|
|
425
|
-
def
|
|
425
|
+
def test_tarize
|
|
426
426
|
path = File.expand_path('/home/mvazquezg/git/rbbt-util/lib')
|
|
427
427
|
stream = Misc.tarize(path)
|
|
428
428
|
TmpFile.with_file do |res|
|
|
@@ -432,7 +432,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
432
432
|
end
|
|
433
433
|
end
|
|
434
434
|
|
|
435
|
-
def
|
|
435
|
+
def test_camel_case
|
|
436
436
|
assert_equal "DbSNP", Misc.camel_case("db_SNP")
|
|
437
437
|
assert_equal "D3Js", Misc.camel_case("D3Js")
|
|
438
438
|
assert_equal "Structure", Misc.camel_case("Structure")
|
|
@@ -440,7 +440,7 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
|
440
440
|
assert_equal "COSMIC", Misc.camel_case("COSMIC")
|
|
441
441
|
end
|
|
442
442
|
|
|
443
|
-
def
|
|
443
|
+
def test_texar
|
|
444
444
|
ppp Misc.html_tag('textarea', "hola\nadios\nagain")
|
|
445
445
|
end
|
|
446
446
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rbbt-util
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.17.
|
|
4
|
+
version: 5.17.22
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Miguel Vazquez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-05-
|
|
11
|
+
date: 2015-05-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|