rbbt-util 5.7.0 → 5.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/annotations.rb +4 -1
- data/lib/rbbt/annotations/util.rb +11 -0
- data/lib/rbbt/persist.rb +8 -2
- data/lib/rbbt/resource/path.rb +1 -0
- data/lib/rbbt/tsv/accessor.rb +18 -15
- data/lib/rbbt/tsv/parallel.rb +89 -32
- data/lib/rbbt/tsv/util.rb +11 -0
- data/lib/rbbt/util/R.rb +0 -1
- data/lib/rbbt/util/concurrency.rb +2 -0
- data/lib/rbbt/util/concurrency/processes.rb +96 -0
- data/lib/rbbt/util/concurrency/processes/socket.rb +87 -0
- data/lib/rbbt/util/concurrency/processes/socket_old.rb +144 -0
- data/lib/rbbt/util/concurrency/processes/worker.rb +53 -0
- data/lib/rbbt/util/concurrency/threads.rb +76 -0
- data/lib/rbbt/util/log.rb +37 -5
- data/lib/rbbt/util/misc.rb +89 -4
- data/lib/rbbt/util/semaphore.rb +10 -4
- data/lib/rbbt/util/simpleopt/accessor.rb +5 -0
- data/lib/rbbt/util/simpleopt/doc.rb +2 -4
- data/lib/rbbt/workflow/accessor.rb +39 -12
- data/lib/rbbt/workflow/step.rb +5 -7
- data/share/rbbt_commands/benchmark/pthrough +18 -0
- data/share/rbbt_commands/color +41 -0
- data/share/rbbt_commands/stat/density +50 -0
- data/share/rbbt_commands/tsv/info +21 -3
- data/share/rbbt_commands/tsv/slice +46 -0
- data/share/rbbt_commands/tsv/subset +53 -0
- data/share/rbbt_commands/tsv/values +7 -1
- data/test/rbbt/annotations/test_util.rb +14 -0
- data/test/rbbt/tsv/test_parallel.rb +25 -3
- data/test/rbbt/tsv/test_util.rb +15 -0
- data/test/rbbt/util/concurrency/processes/test_socket.rb +37 -0
- data/test/rbbt/util/concurrency/test_processes.rb +53 -0
- data/test/rbbt/util/concurrency/test_threads.rb +42 -0
- data/test/rbbt/util/test_concurrency.rb +6 -0
- metadata +23 -2
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helper.rb')
|
2
|
+
require 'rbbt/annotations'
|
3
|
+
|
4
|
+
class TestClass < Test::Unit::TestCase
|
5
|
+
def test_marshal
|
6
|
+
a = "STRING"
|
7
|
+
a.extend Annotated
|
8
|
+
|
9
|
+
assert_equal a, Marshal.load(Marshal.dump(a))
|
10
|
+
assert_equal Marshal.dump("STRING"), Marshal.dump(a)
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
@@ -4,17 +4,39 @@ require 'rbbt/tsv/parallel'
|
|
4
4
|
|
5
5
|
class TestTSVParallel < Test::Unit::TestCase
|
6
6
|
|
7
|
-
def
|
7
|
+
def _test_pthrough
|
8
8
|
require 'rbbt/sources/organism'
|
9
|
-
tsv = Organism.identifiers("Hsa").tsv :unnamed => true
|
9
|
+
tsv = Organism.identifiers("Hsa").tsv :unnamed => true, :persist => false, :fields => ["Associated Gene Name"]
|
10
10
|
|
11
11
|
h = {}
|
12
12
|
tsv.monitor = true
|
13
|
+
tsv.unnamed = true
|
13
14
|
tsv.pthrough do |k,v|
|
14
15
|
h[k] = v.first
|
15
16
|
end
|
16
17
|
|
17
|
-
|
18
|
+
assert_equal tsv.size, h.size
|
19
|
+
assert_equal tsv.keys.sort, h.keys.sort
|
18
20
|
end
|
19
21
|
|
22
|
+
|
23
|
+
def test_ppthrough
|
24
|
+
require 'rbbt/sources/organism'
|
25
|
+
tsv = Organism.identifiers("Hsa").tsv :unnamed => true, :persist => false, :fields => ["Associated Gene Name"]
|
26
|
+
|
27
|
+
h = {}
|
28
|
+
|
29
|
+
tsv.ppthrough_callback do |k,v|
|
30
|
+
h[k] = v
|
31
|
+
end
|
32
|
+
|
33
|
+
tsv.unnamed = true
|
34
|
+
tsv.monitor = true
|
35
|
+
tsv.ppthrough(3) do |k,v|
|
36
|
+
[k,v.first]
|
37
|
+
end
|
38
|
+
|
39
|
+
assert_equal tsv.size, h.size
|
40
|
+
assert_equal tsv.keys.sort, h.keys.sort
|
41
|
+
end
|
20
42
|
end
|
data/test/rbbt/tsv/test_util.rb
CHANGED
@@ -23,4 +23,19 @@ row2 A B Id3
|
|
23
23
|
|
24
24
|
end
|
25
25
|
|
26
|
+
def test_marshal
|
27
|
+
content =<<-EOF
|
28
|
+
#Id ValueA ValueB OtherID
|
29
|
+
row1 a|aa|aaa b Id1|Id2
|
30
|
+
row2 A B Id3
|
31
|
+
EOF
|
32
|
+
|
33
|
+
TmpFile.with_file(content) do |filename|
|
34
|
+
tsv = TSV.open(filename, :sep => /\s+/)
|
35
|
+
|
36
|
+
assert TSV === Marshal.load(Marshal.dump(tsv))
|
37
|
+
assert_equal tsv.to_hash, Marshal.load(Marshal.dump(tsv)).to_hash
|
38
|
+
assert_equal({1 => 1}, Marshal.load(Marshal.dump({1 => 1})))
|
39
|
+
end
|
40
|
+
end
|
26
41
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../../../..', 'test_helper.rb')
|
2
|
+
|
3
|
+
require 'rbbt-util'
|
4
|
+
require 'rbbt/util/log'
|
5
|
+
require 'rbbt/util/concurrency/processes/socket'
|
6
|
+
|
7
|
+
class TestConcurrency < Test::Unit::TestCase
|
8
|
+
def test_socket_push_pop
|
9
|
+
obj1 = [1,[2,3,4]] #* 1000
|
10
|
+
obj2 = ["1",["2","3","4"]] #* 1000
|
11
|
+
obj3 = "some string"
|
12
|
+
obj4 = TSV.setup({1 => 1})
|
13
|
+
|
14
|
+
socket = RbbtProcessQueue::RbbtProcessSocket.new
|
15
|
+
10.times do
|
16
|
+
|
17
|
+
socket.push(obj1)
|
18
|
+
socket.push(obj2)
|
19
|
+
socket.push(obj3)
|
20
|
+
socket.push(obj4)
|
21
|
+
|
22
|
+
assert_equal obj1, socket.pop
|
23
|
+
assert_equal obj2, socket.pop
|
24
|
+
assert_equal obj3, socket.pop
|
25
|
+
assert_equal obj4, socket.pop
|
26
|
+
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
socket.swrite.close
|
31
|
+
assert ClosedStream === socket.pop
|
32
|
+
|
33
|
+
socket.clean
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../../..', 'test_helper.rb')
|
2
|
+
|
3
|
+
require 'rbbt-util'
|
4
|
+
require 'rbbt/util/log'
|
5
|
+
require 'rbbt/util/concurrency/processes'
|
6
|
+
|
7
|
+
class TestConcurrencyProcess < Test::Unit::TestCase
|
8
|
+
|
9
|
+
def test_process
|
10
|
+
q = RbbtProcessQueue.new 1
|
11
|
+
|
12
|
+
res = []
|
13
|
+
|
14
|
+
q.callback do |v|
|
15
|
+
res << v
|
16
|
+
end
|
17
|
+
|
18
|
+
q.init do |i|
|
19
|
+
i * 2
|
20
|
+
end
|
21
|
+
|
22
|
+
times = 500
|
23
|
+
t = TSV.setup({"a" => 1}, :type => :single)
|
24
|
+
|
25
|
+
Misc.benchmark do
|
26
|
+
times.times do |i|
|
27
|
+
q.process i
|
28
|
+
end
|
29
|
+
|
30
|
+
q.join
|
31
|
+
q.clean
|
32
|
+
end
|
33
|
+
|
34
|
+
assert_equal times, res.length
|
35
|
+
assert_equal [0, 2, 4], res.sort[0..2]
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_each
|
40
|
+
times = 5000
|
41
|
+
elems = (0..times-1).to_a
|
42
|
+
|
43
|
+
TmpFile.with_file do |dir|
|
44
|
+
RbbtProcessQueue.each(elems) do |elem|
|
45
|
+
Open.write(File.join(dir, elem.to_s), "DONE")
|
46
|
+
end
|
47
|
+
|
48
|
+
assert_equal times, Dir.glob(File.join(dir, '*')).length
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../../..', 'test_helper.rb')
|
2
|
+
require 'rbbt/util/concurrency'
|
3
|
+
|
4
|
+
class TestConcurrencyThreads < Test::Unit::TestCase
|
5
|
+
def test_thread_queue
|
6
|
+
q = RbbtThreadQueue.new 10
|
7
|
+
|
8
|
+
res = []
|
9
|
+
|
10
|
+
q.init do |v|
|
11
|
+
res << v
|
12
|
+
end
|
13
|
+
|
14
|
+
times = 5_000_000
|
15
|
+
Misc.benchmark do
|
16
|
+
times.times do |i|
|
17
|
+
q.process [i*2]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
q.join
|
22
|
+
q.clean
|
23
|
+
|
24
|
+
assert_equal times, res.length
|
25
|
+
assert_equal [0, 2, 4], res.sort[0..2]
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_each
|
30
|
+
times = 50000
|
31
|
+
elems = (0..times-1).to_a
|
32
|
+
|
33
|
+
TmpFile.with_file do |dir|
|
34
|
+
elems.each do |elem|
|
35
|
+
Open.write(File.join(dir, elem.to_s), "DONE")
|
36
|
+
end
|
37
|
+
|
38
|
+
assert_equal times, Dir.glob(File.join(dir, '*')).length
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
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.
|
4
|
+
version: 5.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -161,6 +161,12 @@ files:
|
|
161
161
|
- lib/rbbt/util/cmd.rb
|
162
162
|
- lib/rbbt/util/color.rb
|
163
163
|
- lib/rbbt/util/colorize.rb
|
164
|
+
- lib/rbbt/util/concurrency.rb
|
165
|
+
- lib/rbbt/util/concurrency/processes.rb
|
166
|
+
- lib/rbbt/util/concurrency/processes/socket.rb
|
167
|
+
- lib/rbbt/util/concurrency/processes/socket_old.rb
|
168
|
+
- lib/rbbt/util/concurrency/processes/worker.rb
|
169
|
+
- lib/rbbt/util/concurrency/threads.rb
|
164
170
|
- lib/rbbt/util/excel2tsv.rb
|
165
171
|
- lib/rbbt/util/filecache.rb
|
166
172
|
- lib/rbbt/util/log.rb
|
@@ -193,6 +199,8 @@ files:
|
|
193
199
|
- share/rbbt_commands/app/install
|
194
200
|
- share/rbbt_commands/app/start
|
195
201
|
- share/rbbt_commands/app/template
|
202
|
+
- share/rbbt_commands/benchmark/pthrough
|
203
|
+
- share/rbbt_commands/color
|
196
204
|
- share/rbbt_commands/conf/web_user/add
|
197
205
|
- share/rbbt_commands/conf/web_user/list
|
198
206
|
- share/rbbt_commands/conf/web_user/remove
|
@@ -203,6 +211,7 @@ files:
|
|
203
211
|
- share/rbbt_commands/resource/find
|
204
212
|
- share/rbbt_commands/resource/get
|
205
213
|
- share/rbbt_commands/resource/produce
|
214
|
+
- share/rbbt_commands/stat/density
|
206
215
|
- share/rbbt_commands/study/task
|
207
216
|
- share/rbbt_commands/system/purge
|
208
217
|
- share/rbbt_commands/system/report
|
@@ -211,6 +220,8 @@ files:
|
|
211
220
|
- share/rbbt_commands/tsv/get
|
212
221
|
- share/rbbt_commands/tsv/info
|
213
222
|
- share/rbbt_commands/tsv/json
|
223
|
+
- share/rbbt_commands/tsv/slice
|
224
|
+
- share/rbbt_commands/tsv/subset
|
214
225
|
- share/rbbt_commands/tsv/unzip
|
215
226
|
- share/rbbt_commands/tsv/values
|
216
227
|
- share/rbbt_commands/workflow/cmd
|
@@ -226,6 +237,7 @@ files:
|
|
226
237
|
- share/rbbt_commands/workflow/server
|
227
238
|
- share/rbbt_commands/workflow/task
|
228
239
|
- share/unicorn.rb
|
240
|
+
- test/rbbt/annotations/test_util.rb
|
229
241
|
- test/rbbt/association/test_index.rb
|
230
242
|
- test/rbbt/association/test_item.rb
|
231
243
|
- test/rbbt/persist/test_tsv.rb
|
@@ -253,6 +265,9 @@ files:
|
|
253
265
|
- test/rbbt/tsv/test_manipulate.rb
|
254
266
|
- test/rbbt/tsv/test_parallel.rb
|
255
267
|
- test/rbbt/tsv/test_util.rb
|
268
|
+
- test/rbbt/util/concurrency/processes/test_socket.rb
|
269
|
+
- test/rbbt/util/concurrency/test_processes.rb
|
270
|
+
- test/rbbt/util/concurrency/test_threads.rb
|
256
271
|
- test/rbbt/util/simpleopt/test_get.rb
|
257
272
|
- test/rbbt/util/simpleopt/test_parse.rb
|
258
273
|
- test/rbbt/util/simpleopt/test_setup.rb
|
@@ -260,6 +275,7 @@ files:
|
|
260
275
|
- test/rbbt/util/test_chain_methods.rb
|
261
276
|
- test/rbbt/util/test_cmd.rb
|
262
277
|
- test/rbbt/util/test_colorize.rb
|
278
|
+
- test/rbbt/util/test_concurrency.rb
|
263
279
|
- test/rbbt/util/test_excel2tsv.rb
|
264
280
|
- test/rbbt/util/test_filecache.rb
|
265
281
|
- test/rbbt/util/test_log.rb
|
@@ -307,11 +323,15 @@ test_files:
|
|
307
323
|
- test/rbbt/util/test_simpleDSL.rb
|
308
324
|
- test/rbbt/util/test_log.rb
|
309
325
|
- test/rbbt/util/test_open.rb
|
326
|
+
- test/rbbt/util/test_concurrency.rb
|
310
327
|
- test/rbbt/util/test_R.rb
|
311
328
|
- test/rbbt/util/test_colorize.rb
|
312
329
|
- test/rbbt/util/test_simpleopt.rb
|
313
330
|
- test/rbbt/util/test_excel2tsv.rb
|
314
331
|
- test/rbbt/util/test_filecache.rb
|
332
|
+
- test/rbbt/util/concurrency/test_processes.rb
|
333
|
+
- test/rbbt/util/concurrency/test_threads.rb
|
334
|
+
- test/rbbt/util/concurrency/processes/test_socket.rb
|
315
335
|
- test/rbbt/util/test_semaphore.rb
|
316
336
|
- test/rbbt/util/test_misc.rb
|
317
337
|
- test/rbbt/util/test_tmpfile.rb
|
@@ -319,6 +339,7 @@ test_files:
|
|
319
339
|
- test/rbbt/test_resource.rb
|
320
340
|
- test/rbbt/test_entity.rb
|
321
341
|
- test/rbbt/test_knowledge_base.rb
|
342
|
+
- test/rbbt/annotations/test_util.rb
|
322
343
|
- test/rbbt/association/test_index.rb
|
323
344
|
- test/rbbt/association/test_item.rb
|
324
345
|
- test/rbbt/test_tsv.rb
|