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]]
  ]

}