Sha256: 14517848665054127fef8a20f6e3d507895ce9b42232b7e534b3fd8edd94dfa3

Contents?: true

Size: 1.37 KB

Versions: 7

Compression:

Stored size: 1.37 KB

Contents

describe Integer, "#e_divisors" do
  # A051377 
  @sums = [1,2,3,6,5,6,7,10,12,10,11,18,13,14,15,22,17,24,
           19,30,21,22,23,30,30,26,30,42,29,30,31,34,33,34,
           35,72,37,38,39,50,41,42,43,66,60,46,47,66,56,60,
           51,78,53,60,55,70,57,58,59,90,61,62,84,78,65,66,
           67,102,69,70,71]

  # A049419 
  @counts = [1,1,1,2,1,1,1,2,2,1,1,2,1,1,1,3,1,2,1,2,1,1,1,2,
             2,1,2,2,1,1,1,2,1,1,1,4,1,1,1,2,1,1,1,2,2,1,1,3,2,
             2,1,2,1,2,1,2,1,1,1,2,1,1,2,4,1,1,1,2,1,1,1,4,1,1,
             2,2,1,1,1,3,3,1,1,2,1,1,1,2,1,2,1,2,1,1,1,2,1,2,2,
             4,1,1]
  
  # A157488
  @products = [1,2,3,8,5,6,7,16,27,10,11,72,13,14,15,128,17,
               108,19,200,21,22,23,144,125,26,81,392,29,30,31,64,33,34,
               35,46656,37,38,39,400,41,42,43,968,675,46,47,3456,343,500,
               51,1352,53,324,55,784,57,58,59,1800,61,62,1323,4096]

  @counts.to_enum.with_index(1) do |count, n|
    e_divisors = n.e_divisors
    
    it "returns #{count} e divisors for #{n}" do
      e_divisors.size.should == count
    end

    if sum = @sums[n-1]
      it "returns e divisors with a sum of #{sum} for #{n}" do
        e_divisors.reduce(:+).should == sum
      end
    end
    
    if product = @products[n-1]
      it "returns e divisors with a product of #{product} for #{n}" do
        e_divisors.reduce(:*).should == product
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
numb-0.186.0 spec/numb/e_divisors_spec.rb
numb-0.185.0 spec/numb/e_divisors_spec.rb
numb-0.184.0 spec/numb/e_divisors_spec.rb
numb-0.181.0 spec/numb/e_divisors_spec.rb
numb-0.170.0 spec/numb/e_divisors_spec.rb
numb-0.152.0 spec/numb/e_divisors_spec.rb
numb-0.138.0 spec/numb/e_divisors_spec.rb