Sha256: 94e3fadd4f9384f477bda2dcd0f26c307d7150aef4f005f5033958b04fba987b

Contents?: true

Size: 1.61 KB

Versions: 1

Compression:

Stored size: 1.61 KB

Contents

require(File.dirname(__FILE__)+'/test_helpers.rb')


class StatsamplePermutationTestCase < MiniTest::Unit::TestCase
  context Statsample::Permutation do
    should "initialize with number" do
      per1=Statsample::Permutation.new(2)
      exp1=[[0,1],[1,0]]
      assert_equal(exp1,per1.permutations)
      per2=Statsample::Permutation.new(3)
      exp2=[[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0]]
      assert_equal(exp2,per2.permutations)
    end
    should "initialize with simple array" do
      per1=Statsample::Permutation.new(%w{a b})
      exp1=[['a','b'],['b','a']]
      assert_equal(exp1,per1.permutations)
      per2=Statsample::Permutation.new(%w{a b c})
      exp2=[%w{a b c},%w{a c b},%w{b a c} ,%w{b c a},%w{c a b},%w{c b a}]
      assert_equal(exp2,per2.permutations)
    end
    should "initialize with Statsample::Vector" do
      per2=Statsample::Permutation.new(%w{a b c}.to_vector)
      exp2=[%w{a b c},%w{a c b},%w{b a c} ,%w{b c a},%w{c a b},%w{c b a}]
      assert_equal(exp2, per2.permutations)
    end
      
    should "calculate correct number of total permutations without repetitions" do
      per1=Statsample::Permutation.new(4)
      assert_equal(24,per1.permutation_number)      
    end
    should "calculate correct number of total permutations with repetitions" do
      per2=Statsample::Permutation.new([1,1,1,0,0,0])
      assert_equal(20,per2.permutation_number)
    end
    should "initialize with array repeated" do 
      per1=Statsample::Permutation.new([0,0,1,1])
      exp1=[[0,0,1,1],[0,1,0,1],[0,1,1,0],[1,0,0,1],[1,0,1,0],[1,1,0,0]]
      assert_equal(exp1,per1.permutations)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
statsample-0.10.0 test/test_permutation.rb