Advertisement
Guest User

Untitled

a guest
Jul 27th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. class CustomArray
  2.  
  3. def flatten(arr, full = [])
  4. arr.each do |i|
  5. if i.is_a? Array
  6. flatten(i, full)
  7. else
  8. full << i
  9. end
  10. end
  11. full
  12. end
  13. end
  14.  
  15.  
  16. require 'rspec'
  17.  
  18. RSpec.describe CustomArray do
  19.  
  20. before(:each) {
  21. @arr = CustomArray.new
  22. }
  23.  
  24. context "flatten" do
  25. it "empty array" do
  26. flattened = @arr.flatten([])
  27. expect(flattened).to eq([])
  28. end
  29.  
  30. it "1 level array" do
  31. flattened = @arr.flatten([1, 2, 3, 4, 5])
  32. expect(flattened).to eq([1, 2, 3, 4, 5])
  33. end
  34.  
  35. it "2 level nested array" do
  36. flattened = @arr.flatten([1, 2, [3, 4], 5])
  37. expect(flattened).to eq([1, 2, 3, 4, 5])
  38. end
  39.  
  40. it "3 level nested array" do
  41. flattened = @arr.flatten([1, [2, [3, 4], 5]])
  42. expect(flattened).to eq([1, 2, 3, 4, 5])
  43. end
  44.  
  45. end
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement