Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # insertion sort
- class Sequence
- attr_accessor :values, :size
- def initialize(array)
- @values = array
- @size = array.length
- end
- def sort
- result = values.dup
- values.each_with_index do |item, i|
- j = i
- while j > 0 && result[j - 1] > item
- result[j] = result[j - 1]
- j -= 1
- end
- result[j] = item
- end
- result
- end
- end
- require 'rspec/autorun'
- RSpec.describe Sequence do
- let(:org_array) do
- [2,5,6,7]
- end
- it 'if sorted return sorted' do
- seq = Sequence.new(org_array)
- expect(seq.sort).to eq org_array
- end
- it 'if inverse sorted return sorted' do
- seq = Sequence.new(org_array.reverse)
- expect(seq.sort).to eq org_array
- end
- it 'if unsorted return sorted' do
- seq = Sequence.new([5,2,7,6])
- expect(seq.sort).to eq [2,5,6,7]
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement