# coding: utf-8 describe Integer, "#knödel?" do @seq = { # A002997 1 => [561,1105,1729,2465,2821,6601,8911,10585,15841, 29341,41041,46657,52633,62745,63973,75361,101101, 115921,126217,162401,172081,188461,252601,278545, 294409,314821,334153,340561,399001,410041,449065, 488881,512461].to_seq, # A050990 2 => [4,6,8,10,12,14,22,24,26,30,34,38,46,56,58,62,74, 82,86,94,106,118,122,132,134,142,146,158,166,178, 182,194,202,206,214,218,226,254,262,274,278,298, 302,314,326,334,346,358,362,382,386,394,398,422, 446,454,458].to_seq, # A033553 3 => [9,15,21,33,39,51,57,63,69,87,93,111,123,129,141, 159,177,183,195,201,213,219,237,249,267,291,303, 309,315,321,327,339,381,393,399,411,417,447,453, 471,489,501,519,537,543,573,579,591,597,633,669, 681,687,693].to_seq, # A050992 4 => [6,8,12,16,20,24,28,40,44,48,52,60,68,76,80,92, 112,116,120,124,148,154,164,172,188,208,212,236, 240,244,264,268,280,284,292,316,332,340,356,364, 388,404,412,428,436,452,508,520,524,548,556,596, 604,628,652].to_seq, # A050993 5 => [25,65,85,145,165,185,205,265,305,365,445,485,505, 545,565,685,745,785,825,865,905,965,985,1085,1145, 1165,1205,1285,1345,1385,1405,1465,1565,1585,1685, 1745,1765,1865,1925,1945,1985,2005,2045,2105, 2165].to_seq } @seq.each do |k, members| members.first(k+1).each do |n| it "should return true for #{k}-Knödel number #{n}" do n.knödel?(k).should be_true end end members.invert.sample(k+1).each do |n| it "should return false for non-#{k}-Knödel number #{n}" do n.knödel?(k).should be_false end end end end