Sha256: 8c2568e8fbb0224514113e7b8c5a3bab0a71fa81cdd4f1a4a5a184ee529be60d

Contents?: true

Size: 1.24 KB

Versions: 20

Compression:

Stored size: 1.24 KB

Contents

describe Integer, "#k_perfect?" do
  @seq = {
    # A005820
    3 => [120,672,523776,459818240,1476304896,51001180160].to_seq,
    # A027687
    4 => [30240,32760,2178540,23569920,45532800,142990848,
          1379454720,43861478400,66433720320].to_seq
  }

  # A007539
  @first_seq = [1, 6, 120, 30240, 14182439040, 154345556085770649600, 
                141310897947438348259849402738485523264343544818565120000, 
                8268099687077761372899241948635962893501943883292455548843932421413884476391773708366277840568053624227289196057256213348352000000000].to_seq

  
  @first_seq.each_with_index.first(5).sample(2).each do |n, i|
    k = i + 1
    it "should return true for #{k}-perfect number #{n}" do
      n.k_perfect?(k).should be_true
    end

    it "should return false for a number k-perfect for a different k, e.g. (#{n}, #{k+1})" do
      n.k_perfect?(k+1).should be_false
    end
  end

  @seq.each do |k, members|
    members.sample(2).each do |n|
      it "should return true for #{k}-perfect number #{n}" do
        n.k_perfect?(k).should be_true
      end
    end

    members.invert.sample(1).each do |n|
      it "should return false for non-#{k}-perfect number #{n}" do
        n.k_perfect?(k).should be_false
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
numb-0.186.0 spec/numb/k_perfect_spec.rb
numb-0.185.0 spec/numb/k_perfect_spec.rb
numb-0.184.0 spec/numb/k_perfect_spec.rb
numb-0.181.0 spec/numb/k_perfect_spec.rb
numb-0.170.0 spec/numb/k_perfect_spec.rb
numb-0.152.0 spec/numb/k_perfect_spec.rb
numb-0.138.0 spec/numb/k_perfect_spec.rb
numb-0.125.0 spec/numb/k_perfect_spec.rb
numb-0.114.0 spec/numb/k_perfect_spec.rb
numb-0.111.0 spec/numb/k_perfect_spec.rb
numb-0.109.0 spec/numb/k_perfect_spec.rb
numb-0.99.0 spec/numb/k_perfect_spec.rb
numb-0.96.0 spec/numb/k_perfect_spec.rb
numb-0.89.0 spec/numb/k_perfect_spec.rb
numb-0.84.0 spec/k_perfect.rb
numb-0.77.0 spec/k_perfect.rb
numb-0.72.1 spec/k_perfect.rb
numb-0.72.0 spec/k_perfect.rb
numb-0.68.0 spec/k_perfect.rb
numb-0.63.0 spec/k_perfect.rb