BioDSL 1.0.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.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/BioDSL.gemspec +64 -0
- data/LICENSE +339 -0
- data/README.md +205 -0
- data/Rakefile +94 -0
- data/examples/fastq_to_fasta.rb +8 -0
- data/lib/BioDSL/cary.rb +242 -0
- data/lib/BioDSL/command.rb +133 -0
- data/lib/BioDSL/commands/add_key.rb +110 -0
- data/lib/BioDSL/commands/align_seq_mothur.rb +194 -0
- data/lib/BioDSL/commands/analyze_residue_distribution.rb +222 -0
- data/lib/BioDSL/commands/assemble_pairs.rb +336 -0
- data/lib/BioDSL/commands/assemble_seq_idba.rb +230 -0
- data/lib/BioDSL/commands/assemble_seq_ray.rb +345 -0
- data/lib/BioDSL/commands/assemble_seq_spades.rb +252 -0
- data/lib/BioDSL/commands/classify_seq.rb +217 -0
- data/lib/BioDSL/commands/classify_seq_mothur.rb +226 -0
- data/lib/BioDSL/commands/clip_primer.rb +318 -0
- data/lib/BioDSL/commands/cluster_otus.rb +181 -0
- data/lib/BioDSL/commands/collapse_otus.rb +170 -0
- data/lib/BioDSL/commands/collect_otus.rb +150 -0
- data/lib/BioDSL/commands/complement_seq.rb +117 -0
- data/lib/BioDSL/commands/count.rb +135 -0
- data/lib/BioDSL/commands/count_values.rb +149 -0
- data/lib/BioDSL/commands/degap_seq.rb +253 -0
- data/lib/BioDSL/commands/dereplicate_seq.rb +168 -0
- data/lib/BioDSL/commands/dump.rb +157 -0
- data/lib/BioDSL/commands/filter_rrna.rb +239 -0
- data/lib/BioDSL/commands/genecall.rb +237 -0
- data/lib/BioDSL/commands/grab.rb +535 -0
- data/lib/BioDSL/commands/index_taxonomy.rb +226 -0
- data/lib/BioDSL/commands/mask_seq.rb +175 -0
- data/lib/BioDSL/commands/mean_scores.rb +168 -0
- data/lib/BioDSL/commands/merge_pair_seq.rb +175 -0
- data/lib/BioDSL/commands/merge_table.rb +225 -0
- data/lib/BioDSL/commands/merge_values.rb +113 -0
- data/lib/BioDSL/commands/plot_heatmap.rb +233 -0
- data/lib/BioDSL/commands/plot_histogram.rb +306 -0
- data/lib/BioDSL/commands/plot_matches.rb +282 -0
- data/lib/BioDSL/commands/plot_residue_distribution.rb +278 -0
- data/lib/BioDSL/commands/plot_scores.rb +285 -0
- data/lib/BioDSL/commands/random.rb +153 -0
- data/lib/BioDSL/commands/read_fasta.rb +222 -0
- data/lib/BioDSL/commands/read_fastq.rb +414 -0
- data/lib/BioDSL/commands/read_table.rb +329 -0
- data/lib/BioDSL/commands/reverse_seq.rb +113 -0
- data/lib/BioDSL/commands/slice_align.rb +400 -0
- data/lib/BioDSL/commands/slice_seq.rb +151 -0
- data/lib/BioDSL/commands/sort.rb +223 -0
- data/lib/BioDSL/commands/split_pair_seq.rb +220 -0
- data/lib/BioDSL/commands/split_values.rb +165 -0
- data/lib/BioDSL/commands/trim_primer.rb +314 -0
- data/lib/BioDSL/commands/trim_seq.rb +192 -0
- data/lib/BioDSL/commands/uchime_ref.rb +170 -0
- data/lib/BioDSL/commands/uclust.rb +286 -0
- data/lib/BioDSL/commands/unique_values.rb +145 -0
- data/lib/BioDSL/commands/usearch_global.rb +171 -0
- data/lib/BioDSL/commands/usearch_local.rb +171 -0
- data/lib/BioDSL/commands/write_fasta.rb +207 -0
- data/lib/BioDSL/commands/write_fastq.rb +191 -0
- data/lib/BioDSL/commands/write_table.rb +419 -0
- data/lib/BioDSL/commands/write_tree.rb +167 -0
- data/lib/BioDSL/commands.rb +31 -0
- data/lib/BioDSL/config.rb +55 -0
- data/lib/BioDSL/csv.rb +307 -0
- data/lib/BioDSL/debug.rb +42 -0
- data/lib/BioDSL/fasta.rb +133 -0
- data/lib/BioDSL/fastq.rb +77 -0
- data/lib/BioDSL/filesys.rb +137 -0
- data/lib/BioDSL/fork.rb +145 -0
- data/lib/BioDSL/hamming.rb +128 -0
- data/lib/BioDSL/helpers/aux_helper.rb +44 -0
- data/lib/BioDSL/helpers/email_helper.rb +66 -0
- data/lib/BioDSL/helpers/history_helper.rb +40 -0
- data/lib/BioDSL/helpers/log_helper.rb +55 -0
- data/lib/BioDSL/helpers/options_helper.rb +405 -0
- data/lib/BioDSL/helpers/status_helper.rb +132 -0
- data/lib/BioDSL/helpers.rb +35 -0
- data/lib/BioDSL/html_report.rb +200 -0
- data/lib/BioDSL/math.rb +55 -0
- data/lib/BioDSL/mummer.rb +216 -0
- data/lib/BioDSL/pipeline.rb +354 -0
- data/lib/BioDSL/seq/ambiguity.rb +66 -0
- data/lib/BioDSL/seq/assemble.rb +240 -0
- data/lib/BioDSL/seq/backtrack.rb +252 -0
- data/lib/BioDSL/seq/digest.rb +99 -0
- data/lib/BioDSL/seq/dynamic.rb +263 -0
- data/lib/BioDSL/seq/homopolymer.rb +59 -0
- data/lib/BioDSL/seq/kmer.rb +293 -0
- data/lib/BioDSL/seq/levenshtein.rb +113 -0
- data/lib/BioDSL/seq/translate.rb +109 -0
- data/lib/BioDSL/seq/trim.rb +188 -0
- data/lib/BioDSL/seq.rb +742 -0
- data/lib/BioDSL/serializer.rb +98 -0
- data/lib/BioDSL/stream.rb +113 -0
- data/lib/BioDSL/taxonomy.rb +691 -0
- data/lib/BioDSL/test.rb +42 -0
- data/lib/BioDSL/tmp_dir.rb +68 -0
- data/lib/BioDSL/usearch.rb +301 -0
- data/lib/BioDSL/verbose.rb +42 -0
- data/lib/BioDSL/version.rb +31 -0
- data/lib/BioDSL.rb +81 -0
- data/test/BioDSL/commands/test_add_key.rb +105 -0
- data/test/BioDSL/commands/test_align_seq_mothur.rb +99 -0
- data/test/BioDSL/commands/test_analyze_residue_distribution.rb +134 -0
- data/test/BioDSL/commands/test_assemble_pairs.rb +459 -0
- data/test/BioDSL/commands/test_assemble_seq_idba.rb +50 -0
- data/test/BioDSL/commands/test_assemble_seq_ray.rb +51 -0
- data/test/BioDSL/commands/test_assemble_seq_spades.rb +50 -0
- data/test/BioDSL/commands/test_classify_seq.rb +50 -0
- data/test/BioDSL/commands/test_classify_seq_mothur.rb +59 -0
- data/test/BioDSL/commands/test_clip_primer.rb +377 -0
- data/test/BioDSL/commands/test_cluster_otus.rb +128 -0
- data/test/BioDSL/commands/test_collapse_otus.rb +81 -0
- data/test/BioDSL/commands/test_collect_otus.rb +82 -0
- data/test/BioDSL/commands/test_complement_seq.rb +78 -0
- data/test/BioDSL/commands/test_count.rb +103 -0
- data/test/BioDSL/commands/test_count_values.rb +85 -0
- data/test/BioDSL/commands/test_degap_seq.rb +96 -0
- data/test/BioDSL/commands/test_dereplicate_seq.rb +92 -0
- data/test/BioDSL/commands/test_dump.rb +109 -0
- data/test/BioDSL/commands/test_filter_rrna.rb +128 -0
- data/test/BioDSL/commands/test_genecall.rb +50 -0
- data/test/BioDSL/commands/test_grab.rb +398 -0
- data/test/BioDSL/commands/test_index_taxonomy.rb +62 -0
- data/test/BioDSL/commands/test_mask_seq.rb +98 -0
- data/test/BioDSL/commands/test_mean_scores.rb +111 -0
- data/test/BioDSL/commands/test_merge_pair_seq.rb +115 -0
- data/test/BioDSL/commands/test_merge_table.rb +131 -0
- data/test/BioDSL/commands/test_merge_values.rb +83 -0
- data/test/BioDSL/commands/test_plot_heatmap.rb +185 -0
- data/test/BioDSL/commands/test_plot_histogram.rb +194 -0
- data/test/BioDSL/commands/test_plot_matches.rb +157 -0
- data/test/BioDSL/commands/test_plot_residue_distribution.rb +309 -0
- data/test/BioDSL/commands/test_plot_scores.rb +308 -0
- data/test/BioDSL/commands/test_random.rb +88 -0
- data/test/BioDSL/commands/test_read_fasta.rb +229 -0
- data/test/BioDSL/commands/test_read_fastq.rb +552 -0
- data/test/BioDSL/commands/test_read_table.rb +327 -0
- data/test/BioDSL/commands/test_reverse_seq.rb +79 -0
- data/test/BioDSL/commands/test_slice_align.rb +218 -0
- data/test/BioDSL/commands/test_slice_seq.rb +131 -0
- data/test/BioDSL/commands/test_sort.rb +128 -0
- data/test/BioDSL/commands/test_split_pair_seq.rb +164 -0
- data/test/BioDSL/commands/test_split_values.rb +95 -0
- data/test/BioDSL/commands/test_trim_primer.rb +329 -0
- data/test/BioDSL/commands/test_trim_seq.rb +150 -0
- data/test/BioDSL/commands/test_uchime_ref.rb +113 -0
- data/test/BioDSL/commands/test_uclust.rb +139 -0
- data/test/BioDSL/commands/test_unique_values.rb +98 -0
- data/test/BioDSL/commands/test_usearch_global.rb +123 -0
- data/test/BioDSL/commands/test_usearch_local.rb +125 -0
- data/test/BioDSL/commands/test_write_fasta.rb +159 -0
- data/test/BioDSL/commands/test_write_fastq.rb +166 -0
- data/test/BioDSL/commands/test_write_table.rb +411 -0
- data/test/BioDSL/commands/test_write_tree.rb +122 -0
- data/test/BioDSL/helpers/test_options_helper.rb +272 -0
- data/test/BioDSL/seq/test_assemble.rb +98 -0
- data/test/BioDSL/seq/test_backtrack.rb +176 -0
- data/test/BioDSL/seq/test_digest.rb +71 -0
- data/test/BioDSL/seq/test_dynamic.rb +133 -0
- data/test/BioDSL/seq/test_homopolymer.rb +58 -0
- data/test/BioDSL/seq/test_kmer.rb +134 -0
- data/test/BioDSL/seq/test_translate.rb +75 -0
- data/test/BioDSL/seq/test_trim.rb +101 -0
- data/test/BioDSL/test_cary.rb +176 -0
- data/test/BioDSL/test_command.rb +45 -0
- data/test/BioDSL/test_csv.rb +514 -0
- data/test/BioDSL/test_debug.rb +42 -0
- data/test/BioDSL/test_fasta.rb +154 -0
- data/test/BioDSL/test_fastq.rb +46 -0
- data/test/BioDSL/test_filesys.rb +145 -0
- data/test/BioDSL/test_fork.rb +85 -0
- data/test/BioDSL/test_math.rb +41 -0
- data/test/BioDSL/test_mummer.rb +79 -0
- data/test/BioDSL/test_pipeline.rb +187 -0
- data/test/BioDSL/test_seq.rb +790 -0
- data/test/BioDSL/test_serializer.rb +72 -0
- data/test/BioDSL/test_stream.rb +55 -0
- data/test/BioDSL/test_taxonomy.rb +336 -0
- data/test/BioDSL/test_test.rb +42 -0
- data/test/BioDSL/test_tmp_dir.rb +58 -0
- data/test/BioDSL/test_usearch.rb +33 -0
- data/test/BioDSL/test_verbose.rb +42 -0
- data/test/helper.rb +82 -0
- data/www/command.html.haml +14 -0
- data/www/css.html.haml +55 -0
- data/www/input_files.html.haml +3 -0
- data/www/layout.html.haml +12 -0
- data/www/output_files.html.haml +3 -0
- data/www/overview.html.haml +15 -0
- data/www/pipeline.html.haml +4 -0
- data/www/png.html.haml +2 -0
- data/www/status.html.haml +9 -0
- data/www/time.html.haml +11 -0
- metadata +503 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..')
|
3
|
+
|
4
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
5
|
+
# #
|
6
|
+
# Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
|
7
|
+
# #
|
8
|
+
# This program is free software; you can redistribute it and/or #
|
9
|
+
# modify it under the terms of the GNU General Public License #
|
10
|
+
# as published by the Free Software Foundation; either version 2 #
|
11
|
+
# of the License, or (at your option) any later version. #
|
12
|
+
# #
|
13
|
+
# This program is distributed in the hope that it will be useful, #
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
16
|
+
# GNU General Public License for more details. #
|
17
|
+
# #
|
18
|
+
# You should have received a copy of the GNU General Public License #
|
19
|
+
# along with this program; if not, write to the Free Software #
|
20
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
|
21
|
+
# #
|
22
|
+
# http://www.gnu.org/copyleft/gpl.html #
|
23
|
+
# #
|
24
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
25
|
+
# #
|
26
|
+
# This software is part of BioDSL (www.BioDSL.org). #
|
27
|
+
# #
|
28
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
29
|
+
|
30
|
+
require 'test/helper'
|
31
|
+
|
32
|
+
class TestSerializer < Test::Unit::TestCase
|
33
|
+
def setup
|
34
|
+
@records = [
|
35
|
+
{"foo" => 1},
|
36
|
+
{"bar" => 2}
|
37
|
+
]
|
38
|
+
end
|
39
|
+
|
40
|
+
test "BioDSL::Serializer with no block raises" do
|
41
|
+
assert_raise(BioDSL::SerializerError) { BioDSL::Serializer.new("foo") }
|
42
|
+
end
|
43
|
+
|
44
|
+
test "BioDSL::Serializer returns correctly" do
|
45
|
+
require 'tempfile'
|
46
|
+
|
47
|
+
file = Tempfile.new("serializer")
|
48
|
+
|
49
|
+
begin
|
50
|
+
File.open(file, 'wb') do |io|
|
51
|
+
BioDSL::Serializer.new(io) do |s|
|
52
|
+
@records.each { |r| s << r }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
result = []
|
57
|
+
|
58
|
+
File.open(file, 'rb') do |io|
|
59
|
+
BioDSL::Serializer.new(io) do |s|
|
60
|
+
s.each do |record|
|
61
|
+
result << record
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
assert_equal(@records, result)
|
67
|
+
ensure
|
68
|
+
file.close
|
69
|
+
file.unlink
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..')
|
3
|
+
|
4
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
5
|
+
# #
|
6
|
+
# Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
|
7
|
+
# #
|
8
|
+
# This program is free software; you can redistribute it and/or #
|
9
|
+
# modify it under the terms of the GNU General Public License #
|
10
|
+
# as published by the Free Software Foundation; either version 2 #
|
11
|
+
# of the License, or (at your option) any later version. #
|
12
|
+
# #
|
13
|
+
# This program is distributed in the hope that it will be useful, #
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
16
|
+
# GNU General Public License for more details. #
|
17
|
+
# #
|
18
|
+
# You should have received a copy of the GNU General Public License #
|
19
|
+
# along with this program; if not, write to the Free Software #
|
20
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
|
21
|
+
# #
|
22
|
+
# http://www.gnu.org/copyleft/gpl.html #
|
23
|
+
# #
|
24
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
25
|
+
# #
|
26
|
+
# This software is part of BioDSL (www.BioDSL.org). #
|
27
|
+
# #
|
28
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
29
|
+
|
30
|
+
require 'test/helper'
|
31
|
+
|
32
|
+
class TestStream < Test::Unit::TestCase
|
33
|
+
def setup
|
34
|
+
@obj = {foo: "bar"}
|
35
|
+
@reader, @writer = BioDSL::Stream.pipe
|
36
|
+
end
|
37
|
+
|
38
|
+
def teardown
|
39
|
+
@reader.close unless @reader.closed?
|
40
|
+
@writer.close unless @writer.closed?
|
41
|
+
end
|
42
|
+
|
43
|
+
test "BioDSL::Stream.pipe writing and reading an object returns correctly" do
|
44
|
+
@writer.write @obj
|
45
|
+
@writer.close
|
46
|
+
assert_equal(@obj, @reader.read)
|
47
|
+
end
|
48
|
+
|
49
|
+
test "BioDSL::Stream.pipe writing and reading multiple object returns correctly" do
|
50
|
+
10.times { @writer.write @obj }
|
51
|
+
@writer.close
|
52
|
+
result = @reader.inject([]) { |memo, obj| memo << obj }
|
53
|
+
assert_equal(Array.new(10, @obj), result)
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,336 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..')
|
3
|
+
|
4
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
5
|
+
# #
|
6
|
+
# Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
|
7
|
+
# #
|
8
|
+
# This program is free software; you can redistribute it and/or #
|
9
|
+
# modify it under the terms of the GNU General Public License #
|
10
|
+
# as published by the Free Software Foundation; either version 2 #
|
11
|
+
# of the License, or (at your option) any later version. #
|
12
|
+
# #
|
13
|
+
# This program is distributed in the hope that it will be useful, #
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
16
|
+
# GNU General Public License for more details. #
|
17
|
+
# #
|
18
|
+
# You should have received a copy of the GNU General Public License #
|
19
|
+
# along with this program; if not, write to the Free Software #
|
20
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
|
21
|
+
# #
|
22
|
+
# http://www.gnu.org/copyleft/gpl.html #
|
23
|
+
# #
|
24
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
25
|
+
# #
|
26
|
+
# This software is part of BioDSL (www.BioDSL.org). #
|
27
|
+
# #
|
28
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
29
|
+
|
30
|
+
require 'test/helper'
|
31
|
+
|
32
|
+
class TestTaxonomy < Test::Unit::TestCase
|
33
|
+
def setup
|
34
|
+
@tmpdir = Dir.mktmpdir("Taxonomy")
|
35
|
+
|
36
|
+
@index = BioDSL::Taxonomy::Index.new(kmer_size: 3, step_size: 1, output_dir: @tmpdir, prefix: "test")
|
37
|
+
|
38
|
+
@index2 = BioDSL::Taxonomy::Index.new(kmer_size: 3, step_size: 1, output_dir: @tmpdir, prefix: "test")
|
39
|
+
@index2.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#;O#;F#;G#;S#", seq: "aaga"))
|
40
|
+
@index2.add(BioDSL::Seq.new(seq_name: "K#b;P#f;C#;O#;F#;G#;S#", seq: "aagu"))
|
41
|
+
@index2.add(BioDSL::Seq.new(seq_name: "K#b;P#;C#;O#;F#;G#;S#", seq: "aag"))
|
42
|
+
@index2.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#g;O#;F#;G#;S#", seq: "aagag"))
|
43
|
+
|
44
|
+
@index3 = BioDSL::Taxonomy::Index.new(kmer_size: 3, step_size: 1, output_dir: @tmpdir, prefix: "test")
|
45
|
+
@index3.add(BioDSL::Seq.new(seq_name: "K#a;P#b;C#;O#;F#;G#;S#", seq: "aagc"))
|
46
|
+
@index3.add(BioDSL::Seq.new(seq_name: "K#a;P#c;C#d;O#;F#;G#;S#", seq: "aagag"))
|
47
|
+
@index3.add(BioDSL::Seq.new(seq_name: "K#a;P#c;C#d_1;O#;F#;G#;S#", seq: "aagag"))
|
48
|
+
@index3.add(BioDSL::Seq.new(seq_name: "K#a;P#c;C#d_1_2;O#;F#;G#;S#", seq: "aagac"))
|
49
|
+
@index3.save
|
50
|
+
|
51
|
+
@tree_file = File.join(@tmpdir, "test_tax_index.dat")
|
52
|
+
@kmer_file = File.join(@tmpdir, "test_kmer_index.dat")
|
53
|
+
end
|
54
|
+
|
55
|
+
def teardown
|
56
|
+
FileUtils.rm_r @tmpdir
|
57
|
+
end
|
58
|
+
|
59
|
+
test "BioDSL::Taxonomy::Index#new without options[:kmer_size] raises" do
|
60
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Index.new(step_size: 1, output_dir: @tmpdir, prefix: "test") }
|
61
|
+
end
|
62
|
+
|
63
|
+
test "BioDSL::Taxonomy::Index#new without options[:step_size] raises" do
|
64
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Index.new(kmer_size: 3, output_dir: @tmpdir, prefix: "test") }
|
65
|
+
end
|
66
|
+
|
67
|
+
test "BioDSL::Taxonomy::Index#new without options[:output_dir] raises" do
|
68
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Index.new(kmer_size: 3, step_size: 1, prefix: "test") }
|
69
|
+
end
|
70
|
+
|
71
|
+
test "BioDSL::Taxonomy::Index#new without options[:prefix] raises" do
|
72
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Index.new(kmer_size: 3, step_size: 1, output_dir: @tmpdir) }
|
73
|
+
end
|
74
|
+
|
75
|
+
test "BioDSL::Taxonomy::Index#add with bad header with wrong number of tax levels raises" do
|
76
|
+
assert_raise(BioDSL::TaxonomyError) { @index.add(BioDSL::Seq.new(seq_name: "K#1;P#2", seq: "aaga")) }
|
77
|
+
end
|
78
|
+
|
79
|
+
test "BioDSL::Taxonomy::Index#add with bad header with wrong tax order raises" do
|
80
|
+
assert_raise(BioDSL::TaxonomyError) { @index.add(BioDSL::Seq.new(seq_name: "K#1;C#;P#3;O#;F#;G#;S#", seq: "aaga")) }
|
81
|
+
end
|
82
|
+
|
83
|
+
test "BioDSL::Taxonomy::Index#add with bad header with gapped info raises" do
|
84
|
+
assert_raise(BioDSL::TaxonomyError) { @index.add(BioDSL::Seq.new(seq_name: "K#1;P#;C#3;O#;F#;G#;S#", seq: "aaga")) }
|
85
|
+
end
|
86
|
+
|
87
|
+
test "BioDSL::Taxonomy::Index#add with OK header don't raise" do
|
88
|
+
assert_nothing_raised { @index.add(BioDSL::Seq.new(seq_name: "K#;P#;C#;O#;F#;G#;S#", seq: "aaga")) }
|
89
|
+
assert_nothing_raised { @index.add(BioDSL::Seq.new(seq_name: "K#1;P#2;C#3;O#4;F#5;G#6;S#7", seq: "aaga")) }
|
90
|
+
end
|
91
|
+
|
92
|
+
# '00' then oligo << 'a'
|
93
|
+
# '01' then oligo << 't'
|
94
|
+
# '10' then oligo << 'c'
|
95
|
+
# '11' then oligo << 'g'
|
96
|
+
|
97
|
+
test "BioDSL::Taxonomy::Index#add with empty tree returns correctly" do
|
98
|
+
assert_equal(1, @index.size)
|
99
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#;O#;F#;G#;S#", seq: "aaga"))
|
100
|
+
assert_equal(3, @index.size)
|
101
|
+
assert_equal("root", @index.get_node(0).name)
|
102
|
+
assert_equal("b", @index.get_node(1).name)
|
103
|
+
assert_equal("e", @index.get_node(2).name)
|
104
|
+
assert_equal([], @index.get_node(0).kmers.to_a)
|
105
|
+
assert_equal([], @index.get_node(1).kmers.to_a)
|
106
|
+
assert_equal([3, 12], @index.get_node(2).kmers.to_a) # aag=000011=3, aga=001100=12
|
107
|
+
end
|
108
|
+
|
109
|
+
test "BioDSL::Taxonomy::Index#add with edge split returns correctly" do
|
110
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#;O#;F#;G#;S#", seq: "aaga"))
|
111
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#f;C#;O#;F#;G#;S#", seq: "aagu"))
|
112
|
+
assert_equal(4, @index.size)
|
113
|
+
assert_equal("root", @index.get_node(0).name)
|
114
|
+
assert_equal("b", @index.get_node(1).name)
|
115
|
+
assert_equal("e", @index.get_node(2).name)
|
116
|
+
assert_equal("f", @index.get_node(3).name)
|
117
|
+
assert_equal([], @index.get_node(0).kmers.to_a)
|
118
|
+
assert_equal([], @index.get_node(1).kmers.to_a)
|
119
|
+
assert_equal([3, 12], @index.get_node(2).kmers.to_a) # aag=000011=3, aga=001100=12
|
120
|
+
assert_equal([3, 13], @index.get_node(3).kmers.to_a) # aag=000011=3, agu=001101=13
|
121
|
+
end
|
122
|
+
|
123
|
+
test "BioDSL::Taxonomy::Index#add to existing non-leaf node returns correctly" do
|
124
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#;O#;F#;G#;S#", seq: "aaga"))
|
125
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#f;C#;O#;F#;G#;S#", seq: "aagu"))
|
126
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#;C#;O#;F#;G#;S#", seq: "aag"))
|
127
|
+
assert_equal(4, @index.size)
|
128
|
+
assert_equal("root", @index.get_node(0).name)
|
129
|
+
assert_equal("b", @index.get_node(1).name)
|
130
|
+
assert_equal("e", @index.get_node(2).name)
|
131
|
+
assert_equal("f", @index.get_node(3).name)
|
132
|
+
assert_equal([], @index.get_node(0).kmers.to_a)
|
133
|
+
assert_equal([3], @index.get_node(1).kmers.to_a) # aag=000011=3
|
134
|
+
assert_equal([3, 12], @index.get_node(2).kmers.to_a) # aag=000011=3, aga=001100=12
|
135
|
+
assert_equal([3, 13], @index.get_node(3).kmers.to_a) # aag=000011=3, agu=001101=13
|
136
|
+
end
|
137
|
+
|
138
|
+
test "BioDSL::Taxonomy::Index#add exteding existing leaf node returns correctly" do
|
139
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#;O#;F#;G#;S#", seq: "aaga"))
|
140
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#f;C#;O#;F#;G#;S#", seq: "aagu"))
|
141
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#;C#;O#;F#;G#;S#", seq: "aag"))
|
142
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#g;O#;F#;G#;S#", seq: "aagag"))
|
143
|
+
assert_equal(5, @index.size)
|
144
|
+
assert_equal("root", @index.get_node(0).name)
|
145
|
+
assert_equal("b", @index.get_node(1).name)
|
146
|
+
assert_equal("e", @index.get_node(2).name)
|
147
|
+
assert_equal("f", @index.get_node(3).name)
|
148
|
+
assert_equal("g", @index.get_node(4).name)
|
149
|
+
assert_equal([], @index.get_node(0).kmers.to_a.sort)
|
150
|
+
assert_equal([3], @index.get_node(1).kmers.to_a.sort) # aag=000011=3
|
151
|
+
assert_equal([3, 12], @index.get_node(2).kmers.to_a.sort) # aag=000011=3, aga=001100=12
|
152
|
+
assert_equal([3, 13], @index.get_node(3).kmers.to_a.sort) # aag=000011=3, agu=001101=13
|
153
|
+
assert_equal([3, 12, 51], @index.get_node(4).kmers.to_a.sort) # aag=000011=3, aga=001101=12, gag=110011=51
|
154
|
+
end
|
155
|
+
|
156
|
+
test "BioDSL::Taxonomy::Index#tree_union returns correctly" do
|
157
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#;O#;F#;G#;S#", seq: "aaga"))
|
158
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#f;C#;O#;F#;G#;S#", seq: "aagu"))
|
159
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#;C#;O#;F#;G#;S#", seq: "aag"))
|
160
|
+
@index.add(BioDSL::Seq.new(seq_name: "K#b;P#e;C#g;O#;F#;G#;S#", seq: "aagag"))
|
161
|
+
@index.tree_union
|
162
|
+
assert_equal(5, @index.size)
|
163
|
+
assert_equal("root", @index.get_node(0).name)
|
164
|
+
assert_equal("b", @index.get_node(1).name)
|
165
|
+
assert_equal("e", @index.get_node(2).name)
|
166
|
+
assert_equal("f", @index.get_node(3).name)
|
167
|
+
assert_equal("g", @index.get_node(4).name)
|
168
|
+
assert_equal([3, 12, 13, 51], @index.get_node(0).kmers.to_a.sort)
|
169
|
+
assert_equal([3, 12, 13, 51], @index.get_node(1).kmers.to_a.sort)
|
170
|
+
assert_equal([3, 12, 51], @index.get_node(2).kmers.to_a.sort)
|
171
|
+
assert_equal([3, 13], @index.get_node(3).kmers.to_a.sort)
|
172
|
+
assert_equal([3, 12, 51], @index.get_node(4).kmers.to_a.sort)
|
173
|
+
end
|
174
|
+
|
175
|
+
test "BioDSL::Taxonomy::Index#save outputs correct tax tree inxex" do
|
176
|
+
@index2.save
|
177
|
+
|
178
|
+
expected = <<EOD
|
179
|
+
#SEQ_ID\tNODE_ID\tLEVEL\tNAME\tPARENT_ID
|
180
|
+
\t0\tr\troot\t
|
181
|
+
0\t1\tk\tb\t0
|
182
|
+
1\t3\tp\tf\t1
|
183
|
+
0\t2\tp\te\t1
|
184
|
+
3\t4\tc\tg\t2
|
185
|
+
EOD
|
186
|
+
|
187
|
+
assert_equal(expected, File.read(@tree_file))
|
188
|
+
end
|
189
|
+
|
190
|
+
# r 0
|
191
|
+
# /
|
192
|
+
# k 1
|
193
|
+
# / \
|
194
|
+
# p 2 3
|
195
|
+
# /
|
196
|
+
# c 4
|
197
|
+
#
|
198
|
+
# aag=000011=3
|
199
|
+
# aga=001101=12
|
200
|
+
# agu=001101=13
|
201
|
+
# gag=110011=51
|
202
|
+
#
|
203
|
+
# node 0 - [3, 12, 13, 51]
|
204
|
+
# node 1 - [3, 12, 13, 51]
|
205
|
+
# node 2 - [3, 12, 51]
|
206
|
+
# node 3 - [3, 13]
|
207
|
+
# node 4 - [3, 12, 51]
|
208
|
+
test "BioDSL::Taxonomy::Index#save outputs correct kmer index" do
|
209
|
+
@index2.save
|
210
|
+
|
211
|
+
expected = <<EOD
|
212
|
+
#LEVEL\tKMER\tNODES
|
213
|
+
r\t3\t0
|
214
|
+
r\t12\t0
|
215
|
+
r\t13\t0
|
216
|
+
r\t51\t0
|
217
|
+
k\t3\t1
|
218
|
+
k\t12\t1
|
219
|
+
k\t13\t1
|
220
|
+
k\t51\t1
|
221
|
+
p\t3\t2;3
|
222
|
+
p\t12\t2
|
223
|
+
p\t13\t3
|
224
|
+
p\t51\t2
|
225
|
+
c\t3\t4
|
226
|
+
c\t12\t4
|
227
|
+
c\t51\t4
|
228
|
+
EOD
|
229
|
+
|
230
|
+
assert_equal(expected, File.read(@kmer_file))
|
231
|
+
end
|
232
|
+
|
233
|
+
test "BioDSL::Taxonomy::Search#new without options[:kmer_size] raises" do
|
234
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Search.new(step_size: 1, dir: @tmpdir, prefix: "test", coverage: 0.99, hits_max: 5, consensus: 0.5) }
|
235
|
+
end
|
236
|
+
|
237
|
+
test "BioDSL::Taxonomy::Search#new without options[:step_size] raises" do
|
238
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Search.new(kmer_size: 3, dir: @tmpdir, prefix: "test", coverage: 0.99, hits_max: 5, consensus: 0.5) }
|
239
|
+
end
|
240
|
+
|
241
|
+
test "BioDSL::Taxonomy::Search#new without options[:dir] raises" do
|
242
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, prefix: "test", coverage: 0.99, hits_max: 5, consensus: 0.5) }
|
243
|
+
end
|
244
|
+
|
245
|
+
test "BioDSL::Taxonomy::Search#new without options[:prefix] raises" do
|
246
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, coverage: 0.99, hits_max: 5, consensus: 0.5) }
|
247
|
+
end
|
248
|
+
|
249
|
+
test "BioDSL::Taxonomy::Search#new without options[:coverage] raises" do
|
250
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", hits_max: 5, consensus: 0.5) }
|
251
|
+
end
|
252
|
+
|
253
|
+
test "BioDSL::Taxonomy::Search#new without options[:hits_max] raises" do
|
254
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", coverage: 0.99, consensus: 0.5) }
|
255
|
+
end
|
256
|
+
|
257
|
+
test "BioDSL::Taxonomy::Search#new without options[:consensus] raises" do
|
258
|
+
assert_raise(BioDSL::TaxonomyError) { BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", coverage: 0.99, hits_max: 5) }
|
259
|
+
end
|
260
|
+
|
261
|
+
# R r
|
262
|
+
# |
|
263
|
+
# K a
|
264
|
+
# / \
|
265
|
+
# P c b
|
266
|
+
# / | \
|
267
|
+
# C d | d_1_2
|
268
|
+
# d_1
|
269
|
+
#
|
270
|
+
# R: aag: r
|
271
|
+
# R: aga: r
|
272
|
+
# R: gag: r
|
273
|
+
# R: gac: r
|
274
|
+
# R: agc: r
|
275
|
+
# K: aag: a
|
276
|
+
# K: aga: a
|
277
|
+
# K: gag: a
|
278
|
+
# K: gac: a
|
279
|
+
# K: agc: a
|
280
|
+
# P: aag: c
|
281
|
+
# P: aga: c
|
282
|
+
# P: gag: c
|
283
|
+
# P: gac: c
|
284
|
+
# P: agc: b
|
285
|
+
# C: aag: d, d_1, d_1_2
|
286
|
+
# C: aga: d, d_1, d_1_2
|
287
|
+
# C: gag: d, d_1
|
288
|
+
# C: gac: f
|
289
|
+
test "BioDSL::Taxonomy::Search#execute return correctly" do
|
290
|
+
@search = BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", coverage: 1.0, hits_max: 5, consensus: 0.0)
|
291
|
+
result = @search.execute(BioDSL::Seq.new(seq_name: "test", seq: "aaga"))
|
292
|
+
|
293
|
+
assert_equal(3, result.hits)
|
294
|
+
assert_equal("K#a(100);P#c(100);C#d 1 2(100/66/33)", result.taxonomy)
|
295
|
+
end
|
296
|
+
|
297
|
+
test "BioDSL::Taxonomy::Search#execute with coverage limit returns correctly" do
|
298
|
+
@search = BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", coverage: 1.0, hits_max: 5, consensus: 0.0)
|
299
|
+
result = @search.execute(BioDSL::Seq.new(seq_name: "test", seq: "aagat"))
|
300
|
+
|
301
|
+
assert_equal(0, result.hits)
|
302
|
+
assert_equal("Unclassified", result.taxonomy)
|
303
|
+
end
|
304
|
+
|
305
|
+
test "BioDSL::Taxonomy::Search#execute with hits_max limit returns correctly" do
|
306
|
+
@search = BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", coverage: 0.0, hits_max: 2, consensus: 0.0)
|
307
|
+
result = @search.execute(BioDSL::Seq.new(seq_name: "test", seq: "aaga"))
|
308
|
+
|
309
|
+
assert_equal(2, result.hits)
|
310
|
+
assert_equal("K#a(100);P#c(100);C#d 1(100/50)", result.taxonomy)
|
311
|
+
end
|
312
|
+
|
313
|
+
test "BioDSL::Taxonomy::Search#execute with consensus returns correctly" do
|
314
|
+
@search = BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", coverage: 0.0, hits_max: 5, consensus: 0.34)
|
315
|
+
result = @search.execute(BioDSL::Seq.new(seq_name: "test", seq: "aaga"))
|
316
|
+
|
317
|
+
assert_equal(3, result.hits)
|
318
|
+
assert_equal("K#a(100);P#c(100);C#d 1(100/66)", result.taxonomy)
|
319
|
+
end
|
320
|
+
|
321
|
+
test "BioDSL::Taxonomy::Search#execute with best_only returns correctly" do
|
322
|
+
@search = BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", coverage: 0.0, hits_max: 5, consensus: 0.0, best_only: true)
|
323
|
+
result = @search.execute(BioDSL::Seq.new(seq_name: "test", seq: "aagag"))
|
324
|
+
|
325
|
+
assert_equal(2, result.hits)
|
326
|
+
assert_equal("K#a(100);P#c(100);C#d 1(100/50)", result.taxonomy)
|
327
|
+
end
|
328
|
+
|
329
|
+
test "BioDSL::Taxonomy::Search#execute with no hits a C level moves to P level and returns correctly" do
|
330
|
+
@search = BioDSL::Taxonomy::Search.new(kmer_size: 3, step_size: 1, dir: @tmpdir, prefix: "test", coverage: 0.0, hits_max: 5, consensus: 0.0)
|
331
|
+
result = @search.execute(BioDSL::Seq.new(seq_name: "test", seq: "agc"))
|
332
|
+
|
333
|
+
assert_equal(1, result.hits)
|
334
|
+
assert_equal("K#a(100);P#b(100)", result.taxonomy)
|
335
|
+
end
|
336
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..')
|
3
|
+
|
4
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
5
|
+
# #
|
6
|
+
# Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
|
7
|
+
# #
|
8
|
+
# This program is free software; you can redistribute it and/or #
|
9
|
+
# modify it under the terms of the GNU General Public License #
|
10
|
+
# as published by the Free Software Foundation; either version 2 #
|
11
|
+
# of the License, or (at your option) any later version. #
|
12
|
+
# #
|
13
|
+
# This program is distributed in the hope that it will be useful, #
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
16
|
+
# GNU General Public License for more details. #
|
17
|
+
# #
|
18
|
+
# You should have received a copy of the GNU General Public License #
|
19
|
+
# along with this program; if not, write to the Free Software #
|
20
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
|
21
|
+
# #
|
22
|
+
# http://www.gnu.org/copyleft/gpl.html #
|
23
|
+
# #
|
24
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
25
|
+
# #
|
26
|
+
# This software is part of BioDSL (www.BioDSL.org). #
|
27
|
+
# #
|
28
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
29
|
+
|
30
|
+
require 'test/helper'
|
31
|
+
|
32
|
+
class TestTest < Test::Unit::TestCase
|
33
|
+
def teardown
|
34
|
+
BioDSL::test = false
|
35
|
+
end
|
36
|
+
|
37
|
+
test "BioDSL::test returns correctly" do
|
38
|
+
BioDSL::test = true
|
39
|
+
assert_equal(true, BioDSL::test)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', '..')
|
3
|
+
|
4
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
5
|
+
# #
|
6
|
+
# Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
|
7
|
+
# #
|
8
|
+
# This program is free software; you can redistribute it and/or #
|
9
|
+
# modify it under the terms of the GNU General Public License #
|
10
|
+
# as published by the Free Software Foundation; either version 2 #
|
11
|
+
# of the License, or (at your option) any later version. #
|
12
|
+
# #
|
13
|
+
# This program is distributed in the hope that it will be useful, #
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
16
|
+
# GNU General Public License for more details. #
|
17
|
+
# #
|
18
|
+
# You should have received a copy of the GNU General Public License #
|
19
|
+
# along with this program; if not, write to the Free Software #
|
20
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, #
|
21
|
+
# USA. #
|
22
|
+
# #
|
23
|
+
# http://www.gnu.org/copyleft/gpl.html #
|
24
|
+
# #
|
25
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
26
|
+
# #
|
27
|
+
# This software is part of BioDSL (www.github.com/maasha/BioDSL). #
|
28
|
+
# #
|
29
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
30
|
+
|
31
|
+
require 'test/helper'
|
32
|
+
|
33
|
+
# Test class for TmpDir
|
34
|
+
class TmpDirTest < Test::Unit::TestCase
|
35
|
+
test 'BioDSL::TmpDir#create with no files returns correctly' do
|
36
|
+
dir = ''
|
37
|
+
|
38
|
+
BioDSL::TmpDir.create do |tmp_dir|
|
39
|
+
dir = tmp_dir
|
40
|
+
assert_true(File.directory? dir)
|
41
|
+
end
|
42
|
+
|
43
|
+
assert_false(File.directory? dir)
|
44
|
+
end
|
45
|
+
|
46
|
+
test 'BioDSL::TmpDir#create with files returns correctly' do
|
47
|
+
dir = ''
|
48
|
+
|
49
|
+
BioDSL::TmpDir.create('foo', 'bar') do |foo, bar, tmp_dir|
|
50
|
+
dir = tmp_dir
|
51
|
+
assert_true(File.directory? dir)
|
52
|
+
assert_equal(File.join(dir, 'foo'), foo)
|
53
|
+
assert_equal(File.join(dir, 'bar'), bar)
|
54
|
+
end
|
55
|
+
|
56
|
+
assert_false(File.directory? dir)
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..')
|
3
|
+
|
4
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
5
|
+
# #
|
6
|
+
# Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
|
7
|
+
# #
|
8
|
+
# This program is free software; you can redistribute it and/or #
|
9
|
+
# modify it under the terms of the GNU General Public License #
|
10
|
+
# as published by the Free Software Foundation; either version 2 #
|
11
|
+
# of the License, or (at your option) any later version. #
|
12
|
+
# #
|
13
|
+
# This program is distributed in the hope that it will be useful, #
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
16
|
+
# GNU General Public License for more details. #
|
17
|
+
# #
|
18
|
+
# You should have received a copy of the GNU General Public License #
|
19
|
+
# along with this program; if not, write to the Free Software #
|
20
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
|
21
|
+
# #
|
22
|
+
# http://www.gnu.org/copyleft/gpl.html #
|
23
|
+
# #
|
24
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
25
|
+
# #
|
26
|
+
# This software is part of BioDSL (www.BioDSL.org). #
|
27
|
+
# #
|
28
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
29
|
+
|
30
|
+
require 'test/helper'
|
31
|
+
|
32
|
+
class TestUsearch < Test::Unit::TestCase
|
33
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..')
|
3
|
+
|
4
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
5
|
+
# #
|
6
|
+
# Copyright (C) 2007-2015 Martin Asser Hansen (mail@maasha.dk). #
|
7
|
+
# #
|
8
|
+
# This program is free software; you can redistribute it and/or #
|
9
|
+
# modify it under the terms of the GNU General Public License #
|
10
|
+
# as published by the Free Software Foundation; either version 2 #
|
11
|
+
# of the License, or (at your option) any later version. #
|
12
|
+
# #
|
13
|
+
# This program is distributed in the hope that it will be useful, #
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
16
|
+
# GNU General Public License for more details. #
|
17
|
+
# #
|
18
|
+
# You should have received a copy of the GNU General Public License #
|
19
|
+
# along with this program; if not, write to the Free Software #
|
20
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #
|
21
|
+
# #
|
22
|
+
# http://www.gnu.org/copyleft/gpl.html #
|
23
|
+
# #
|
24
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
25
|
+
# #
|
26
|
+
# This software is part of BioDSL (www.BioDSL.org). #
|
27
|
+
# #
|
28
|
+
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< #
|
29
|
+
|
30
|
+
require 'test/helper'
|
31
|
+
|
32
|
+
class VerboseTest < Test::Unit::TestCase
|
33
|
+
def teardown
|
34
|
+
BioDSL::verbose = false
|
35
|
+
end
|
36
|
+
|
37
|
+
test "BioDSL::verbose returns correctly" do
|
38
|
+
BioDSL::verbose = true
|
39
|
+
assert_equal(true, BioDSL::verbose)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|