Sha256: 775df75b96bfd38cc5bdceb401e5b4558bd0930ae87e35a1792397d46a3eb3bc

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

require 'test_helper'
require 'bloom_filter/bit_vector'

class BloomFilterBitVectorTest < Test::Unit::TestCase
  context "with a bit vector of size 16" do
    setup do
      @bit_vector = BloomFilter::BitVector.new(16)
    end
    
    should "return all 0s at first" do
      @bit_vector.size.times do |i|
        fail "returned #{@bit_vector[i]} for bit #{i}" if @bit_vector[i] != 0
      end
    end
    
    should "sets bits to 1 and returns 1 when retrieved" do
      @bit_vector.size.times do |i|
        @bit_vector[i] = 1
        assert_equal 1, @bit_vector[i]
      end
    end
    
    should "sets bits back to 0" do
      @bit_vector.size.times do |i|
        @bit_vector[i] = 1
        @bit_vector[i] = 0
        assert_equal 0, @bit_vector[i]
      end
    end
    
    should "convert the bit vector into a string" do
      assert @bit_vector.to_s.is_a?(String)
    end
    
    should "convert back to the same bit vector" do
      [0,3,6,7].each do |bit|
        @bit_vector[bit] = 1
      end
      
      assert_equal @bit_vector, BloomFilter::BitVector.new(16, @bit_vector.to_s)
    end
  end
  
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bloom_filter-0.6.6 test/bloom_filter_bit_vector_test.rb
bloom_filter-0.6.5 test/bloom_filter_bit_vector_test.rb
bloom_filter-0.6.4 test/bloom_filter_bit_vector_test.rb
bloom_filter-0.6.3 test/bloom_filter_bit_vector_test.rb
bloom_filter-0.6.2 test/bloom_filter_bit_vector_test.rb