test/rbbt/test_packed_index.rb in rbbt-util-5.14.3 vs test/rbbt/test_packed_index.rb in rbbt-util-5.14.4

- old
+ new

@@ -1,28 +1,68 @@ require File.join(File.expand_path(File.dirname(__FILE__)), '..', 'test_helper.rb') require 'rbbt/packed_index' class TestPackedIndex < Test::Unit::TestCase - def test_index + def _test_index TmpFile.with_file do |tmpfile| pi = PackedIndex.new tmpfile, true, %w(i i 23s f f f f f) 100.times do |i| pi << [i, i+2, i.to_s * 10, rand, rand, rand, rand, rand] end pi << nil pi << nil pi.close - pi = PackedIndex.new tmpfile, false + pi = PackedIndex.new(tmpfile, false) Misc.benchmark(1000) do 100.times do |i| assert_equal i, pi[i][0] assert_equal i+2, pi[i][1] end end assert_equal nil, pi[100] assert_equal nil, pi[101] + end + end + def test_bgzip + + size = 1000000 + density = 0.1 + + access = [] + (size * density).to_i.times do + access << rand(size-1) + 1 + end + access.sort! + access.uniq! + + TmpFile.with_file do |tmpfile| + pi = PackedIndex.new tmpfile, true, %w(i i 23s f f f f f) + size.times do |i| + pi << [i, i+2, i.to_s * 10, rand, rand, rand, rand, rand] + end + pi << nil + pi << nil + pi.close + + pi = PackedIndex.new(tmpfile, false) + Misc.benchmark do + access.each do |point| + assert_equal point+2, pi[point][1] + end + end + + `bgzip #{tmpfile} ` + `mv #{tmpfile}.gz #{tmpfile}.bgz` + + pi = PackedIndex.new(tmpfile + '.bgz', false) + pi[0] + Misc.benchmark do + access.each do |point| + assert_equal point+2, pi[point][1] + end + end end end end