On Feb 9, 10:00 am, Ruby Quiz <j... / grayproductions.net> wrote: > * Given a nested Array of Arrays, perform a flatten()-like operation that > removes only the top level of nesting. For example, [1, [2, [3]]] would become > [1, 2, [3]]. Yet more test cases (and a new way that I'm testing them). Used like: s = 'your 80 char solution here' test_solution( :flatten_once, s ) def test_solution( map_set, str ) raise "Solution too long (#{str.length} chars)" unless str.length <= 80 maps = MAPS[ map_set ] maps.each{ |pair| quiz = pair[0] expected = pair[1] output = eval( str ) unless expected==output raise "quiz=#{quiz}; expected #{expected.inspect}, got #{output.inspect}" end } end MAPS = { :commify => [ [1, "1"], [-1, "-1"], [0.001, "0.001"], [-0.001, "-0.001"], [999, "999"], [-999, "-999"], [999.1, "999.1"], [-999.1, "-999.1"], [999.12, "999.12"], [-999.12, "-999.12"], [999.123, "999.123"], [-999.123, "-999.123"], [9999, "9,999"], [-9999, "-9,999"], [9999.1, "9,999.1"], [-9999.1, "-9,999.1"], [9999.12, "9,999.12"], [-9999.12, "-9,999.12"], [9999.123, "9,999.123"], [-9999.123, "-9,999.123"], [12, "12"], [123, "123"], [1234, "1,234"], [12345, "12,345"], [123456, "123,456"], [1234567, "1,234,567"], [12345678, "12,345,678"], [-12, "-12"], [-123, "-123"], [-1234, "-1,234"], [-12345, "-12,345"], [-123456, "-123,456"], [-1234567, "-1,234,567"], [-12345678, "-12,345,678"] ], :flatten_once => [ [ [], [] ], [ [1], [1] ], [ [1,2], [1,2] ], [ [1,[2]], [1,2] ], [ [[1],2], [1,2] ], [ [[1,2]], [1,2] ], [ [1,2,3], [1,2,3] ], [ [1,[2,3]], [1,2,3] ], [ [[1,2,3]], [1,2,3] ], [ [1, [2, [3]]], [1, 2, [3]] ], [ [1, [[2], 3]], [1, [2], 3] ], [ [1,[2,[3,[4]]]], [1, 2, [3,[4]]] ], [ [[[[[[6]]]]]], [[[[[6]]]]] ] ], :wondrous => [ [1, [1]], [3,[3,10,5,16,8,4,2,1]], [5,[5,16,8,4,2,1]], [8,[8,4,2,1]], [15,[15,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1]], [31, [31,94,47,142,71,214,107,322,161,484,242,121,364,182,91,274,137,412,206,103,310,155,466,233,700,350,175,526,263,790,395,1186,593,1780,890,445,1336,668,334,167,502,251,754,377,1132,566,283,850,425,1276,638,319,958,479,1438,719,2158,1079,3238,1619,4858,2429,7288,3644,1822,911,2734,1367,4102,2051,6154,3077,9232,4616,2308,1154,577,1732,866,433,1300,650,325,976,488,244,122,61,184,92,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1]] ] }