Skip to content

Instantly share code, notes, and snippets.

@vitkoz
Created October 19, 2016 18:29
Show Gist options
  • Save vitkoz/ba598e68499e70b6790c25a787352097 to your computer and use it in GitHub Desktop.
Save vitkoz/ba598e68499e70b6790c25a787352097 to your computer and use it in GitHub Desktop.
class Flattner
def initialize
@res_arr = []
end
def flatten_ary ary
unwind(ary)
@res_arr
end
def unwind input_ary
input_ary.each do |el|
if el.class.eql?(Array)
unwind(el)
else
@res_arr << el
end
end
end
end
require 'test/unit'
require '[change_to_proper_path]/flattner'
class TestFlattner < Test::Unit::TestCase
def test_flattner_empty_ary
flattner = Flattner.new
ary = []
assert_equal flattner.flatten_ary(ary), []
end
def test_flattner_flat_ary
flattner = Flattner.new
ary = [1,2,3,4,5,6,7,8,9]
assert_equal flattner.flatten_ary(ary), [1,2,3,4,5,6,7,8,9]
end
def test_flattner_full_ary
flattner = Flattner.new
ary = [1,2,[3],4,[5,[6,[7,8]]],9]
assert_equal flattner.flatten_ary(ary), [1,2,3,4,5,6,7,8,9]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment