Sha256: 14c42ab2282eb119025162d04d3071c276cdae9ace0294a207a62d1c65dadf29

Contents?: true

Size: 732 Bytes

Versions: 20

Compression:

Stored size: 732 Bytes

Contents

describe Integer, "#sum_of_squares" do

  SOS = [1, # [0, 0, 0, 1]
         2, # [0, 0, 1, 1]
         3, # [0, 1, 1, 1]
         7, # [1, 1, 1, 2]
         9, # Square number
         11,# Prime number
         58, 9634, # Special cases
         123456789, # Large number
  ] + 1000.times.map { Random.new.rand(10..1000_000)} # Random numbers
  SOS.each do |n|
    squares = n.sum_of_squares
    it "should return an Array of 4 Integers for #{n}" do
      squares.should be_kind_of(Array)
      squares.size.should == 4
      squares.all?{|e| e.should be_kind_of(Integer)}
    end

    it "should return integers whose squares sum to give the receiver: #{n}" do
      squares.map{|i| i**2}.reduce(:+).should == n
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

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