Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CustomArray
- def flatten(arr, full = [])
- arr.each do |i|
- if i.is_a? Array
- flatten(i, full)
- else
- full << i
- end
- end
- full
- end
- end
- require 'rspec'
- RSpec.describe CustomArray do
- before(:each) {
- @arr = CustomArray.new
- }
- context "flatten" do
- it "empty array" do
- flattened = @arr.flatten([])
- expect(flattened).to eq([])
- end
- it "1 level array" do
- flattened = @arr.flatten([1, 2, 3, 4, 5])
- expect(flattened).to eq([1, 2, 3, 4, 5])
- end
- it "2 level nested array" do
- flattened = @arr.flatten([1, 2, [3, 4], 5])
- expect(flattened).to eq([1, 2, 3, 4, 5])
- end
- it "3 level nested array" do
- flattened = @arr.flatten([1, [2, [3, 4], 5]])
- expect(flattened).to eq([1, 2, 3, 4, 5])
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement