Sha256: 6bfa5efe5e7dbf4137f615e96a9e9b0904e9a1c455d2f5e89033031518c167f0
Contents?: true
Size: 1.96 KB
Versions: 2
Compression:
Stored size: 1.96 KB
Contents
require 'spec_helper' require 'scatter_swap' describe "#hash" do it "should be 10 digits" do 100.times do |integer| ScatterSwap.hash(integer).to_s.length.should == 10 end end it "should not be sequential" do first = ScatterSwap.hash(1) second = ScatterSwap.hash(2) second.should_not eql(first.to_i + 1) end it "should be reversable" do 100.times do |integer| hashed = ScatterSwap.hash(integer) ScatterSwap.reverse_hash(hashed).to_i.should == integer end end end describe "#swapper_map" do before do @map_set = [] s = ScatterSwap::Hasher.new(1) 10.times do |digit| @map_set.push s.swapper_map(digit) end end it "should create a unique map array for each digit" do @map_set.length.should == 10 @map_set.uniq.length.should == 10 end it "should include all 10 digits in each map" do @map_set.each do |map| map.length.should == 10 map.uniq.length.should == 10 end end end describe "#scatter" do it "should return a number different from original" do 100.times do |integer| s = ScatterSwap::Hasher.new(integer) original_array = s.working_array s.scatter s.working_array.should_not == original_array end end it "should be reversable" do 100.times do |integer| s = ScatterSwap::Hasher.new(integer) original_array = s.working_array.clone s.scatter s.unscatter s.working_array.should == original_array end end end describe "#swap" do it "should be different from original" do 100.times do |integer| s = ScatterSwap::Hasher.new(integer) original_array = s.working_array.clone s.swap s.working_array.should_not == original_array end end it "should be reversable" do 100.times do |integer| s = ScatterSwap::Hasher.new(integer) original_array = s.working_array.clone s.swap s.unswap s.working_array.should == original_array end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
scatter_swap-0.0.3 | spec/scatter_swap_spec.rb |
scatter_swap-0.0.2 | spec/scatter_swap_spec.rb |