rbbt-util 3.1.0 → 3.2.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.
Files changed (38) hide show
  1. data/bin/rbbt_query.rb +1 -1
  2. data/lib/rbbt/util/cmd.rb +115 -67
  3. data/lib/rbbt/util/fix_width_table.rb +18 -3
  4. data/lib/rbbt/util/misc.rb +106 -6
  5. data/lib/rbbt/util/open.rb +9 -7
  6. data/lib/rbbt/util/persistence.rb +17 -14
  7. data/lib/rbbt/util/resource.rb +10 -3
  8. data/lib/rbbt/util/task.rb +2 -2
  9. data/lib/rbbt/util/task/job.rb +16 -3
  10. data/lib/rbbt/util/tc_hash.rb +64 -27
  11. data/lib/rbbt/util/tsv.rb +44 -21
  12. data/lib/rbbt/util/tsv/accessor.rb +8 -6
  13. data/lib/rbbt/util/tsv/attach.rb +19 -28
  14. data/lib/rbbt/util/tsv/filters.rb +193 -0
  15. data/lib/rbbt/util/tsv/index.rb +80 -8
  16. data/lib/rbbt/util/tsv/manipulate.rb +17 -6
  17. data/lib/rbbt/util/tsv/misc.rb +10 -0
  18. data/lib/rbbt/util/tsv/parse.rb +18 -1
  19. data/lib/rbbt/util/workflow.rb +12 -3
  20. data/lib/rbbt/util/workflow/soap.rb +0 -1
  21. data/share/install/software/lib/install_helpers +0 -2
  22. data/share/lib/R/util.R +3 -3
  23. data/test/rbbt/util/test_cmd.rb +23 -0
  24. data/test/rbbt/util/test_excel2tsv.rb +1 -1
  25. data/test/rbbt/util/test_misc.rb +41 -11
  26. data/test/rbbt/util/test_open.rb +2 -2
  27. data/test/rbbt/util/test_persistence.rb +2 -2
  28. data/test/rbbt/util/test_resource.rb +4 -20
  29. data/test/rbbt/util/test_tc_hash.rb +38 -0
  30. data/test/rbbt/util/test_tmpfile.rb +1 -1
  31. data/test/rbbt/util/test_tsv.rb +6 -0
  32. data/test/rbbt/util/test_workflow.rb +14 -10
  33. data/test/rbbt/util/tsv/test_accessor.rb +42 -0
  34. data/test/rbbt/util/tsv/test_filters.rb +141 -0
  35. data/test/rbbt/util/tsv/test_index.rb +32 -0
  36. data/test/rbbt/util/tsv/test_manipulate.rb +18 -0
  37. data/test/test_helper.rb +3 -1
  38. metadata +41 -38
@@ -8,7 +8,7 @@ class TestTmpFile < Test::Unit::TestCase
8
8
  assert(TmpFile.tmp_file("test") =~ /tmp\/test\d+$/)
9
9
  end
10
10
 
11
- def test_do_tmp_file
11
+ def _test_do_tmp_file
12
12
  content = "Hello World!"
13
13
  TmpFile.with_file(content) do |file|
14
14
  assert_equal content, File.open(file).read
@@ -202,14 +202,20 @@ row2 A B
202
202
  assert TCHash === tsv1.data
203
203
  assert !tsv1.case_insensitive
204
204
  assert tsv1.include? "A"
205
+ ddd tsv1.filename
205
206
 
206
207
  tsv1 = TSV.new(tchash, :key => "ValueA")
207
208
  assert TCHash === tsv1.data
208
209
  assert !tsv1.case_insensitive
209
210
  assert tsv1.include? "A"
211
+ ddd tsv1.filename
210
212
  end
211
213
  end
212
214
 
213
215
  end
216
+
217
+ def test_with_hash
218
+ assert TSV === TSV.new {}, :list
219
+ end
214
220
  end
215
221
 
@@ -37,7 +37,10 @@ module MathWF2
37
37
  task :times => :integer do |times| mult(input, times) end
38
38
 
39
39
  task_dependencies []
40
- task :persist do task.workflow.methods.include? "local_persist" end
40
+ task :persist do
41
+ task.workflow.methods.include?(:local_persist) or
42
+ task.workflow.methods.include?("local_persist")
43
+ end
41
44
  end
42
45
 
43
46
 
@@ -65,22 +68,22 @@ class TestWorkFlow < Test::Unit::TestCase
65
68
 
66
69
  def test_math_wf
67
70
  job = MathWF.tasks[:times_2].job(:job1, 1)
68
- assert_equal 4, job.fork.join.load
71
+ assert_equal 4, job.recursive_clean.fork.join.load
69
72
  job = MathWF.tasks[:times_4].job(:job1, 1)
70
- assert_equal 8, job.fork.join.load
73
+ assert_equal 8, job.recursive_clean.fork.join.load
71
74
  end
72
75
 
73
76
  def test_math_wf2
74
77
  job = MathWF2.tasks[:times_2].job(:job1, 1)
75
- job.fork.join
78
+ job.recursive_clean.fork.join
76
79
  assert_equal 4, job.load
77
80
  job = MathWF2.tasks[:times_4].job(:job1, 1)
78
- assert_equal 8, job.fork.join.load
81
+ assert_equal 8, job.recursive_clean.fork.join.load
79
82
  end
80
83
 
81
84
  def test_math_run
82
85
  job = MathWF2.job(:times_2, :job1, 1)
83
- job.fork.join
86
+ job.recursive_clean.fork.join
84
87
  assert_equal 4, job.load
85
88
  end
86
89
 
@@ -88,7 +91,7 @@ class TestWorkFlow < Test::Unit::TestCase
88
91
  assert MathWF2.tasks[:times].option_defaults.include? :times
89
92
 
90
93
  job = MathWF2.job(:times, :job1, 1)
91
- job.fork.join
94
+ job.recursive_clean.fork.join
92
95
  assert job.done?
93
96
  puts job.messages
94
97
  assert File.exists? job.path
@@ -96,7 +99,7 @@ class TestWorkFlow < Test::Unit::TestCase
96
99
 
97
100
 
98
101
  job = MathWF2.job(:times, :job1, 1, :times => 20)
99
- job.fork.join
102
+ job.recursive_clean.fork.join
100
103
  assert_equal 40, job.load
101
104
  end
102
105
 
@@ -112,12 +115,13 @@ class TestWorkFlow < Test::Unit::TestCase
112
115
  end
113
116
 
114
117
  def test_local_persist
118
+ MathWF2.job(:persist, :persist).clean
115
119
  assert MathWF2.run(:persist, :persist).load
116
120
  end
117
121
 
118
122
  def test_conditional
119
- assert 2, ConWF.run(:times_2, "Test", "one").load
120
- assert 4, ConWF.run(:times_2, "Test", "two").load
123
+ assert_equal 2, ConWF.run(:times_2, "Test", "one").load
124
+ assert_equal 4, ConWF.run(:times_2, "Test", "two").load
121
125
  end
122
126
 
123
127
  def test_option_summary
@@ -105,5 +105,47 @@ row2 A B C
105
105
  end
106
106
  end
107
107
 
108
+ def test_namespace
109
+ content =<<-EOF
110
+ #ID ValueA ValueB Comment
111
+ row1 a b c
112
+ row2 A B C
113
+ EOF
114
+
115
+ TmpFile.with_file(content) do |filename|
116
+ tsv = TSV.new(File.open(filename), :double, :sep => /\s/, :namespace => "TEST")
117
+
118
+ assert_equal "TEST", tsv.fields.first.namespace
119
+ assert_equal "TEST", tsv.key_field.namespace
120
+ end
121
+ end
122
+
123
+ def test_delete
124
+ content =<<-EOF
125
+ #ID ValueA ValueB Comment
126
+ row1 a b c
127
+ row2 A B C
128
+ EOF
129
+
130
+ TmpFile.with_file(content) do |filename|
131
+ tsv = TSV.new(File.open(filename), :double, :sep => /\s/)
132
+ tsv.delete "row1"
133
+
134
+ assert_equal 1, tsv.size
135
+ assert_equal ["row2"], tsv.keys
136
+
137
+ tsv = TSV.new(File.open(filename), :double, :sep => /\s/, :persistence => true)
138
+ assert_equal 2, tsv.size
139
+ assert_equal ["row1", "row2"], tsv.keys
140
+ tsv.write
141
+ tsv.delete "row1"
142
+ tsv.read
143
+
144
+ assert_equal 1, tsv.size
145
+ assert_equal ["row2"], tsv.keys
146
+ end
147
+ end
148
+
149
+
108
150
  end
109
151
 
@@ -0,0 +1,141 @@
1
+ require File.join(File.expand_path(File.dirname(__FILE__)), '../../..', 'test_helper.rb')
2
+ require 'rbbt/util/tsv/filters'
3
+
4
+ class TestTSVFilters < Test::Unit::TestCase
5
+ def test_collect
6
+ content1 =<<-EOF
7
+ #: :sep=/\\s+/#:case_insensitive=false
8
+ #Id ValueA ValueB
9
+ row1 a|aa|aaa b
10
+ row2 A B
11
+ EOF
12
+
13
+ TmpFile.with_file(content1) do |filename|
14
+ tsv = TSV.new filename
15
+ tsv.filter
16
+ tsv.add_filter "field:ValueA", ["A"]
17
+ assert_equal 1, tsv.collect.size
18
+ end
19
+ end
20
+
21
+ def test_through
22
+ content1 =<<-EOF
23
+ #: :sep=/\\s+/#:case_insensitive=false
24
+ #Id ValueA ValueB
25
+ row1 a|aa|aaa b
26
+ row2 A B
27
+ EOF
28
+
29
+ TmpFile.with_file(content1) do |filename|
30
+ tsv = TSV.new filename
31
+ tsv.filter
32
+ tsv.add_filter "field:ValueA", ["A"]
33
+ elem = []
34
+ tsv.through do |k,v| elem << k end
35
+ assert_equal 1, elem.size
36
+ end
37
+ end
38
+
39
+ def test_2_filters
40
+ content1 =<<-EOF
41
+ #: :sep=/\\s+/#:case_insensitive=false
42
+ #Id ValueA ValueB
43
+ row1 a|aa|aaa b
44
+ row2 A B
45
+ row3 A C
46
+ EOF
47
+
48
+ TmpFile.with_file(content1) do |filename|
49
+ tsv = TSV.new filename
50
+ tsv.filter
51
+ tsv.add_filter "field:ValueA", ["A"]
52
+
53
+ elem = []
54
+ tsv.through do |k,v| elem << k end
55
+ assert_equal 2, elem.size
56
+
57
+ tsv.add_filter "field:ValueB", ["C"]
58
+
59
+ elem = []
60
+ tsv.through do |k,v| elem << k end
61
+ assert_equal 1, elem.size
62
+ end
63
+ end
64
+
65
+ def test_filter_persistence
66
+ content1 =<<-EOF
67
+ #: :sep=/\\s+/#:case_insensitive=false
68
+ #Id ValueA ValueB
69
+ row1 a|aa|aaa b
70
+ row2 A B
71
+ row3 A C
72
+ EOF
73
+
74
+ TmpFile.with_file(content1) do |filename|
75
+ tsv = TSV.new filename
76
+ tsv.filter
77
+ tsv.add_filter "field:ValueA", ["A"], Rbbt.tmp.test.Filter.fieldValueA
78
+
79
+ elem = []
80
+ tsv.through do |k,v| elem << k end
81
+ assert_equal 2, elem.size
82
+
83
+ tsv.add_filter "field:ValueB", ["C"]
84
+
85
+ elem = []
86
+ tsv.through do |k,v| elem << k end
87
+ assert_equal 1, elem.size
88
+
89
+ tsv = TSV.new filename
90
+ tsv.filter
91
+ tsv.add_filter "field:ValueA", ["A"], Rbbt.tmp.test.Filter.fieldValueA
92
+
93
+ elem = []
94
+ tsv.through do |k,v| elem << k end
95
+ assert_equal 2, elem.size
96
+ end
97
+ end
98
+
99
+ def test_filter_persistence_update
100
+ content1 =<<-EOF
101
+ #: :sep=/\\s+/#:case_insensitive=false
102
+ #Id ValueA ValueB
103
+ row1 a|aa|aaa b
104
+ row2 A B
105
+ EOF
106
+
107
+ TmpFile.with_file(content1) do |filename|
108
+ tsv = TSV.new filename
109
+ tsv.filter
110
+ tsv.add_filter "field:ValueA", ["A"], Rbbt.tmp.test.Filter.fieldValueA.find(:user)
111
+
112
+ elem = []
113
+ tsv.through do |k,v| elem << k end
114
+ assert_equal 1, elem.size
115
+
116
+ tsv["row3"] = [["A"], ["C"]]
117
+
118
+ elem = []
119
+ tsv.through do |k,v| elem << k end
120
+ assert_equal 2, elem.size
121
+
122
+ tsv.add_filter "field:ValueB", ["C"]
123
+
124
+ elem = []
125
+ tsv.through do |k,v| elem << k end
126
+ assert_equal 1, elem.size
127
+
128
+ tsv = TSV.new filename
129
+ tsv.filter
130
+ tsv.add_filter "field:ValueA", ["A"], Rbbt.tmp.test.Filter.fieldValueA.find(:user)
131
+
132
+ elem = []
133
+ tsv.through do |k,v| elem << k end
134
+ assert_equal 2, elem.size
135
+ end
136
+ end
137
+
138
+
139
+
140
+ end
141
+
@@ -153,5 +153,37 @@ g: ____
153
153
  end
154
154
  end
155
155
 
156
+ def test_pos_index
157
+ content =<<-EOF
158
+ #Id ValueA ValueB Pos
159
+ row1 a|aa|aaa b 0|10
160
+ row2 A B 30
161
+ EOF
162
+
163
+ TmpFile.with_file(content) do |filename|
164
+ tsv = TSV.new(File.open(filename), :double, :sep => /\s+/)
165
+ index = tsv.pos_index("Pos", :memory, true)
166
+ assert_equal ["row1"], index[10]
167
+ end
168
+ end
169
+
170
+
171
+ def test_range_index
172
+ content =<<-EOF
173
+ #Id ValueA ValueB Pos1 Pos2
174
+ row1 a|aa|aaa b 0|10 10|30
175
+ row2 A B 30 35
176
+ EOF
177
+
178
+ TmpFile.with_file(content) do |filename|
179
+ tsv = TSV.new(File.open(filename), :double, :sep => /\s+/)
180
+ index = tsv.pos_index("Pos1", :memory, true)
181
+ assert_equal ["row1"], index[10]
182
+
183
+ index = tsv.range_index("Pos1", "Pos2", :memory, true)
184
+ assert_equal ["row1"], index[20]
185
+ end
186
+ end
187
+
156
188
  end
157
189
 
@@ -242,5 +242,23 @@ row3 a C Id4
242
242
 
243
243
  end
244
244
 
245
+ def test_through_single
246
+ content =<<-EOF
247
+ #Id LetterValue
248
+ row1 a1
249
+ row2 A1
250
+ row3 a2
251
+ EOF
252
+
253
+ TmpFile.with_file(content) do |filename|
254
+ tsv = TSV.new(filename + '#:sep=/\s+/#:type=:single')
255
+
256
+ #TODO: WTF!!!
257
+ assert_equal "row1", tsv.reorder("LetterValue", :key)[97]
258
+ end
259
+
260
+ end
261
+
262
+
245
263
  end
246
264
 
data/test/test_helper.rb CHANGED
@@ -16,9 +16,11 @@ class Test::Unit::TestCase
16
16
 
17
17
  def teardown
18
18
  FileUtils.rm_rf Rbbt.tmp.test.find :user
19
+ TCHash::CONNECTIONS.values.each do |c| c.close end
20
+ TCHash::CONNECTIONS.clear
19
21
  end
20
22
 
21
- def test_datafile(file)
23
+ def datafile_test(file)
22
24
  File.join(File.dirname(__FILE__), 'data', file)
23
25
  end
24
26
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
5
- prerelease: false
4
+ hash: 15
5
+ prerelease:
6
6
  segments:
7
7
  - 3
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 3.1.0
10
+ version: 3.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Miguel Vazquez
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-11 00:00:00 +02:00
18
+ date: 2011-06-12 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -141,6 +141,7 @@ files:
141
141
  - lib/rbbt/util/tsv.rb
142
142
  - lib/rbbt/util/tsv/accessor.rb
143
143
  - lib/rbbt/util/tsv/attach.rb
144
+ - lib/rbbt/util/tsv/filters.rb
144
145
  - lib/rbbt/util/tsv/index.rb
145
146
  - lib/rbbt/util/tsv/manipulate.rb
146
147
  - lib/rbbt/util/tsv/misc.rb
@@ -150,31 +151,32 @@ files:
150
151
  - lib/rbbt/util/workflow/soap.rb
151
152
  - share/install/software/lib/install_helpers
152
153
  - share/lib/R/util.R
153
- - test/rbbt/util/test_R.rb
154
- - test/rbbt/util/test_bed.rb
155
- - test/rbbt/util/test_cmd.rb
156
- - test/rbbt/util/test_excel2tsv.rb
154
+ - test/test_helper.rb
155
+ - test/rbbt/util/test_tmpfile.rb
157
156
  - test/rbbt/util/test_filecache.rb
158
- - test/rbbt/util/test_fix_width_table.rb
159
- - test/rbbt/util/test_misc.rb
160
157
  - test/rbbt/util/test_open.rb
161
- - test/rbbt/util/test_persistence.rb
162
- - test/rbbt/util/test_rake.rb
163
- - test/rbbt/util/test_resource.rb
158
+ - test/rbbt/util/test_tsv.rb
159
+ - test/rbbt/util/test_misc.rb
160
+ - test/rbbt/util/test_cmd.rb
161
+ - test/rbbt/util/test_tc_hash.rb
164
162
  - test/rbbt/util/test_simpleDSL.rb
163
+ - test/rbbt/util/test_resource.rb
164
+ - test/rbbt/util/test_R.rb
165
+ - test/rbbt/util/test_excel2tsv.rb
165
166
  - test/rbbt/util/test_simpleopt.rb
166
167
  - test/rbbt/util/test_task.rb
167
- - test/rbbt/util/test_tc_hash.rb
168
- - test/rbbt/util/test_tmpfile.rb
169
- - test/rbbt/util/test_tsv.rb
168
+ - test/rbbt/util/test_bed.rb
169
+ - test/rbbt/util/test_rake.rb
170
+ - test/rbbt/util/test_persistence.rb
170
171
  - test/rbbt/util/test_workflow.rb
172
+ - test/rbbt/util/tsv/test_parse.rb
171
173
  - test/rbbt/util/tsv/test_accessor.rb
172
- - test/rbbt/util/tsv/test_attach.rb
173
- - test/rbbt/util/tsv/test_index.rb
174
174
  - test/rbbt/util/tsv/test_manipulate.rb
175
- - test/rbbt/util/tsv/test_parse.rb
175
+ - test/rbbt/util/tsv/test_index.rb
176
+ - test/rbbt/util/tsv/test_attach.rb
176
177
  - test/rbbt/util/tsv/test_resource.rb
177
- - test/test_helper.rb
178
+ - test/rbbt/util/tsv/test_filters.rb
179
+ - test/rbbt/util/test_fix_width_table.rb
178
180
  - test/test_rbbt.rb
179
181
  - bin/tsv.rb
180
182
  - bin/tchash.rb
@@ -212,34 +214,35 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
214
  requirements: []
213
215
 
214
216
  rubyforge_project:
215
- rubygems_version: 1.3.7
217
+ rubygems_version: 1.6.2
216
218
  signing_key:
217
219
  specification_version: 3
218
220
  summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
219
221
  test_files:
220
- - test/rbbt/util/test_R.rb
221
- - test/rbbt/util/test_bed.rb
222
- - test/rbbt/util/test_cmd.rb
223
- - test/rbbt/util/test_excel2tsv.rb
222
+ - test/test_helper.rb
223
+ - test/rbbt/util/test_tmpfile.rb
224
224
  - test/rbbt/util/test_filecache.rb
225
- - test/rbbt/util/test_fix_width_table.rb
226
- - test/rbbt/util/test_misc.rb
227
225
  - test/rbbt/util/test_open.rb
228
- - test/rbbt/util/test_persistence.rb
229
- - test/rbbt/util/test_rake.rb
230
- - test/rbbt/util/test_resource.rb
226
+ - test/rbbt/util/test_tsv.rb
227
+ - test/rbbt/util/test_misc.rb
228
+ - test/rbbt/util/test_cmd.rb
229
+ - test/rbbt/util/test_tc_hash.rb
231
230
  - test/rbbt/util/test_simpleDSL.rb
231
+ - test/rbbt/util/test_resource.rb
232
+ - test/rbbt/util/test_R.rb
233
+ - test/rbbt/util/test_excel2tsv.rb
232
234
  - test/rbbt/util/test_simpleopt.rb
233
235
  - test/rbbt/util/test_task.rb
234
- - test/rbbt/util/test_tc_hash.rb
235
- - test/rbbt/util/test_tmpfile.rb
236
- - test/rbbt/util/test_tsv.rb
236
+ - test/rbbt/util/test_bed.rb
237
+ - test/rbbt/util/test_rake.rb
238
+ - test/rbbt/util/test_persistence.rb
237
239
  - test/rbbt/util/test_workflow.rb
240
+ - test/rbbt/util/tsv/test_parse.rb
238
241
  - test/rbbt/util/tsv/test_accessor.rb
239
- - test/rbbt/util/tsv/test_attach.rb
240
- - test/rbbt/util/tsv/test_index.rb
241
242
  - test/rbbt/util/tsv/test_manipulate.rb
242
- - test/rbbt/util/tsv/test_parse.rb
243
+ - test/rbbt/util/tsv/test_index.rb
244
+ - test/rbbt/util/tsv/test_attach.rb
243
245
  - test/rbbt/util/tsv/test_resource.rb
244
- - test/test_helper.rb
246
+ - test/rbbt/util/tsv/test_filters.rb
247
+ - test/rbbt/util/test_fix_width_table.rb
245
248
  - test/test_rbbt.rb