test/rbbt/util/tsv/test_index.rb in rbbt-util-3.2.0 vs test/rbbt/util/tsv/test_index.rb in rbbt-util-3.2.1
- old
+ new
@@ -126,11 +126,43 @@
tsv = tsv.slice ["Start", "End"]
tsv
end
- def test_sorted_index
+ def test_pos_index
+ content =<<-EOF
+#Id ValueA ValueB Pos
+row1 a|aa|aaa b 0|10
+row2 A B 30
+ EOF
+
+ TmpFile.with_file(content) do |filename|
+ tsv = TSV.new(File.open(filename), :double, :sep => /\s+/)
+ index = tsv.pos_index("Pos")
+ assert_equal ["row1"], index[10]
+ end
+ end
+
+
+ def test_range_index
+ content =<<-EOF
+#Id ValueA ValueB Pos1 Pos2
+row1 a|aa|aaa b 0|10 10|30
+row2 A B 30 35
+ EOF
+
+ TmpFile.with_file(content) do |filename|
+ tsv = TSV.new(File.open(filename), :double, :sep => /\s+/)
+ index = tsv.pos_index("Pos1")
+ assert_equal ["row1"], index[10]
+
+ index = tsv.range_index("Pos1", "Pos2")
+ assert_equal ["row1"], index[20]
+ end
+ end
+
+ def test_range_index2
data =<<-EOF
#ID:Range
#:012345678901234567890
a: ______
b: ______
@@ -140,49 +172,69 @@
f: ___
g: ____
EOF
TmpFile.with_file(data) do |datafile|
tsv = load_data(datafile)
- f = tsv.sorted_index
+ f = tsv.range_index("Start", "End")
assert_equal %w(), f[0].sort
assert_equal %w(b), f[1].sort
assert_equal %w(), f[20].sort
assert_equal %w(), f[(20..100)].sort
assert_equal %w(a b d), f[3].sort
assert_equal %w(a b c d e), f[(3..4)].sort
end
end
- def test_pos_index
- content =<<-EOF
-#Id ValueA ValueB Pos
-row1 a|aa|aaa b 0|10
-row2 A B 30
+ def test_range_index_persistent
+ data =<<-EOF
+#ID:Range
+#:012345678901234567890
+a: ______
+b: ______
+c: _______
+d: ____
+e: ______
+f: ___
+g: ____
EOF
+ TmpFile.with_file(data) do |datafile|
+ TmpFile.with_file(load_data(datafile)) do |tsvfile|
+ f = TSV.range_index(tsvfile, "Start", "End", :persistence => true)
- TmpFile.with_file(content) do |filename|
- tsv = TSV.new(File.open(filename), :double, :sep => /\s+/)
- index = tsv.pos_index("Pos", :memory, true)
- assert_equal ["row1"], index[10]
+ assert_equal %w(), f[0].sort
+ assert_equal %w(b), f[1].sort
+ assert_equal %w(), f[20].sort
+ assert_equal %w(), f[(20..100)].sort
+ assert_equal %w(a b d), f[3].sort
+ assert_equal %w(a b c d e), f[(3..4)].sort
+ end
end
end
-
- def test_range_index
- content =<<-EOF
-#Id ValueA ValueB Pos1 Pos2
-row1 a|aa|aaa b 0|10 10|30
-row2 A B 30 35
+ def test_range_index_persistent_with_filter
+ data =<<-EOF
+#ID:Range
+#:012345678901234567890
+a: ______
+b: ______
+c: _______
+d: ____
+e: ______
+f: ___
+g: ____
EOF
+ TmpFile.with_file(data) do |datafile|
+ TmpFile.with_file(load_data(datafile)) do |tsvfile|
+ f = TSV.range_index(tsvfile, "Start", "End", :filters => [["field:Start", "3"]])
- TmpFile.with_file(content) do |filename|
- tsv = TSV.new(File.open(filename), :double, :sep => /\s+/)
- index = tsv.pos_index("Pos1", :memory, true)
- assert_equal ["row1"], index[10]
-
- index = tsv.range_index("Pos1", "Pos2", :memory, true)
- assert_equal ["row1"], index[20]
+ assert_equal %w(), f[0].sort
+ assert_equal %w(), f[1].sort
+ assert_equal %w(), f[20].sort
+ assert_equal %w(), f[(20..100)].sort
+ assert_equal %w(a), f[3].sort
+ assert_equal %w(a), f[(3..4)].sort
+ end
end
end
end