Skip to content

Instantly share code, notes, and snippets.

@smathy
Created April 18, 2016 20:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save smathy/c78d1fda9cab01658c49068286cd19d6 to your computer and use it in GitHub Desktop.
Save smathy/c78d1fda9cab01658c49068286cd19d6 to your computer and use it in GitHub Desktop.
module Flattener
def flatten element, result=[]
if element.is_a? Array
element.each do |e|
flatten e, result
end
else
result << element
end
result
end
end
require "minitest/autorun"
class TestFlattener < Minitest::Test
include Flattener
def test_empty
assert_equal [], flatten([])
end
def test_single
assert_equal [1], flatten([1])
end
def test_multiple
assert_equal [3,4,1,2], flatten([3,4,1,2])
end
def test_nested
assert_equal [3,4,1,2], flatten([[3,4,[1]],2])
assert_equal [3,4,1,2], flatten([3,4,[[1],2]])
assert_equal [1,4,1,2,4], flatten([1,4,[[1],2],4])
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment