Sha256: bb670d92f723847ed68afdbdd142eb05ebeb0959c5b307fcf8323834726e0838

Contents?: true

Size: 1.98 KB

Versions: 5

Compression:

Stored size: 1.98 KB

Contents

# coding: utf-8
describe Integer, "#near_square?" do
  @seq = {
    # A028875
    -5 => [4,11,20,31,44,59,76,95,116,139,164,191,220,251,
           284,319,356,395,436,479,524,571,620,671,724,779,
           836,895,956,1019,1084,1151,1220,1291,1364,1439,
           1516,1595,1676,1759,1844,1931,2020,2111,2204,2299,
           2396],
    # A028347       
    -4 => [0,5,12,21,32,45,60,77,96,117,140,165,192,221,252,
          285,320,357,396,437,480,525,572,621,672,725,780,
          837,896,957,1020,1085,1152,1221,1292,1365,1440,
          1517,1596,1677,1760,1845],
    # A028872
    -3 => [1,6,13,22,33,46,61,78,97,118,141,166,193,222,253,
          286,321,358,397,438,481,526,573,622,673,726,781,
          838,897,958,1021,1086,1153,1222,1293,1366,1441,
          1518,1597,1678,1761,1846,1933,2022,2113,2206,
          2301],
    # A117950      
    3 => [3,4,7,12,19,28,39,52,67,84,103,124,147,172,199,
          228,259,292,327,364,403,444,487,532,579,628,679,
          732,787,844,903,964,1027,1092,1159,1228,1299,1372,
          1447,1524,1603,1684,1767,1852,1939,2028,2119,2212,
          2307,2404,2503],
    # A087475
    4 => [4,5,8,13,20,29,40,53,68,85,104,125,148,173,200,
          229,260,293,328,365,404,445,488,533,580,629,680,
          733,788,845,904,965,1028,1093,1160,1229,1300,1373,
          1448,1525,1604,1685,1768,1853,1940,2029,2120,2213,
          2308,2405,2504],
    # A117951       
    5 => [5,6,9,14,21,30,41,54,69,86,105,126,149,174,201,
          230,261,294,329,366,405,446,489,534,581,630,681,
          734,789,846,905,966,1029,1094,1161,1230,1301,1374,
          1449,1526,1605,1686,1769,1854,1941,2030,2121,2214,
          2309,2406,2505]
  }

  @seq.each do |k, values|
    values.each do |n|
      it "returns true for #{n}^2 #{'+' if k > 0}#{k}" do
        n.should be_near_square(k)
      end
    end

    values.to_seq.invert.sample(100).each do |n|
      it "returns false for #{n}^2 #{'+' if k > 0}#{k}" do
        n.should_not be_near_square(k)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
numb-0.186.0 spec/numb/near_square_spec.rb
numb-0.185.0 spec/numb/near_square_spec.rb
numb-0.184.0 spec/numb/near_square_spec.rb
numb-0.181.0 spec/numb/near_square_spec.rb
numb-0.170.0 spec/numb/near_square_spec.rb