Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. # insertion sort
  2. class Sequence
  3. attr_accessor :values, :size
  4.  
  5. def initialize(array)
  6. @values = array
  7. @size = array.length
  8. end
  9.  
  10. def sort
  11. result = values.dup
  12.  
  13. values.each_with_index do |item, i|
  14. j = i
  15. while j > 0 && result[j - 1] > item
  16. result[j] = result[j - 1]
  17. j -= 1
  18. end
  19. result[j] = item
  20. end
  21. result
  22. end
  23. end
  24.  
  25. require 'rspec/autorun'
  26.  
  27. RSpec.describe Sequence do
  28. let(:org_array) do
  29. [2,5,6,7]
  30. end
  31.  
  32. it 'if sorted return sorted' do
  33. seq = Sequence.new(org_array)
  34. expect(seq.sort).to eq org_array
  35. end
  36.  
  37. it 'if inverse sorted return sorted' do
  38. seq = Sequence.new(org_array.reverse)
  39. expect(seq.sort).to eq org_array
  40. end
  41.  
  42. it 'if unsorted return sorted' do
  43. seq = Sequence.new([5,2,7,6])
  44. expect(seq.sort).to eq [2,5,6,7]
  45. end
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement