summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/change_spec.rb100
-rw-r--r--spec/diff_spec.rb28
-rw-r--r--spec/hunk_spec.rb38
-rw-r--r--spec/issues_spec.rb88
-rw-r--r--spec/lcs_spec.rb22
-rw-r--r--spec/ldiff_spec.rb24
-rw-r--r--spec/patch_spec.rb168
-rw-r--r--spec/sdiff_spec.rb220
-rw-r--r--spec/spec_helper.rb150
-rw-r--r--spec/traverse_balanced_spec.rb380
-rw-r--r--spec/traverse_sequences_spec.rb62
11 files changed, 647 insertions, 633 deletions
diff --git a/spec/change_spec.rb b/spec/change_spec.rb
index b8d3443..42533ae 100644
--- a/spec/change_spec.rb
+++ b/spec/change_spec.rb
@@ -1,89 +1,89 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
describe Diff::LCS::Change do
- describe 'an add' do
- subject { described_class.new('+', 0, 'element') }
- it { should_not be_deleting }
- it { should be_adding }
- it { should_not be_unchanged }
- it { should_not be_changed }
+ describe "an add" do
+ subject { described_class.new("+", 0, "element") }
+ it { should_not be_deleting }
+ it { should be_adding }
+ it { should_not be_unchanged }
+ it { should_not be_changed }
it { should_not be_finished_a }
it { should_not be_finished_b }
end
- describe 'a delete' do
- subject { described_class.new('-', 0, 'element') }
- it { should be_deleting }
- it { should_not be_adding }
- it { should_not be_unchanged }
- it { should_not be_changed }
+ describe "a delete" do
+ subject { described_class.new("-", 0, "element") }
+ it { should be_deleting }
+ it { should_not be_adding }
+ it { should_not be_unchanged }
+ it { should_not be_changed }
it { should_not be_finished_a }
it { should_not be_finished_b }
end
- describe 'an unchanged' do
- subject { described_class.new('=', 0, 'element') }
- it { should_not be_deleting }
- it { should_not be_adding }
- it { should be_unchanged }
- it { should_not be_changed }
+ describe "an unchanged" do
+ subject { described_class.new("=", 0, "element") }
+ it { should_not be_deleting }
+ it { should_not be_adding }
+ it { should be_unchanged }
+ it { should_not be_changed }
it { should_not be_finished_a }
it { should_not be_finished_b }
end
- describe 'a changed' do
- subject { described_class.new('!', 0, 'element') }
- it { should_not be_deleting }
- it { should_not be_adding }
- it { should_not be_unchanged }
- it { should be_changed }
+ describe "a changed" do
+ subject { described_class.new("!", 0, "element") }
+ it { should_not be_deleting }
+ it { should_not be_adding }
+ it { should_not be_unchanged }
+ it { should be_changed }
it { should_not be_finished_a }
it { should_not be_finished_b }
end
- describe 'a finished_a' do
- subject { described_class.new('>', 0, 'element') }
- it { should_not be_deleting }
- it { should_not be_adding }
- it { should_not be_unchanged }
- it { should_not be_changed }
- it { should be_finished_a }
+ describe "a finished_a" do
+ subject { described_class.new(">", 0, "element") }
+ it { should_not be_deleting }
+ it { should_not be_adding }
+ it { should_not be_unchanged }
+ it { should_not be_changed }
+ it { should be_finished_a }
it { should_not be_finished_b }
end
- describe 'a finished_b' do
- subject { described_class.new('<', 0, 'element') }
- it { should_not be_deleting }
- it { should_not be_adding }
- it { should_not be_unchanged }
- it { should_not be_changed }
+ describe "a finished_b" do
+ subject { described_class.new("<", 0, "element") }
+ it { should_not be_deleting }
+ it { should_not be_adding }
+ it { should_not be_unchanged }
+ it { should_not be_changed }
it { should_not be_finished_a }
- it { should be_finished_b }
+ it { should be_finished_b }
end
- describe 'as array' do
- it 'should be converted' do
- action, position, element = described_class.new('!', 0, 'element')
- expect(action).to eq '!'
+ describe "as array" do
+ it "should be converted" do
+ action, position, element = described_class.new("!", 0, "element")
+ expect(action).to eq "!"
expect(position).to eq 0
- expect(element).to eq 'element'
+ expect(element).to eq "element"
end
end
end
describe Diff::LCS::ContextChange do
- describe 'as array' do
- it 'should be converted' do
+ describe "as array" do
+ it "should be converted" do
action, (old_position, old_element), (new_position, new_element) =
- described_class.new('!', 1, 'old_element', 2, 'new_element')
+ described_class.new("!", 1, "old_element", 2, "new_element")
- expect(action).to eq '!'
+ expect(action).to eq "!"
expect(old_position).to eq 1
- expect(old_element).to eq 'old_element'
+ expect(old_element).to eq "old_element"
expect(new_position).to eq 2
- expect(new_element).to eq 'new_element'
+ expect(new_element).to eq "new_element"
end
end
end
diff --git a/spec/diff_spec.rb b/spec/diff_spec.rb
index e7d632a..869f098 100644
--- a/spec/diff_spec.rb
+++ b/spec/diff_spec.rb
@@ -1,28 +1,28 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
-describe Diff::LCS, '.diff' do
+describe Diff::LCS, ".diff" do
include Diff::LCS::SpecHelper::Matchers
- it 'correctly diffs seq1 to seq2' do
+ it "correctly diffs seq1 to seq2" do
diff_s1_s2 = Diff::LCS.diff(seq1, seq2)
expect(change_diff(correct_forward_diff)).to eq(diff_s1_s2)
end
- it 'correctly diffs seq2 to seq1' do
+ it "correctly diffs seq2 to seq1" do
diff_s2_s1 = Diff::LCS.diff(seq2, seq1)
expect(change_diff(correct_backward_diff)).to eq(diff_s2_s1)
end
- it 'correctly diffs against an empty sequence' do
+ it "correctly diffs against an empty sequence" do
diff = Diff::LCS.diff(word_sequence, [])
correct_diff = [
[
- ['-', 0, 'abcd'],
- ['-', 1, 'efgh'],
- ['-', 2, 'ijkl'],
- ['-', 3, 'mnopqrstuvwxyz']
+ ["-", 0, "abcd"],
+ ["-", 1, "efgh"],
+ ["-", 2, "ijkl"],
+ ["-", 3, "mnopqrstuvwxyz"]
]
]
@@ -30,22 +30,22 @@ describe Diff::LCS, '.diff' do
diff = Diff::LCS.diff([], word_sequence)
correct_diff.each do |hunk|
- hunk.each do |change| change[0] = '+' end
+ hunk.each { |change| change[0] = "+" }
end
expect(change_diff(correct_diff)).to eq(diff)
end
it "correctly diffs 'xx' and 'xaxb'" do
- left = 'xx'
- right = 'xaxb'
+ left = "xx"
+ right = "xaxb"
expect(Diff::LCS.patch(left, Diff::LCS.diff(left, right))).to eq(right)
end
- it 'returns an empty diff with (hello, hello)' do
+ it "returns an empty diff with (hello, hello)" do
expect(Diff::LCS.diff(hello, hello)).to be_empty
end
- it 'returns an empty diff with (hello_ary, hello_ary)' do
+ it "returns an empty diff with (hello_ary, hello_ary)" do
expect(Diff::LCS.diff(hello_ary, hello_ary)).to be_empty
end
end
diff --git a/spec/hunk_spec.rb b/spec/hunk_spec.rb
index b3616bf..c52a6fd 100644
--- a/spec/hunk_spec.rb
+++ b/spec/hunk_spec.rb
@@ -1,18 +1,18 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
if String.method_defined?(:encoding)
- require 'diff/lcs/hunk'
+ require "diff/lcs/hunk"
describe Diff::LCS::Hunk do
- let(:old_data) { ['Tu a un carté avec {count} itéms'.encode('UTF-16LE')] }
- let(:new_data) { ['Tu a un carte avec {count} items'.encode('UTF-16LE')] }
- let(:pieces) { Diff::LCS.diff old_data, new_data }
- let(:hunk) { Diff::LCS::Hunk.new(old_data, new_data, pieces[0], 3, 0) }
+ let(:old_data) { ["Tu a un carté avec {count} itéms".encode("UTF-16LE")] }
+ let(:new_data) { ["Tu a un carte avec {count} items".encode("UTF-16LE")] }
+ let(:pieces) { Diff::LCS.diff old_data, new_data }
+ let(:hunk) { Diff::LCS::Hunk.new(old_data, new_data, pieces[0], 3, 0) }
- it 'produces a unified diff from the two pieces' do
- expected = <<-EXPECTED.gsub(/^\s+/, '').encode('UTF-16LE').chomp
+ it "produces a unified diff from the two pieces" do
+ expected = <<-EXPECTED.gsub(/^\s+/, "").encode("UTF-16LE").chomp
@@ -1 +1 @@
-Tu a un carté avec {count} itéms
+Tu a un carte avec {count} items
@@ -21,8 +21,8 @@ if String.method_defined?(:encoding)
expect(hunk.diff(:unified)).to eq(expected)
end
- it 'produces a unified diff from the two pieces (last entry)' do
- expected = <<-EXPECTED.gsub(/^\s+/, '').encode('UTF-16LE').chomp
+ it "produces a unified diff from the two pieces (last entry)" do
+ expected = <<-EXPECTED.gsub(/^\s+/, "").encode("UTF-16LE").chomp
@@ -1 +1 @@
-Tu a un carté avec {count} itéms
+Tu a un carte avec {count} items
@@ -32,8 +32,8 @@ if String.method_defined?(:encoding)
expect(hunk.diff(:unified, true)).to eq(expected)
end
- it 'produces a context diff from the two pieces' do
- expected = <<-EXPECTED.gsub(/^\s+/, '').encode('UTF-16LE').chomp
+ it "produces a context diff from the two pieces" do
+ expected = <<-EXPECTED.gsub(/^\s+/, "").encode("UTF-16LE").chomp
***************
*** 1 ****
! Tu a un carté avec {count} itéms
@@ -44,8 +44,8 @@ if String.method_defined?(:encoding)
expect(hunk.diff(:context)).to eq(expected)
end
- it 'produces an old diff from the two pieces' do
- expected = <<-EXPECTED.gsub(/^ +/, '').encode('UTF-16LE').chomp
+ it "produces an old diff from the two pieces" do
+ expected = <<-EXPECTED.gsub(/^ +/, "").encode("UTF-16LE").chomp
1c1
< Tu a un carté avec {count} itéms
---
@@ -56,8 +56,8 @@ if String.method_defined?(:encoding)
expect(hunk.diff(:old)).to eq(expected)
end
- it 'produces a reverse ed diff from the two pieces' do
- expected = <<-EXPECTED.gsub(/^ +/, '').encode('UTF-16LE').chomp
+ it "produces a reverse ed diff from the two pieces" do
+ expected = <<-EXPECTED.gsub(/^ +/, "").encode("UTF-16LE").chomp
c1
Tu a un carte avec {count} items
.
@@ -67,11 +67,11 @@ if String.method_defined?(:encoding)
expect(hunk.diff(:reverse_ed)).to eq(expected)
end
- context 'with empty first data set' do
+ context "with empty first data set" do
let(:old_data) { [] }
- it 'produces a unified diff' do
- expected = <<-EXPECTED.gsub(/^\s+/, '').encode('UTF-16LE').chomp
+ it "produces a unified diff" do
+ expected = <<-EXPECTED.gsub(/^\s+/, "").encode("UTF-16LE").chomp
@@ -1 +1,2 @@
+Tu a un carte avec {count} items
EXPECTED
diff --git a/spec/issues_spec.rb b/spec/issues_spec.rb
index ad73123..3451d71 100644
--- a/spec/issues_spec.rb
+++ b/spec/issues_spec.rb
@@ -1,73 +1,76 @@
# frozen_string_literal: true
-require 'spec_helper'
-require 'diff/lcs/hunk'
+require "spec_helper"
+require "diff/lcs/hunk"
-describe 'Diff::LCS Issues' do
+describe "Diff::LCS Issues" do
include Diff::LCS::SpecHelper::Matchers
- describe 'issue #1' do
- shared_examples 'handles simple diffs' do |s1, s2, forward_diff|
+ describe "issue #1" do
+ shared_examples "handles simple diffs" do |s1, s2, forward_diff|
before do
@diff_s1_s2 = Diff::LCS.diff(s1, s2)
end
- it 'creates the correct diff' do
+ it "creates the correct diff" do
expect(change_diff(forward_diff)).to eq(@diff_s1_s2)
end
- it 'creates the correct patch s1->s2' do
+ it "creates the correct patch s1->s2" do
expect(Diff::LCS.patch(s1, @diff_s1_s2)).to eq(s2)
end
- it 'creates the correct patch s2->s1' do
+ it "creates the correct patch s2->s1" do
expect(Diff::LCS.patch(s2, @diff_s1_s2)).to eq(s1)
end
end
- describe 'string' do
- it_has_behavior 'handles simple diffs', 'aX', 'bXaX', [
+ describe "string" do
+ it_has_behavior "handles simple diffs", "aX", "bXaX", [
[
- ['+', 0, 'b'],
- ['+', 1, 'X']
+ ["+", 0, "b"],
+ ["+", 1, "X"]
]
]
- it_has_behavior 'handles simple diffs', 'bXaX', 'aX', [
+ it_has_behavior "handles simple diffs", "bXaX", "aX", [
[
- ['-', 0, 'b'],
- ['-', 1, 'X']
+ ["-", 0, "b"],
+ ["-", 1, "X"]
]
]
end
- describe 'array' do
- it_has_behavior 'handles simple diffs', %w(a X), %w(b X a X), [
+ describe "array" do
+ it_has_behavior "handles simple diffs", %w[a X], %w[b X a X], [
[
- ['+', 0, 'b'],
- ['+', 1, 'X']
+ ["+", 0, "b"],
+ ["+", 1, "X"]
]
]
- it_has_behavior 'handles simple diffs', %w(b X a X), %w(a X), [
+ it_has_behavior "handles simple diffs", %w[b X a X], %w[a X], [
[
- ['-', 0, 'b'],
- ['-', 1, 'X']
+ ["-", 0, "b"],
+ ["-", 1, "X"]
]
]
end
end
- describe 'issue #57' do
- it 'should fail with a correct error' do
+ describe "issue #57" do
+ it "should fail with a correct error" do
+ # standard:disable Style/HashSyntax
expect {
- actual = { :category => 'app.rack.request' }
- expected = { :category => 'rack.middleware', :title => 'Anonymous Middleware' }
+ actual = {:category => "app.rack.request"}
+ expected = {:category => "rack.middleware", :title => "Anonymous Middleware"}
expect(actual).to eq(expected)
}.to raise_error(RSpec::Expectations::ExpectationNotMetError)
+ # standard:enable Style/HashSyntax
end
end
- describe 'issue #60' do
- it 'should produce unified output with correct context' do
+ describe "issue #60" do
+ it "should produce unified output with correct context" do
+ # standard:disable Layout/HeredocIndentation
old_data = <<-DATA_OLD.strip.split("\n").map(&:chomp)
{
"name": "x",
@@ -93,10 +96,11 @@ describe 'Diff::LCS Issues' do
+ "description": "lo"
}
EXPECTED
+ # standard:enable Layout/HeredocIndentation
end
end
- describe 'issue #65' do
+ describe "issue #65" do
def diff_lines(old_lines, new_lines)
file_length_difference = 0
previous_hunk = nil
@@ -115,24 +119,25 @@ describe 'Diff::LCS Issues' do
output.join
end
- it 'should not misplace the new chunk' do
+ it "should not misplace the new chunk" do
old_data = [
- 'recipe[a::default]', 'recipe[b::default]', 'recipe[c::default]',
- 'recipe[d::default]', 'recipe[e::default]', 'recipe[f::default]',
- 'recipe[g::default]', 'recipe[h::default]', 'recipe[i::default]',
- 'recipe[j::default]', 'recipe[k::default]', 'recipe[l::default]',
- 'recipe[m::default]', 'recipe[n::default]'
+ "recipe[a::default]", "recipe[b::default]", "recipe[c::default]",
+ "recipe[d::default]", "recipe[e::default]", "recipe[f::default]",
+ "recipe[g::default]", "recipe[h::default]", "recipe[i::default]",
+ "recipe[j::default]", "recipe[k::default]", "recipe[l::default]",
+ "recipe[m::default]", "recipe[n::default]"
]
new_data = [
- 'recipe[a::default]', 'recipe[c::default]', 'recipe[d::default]',
- 'recipe[e::default]', 'recipe[f::default]', 'recipe[g::default]',
- 'recipe[h::default]', 'recipe[i::default]', 'recipe[j::default]',
- 'recipe[k::default]', 'recipe[l::default]', 'recipe[m::default]',
- 'recipe[n::default]', 'recipe[o::new]', 'recipe[p::new]',
- 'recipe[q::new]', 'recipe[r::new]'
+ "recipe[a::default]", "recipe[c::default]", "recipe[d::default]",
+ "recipe[e::default]", "recipe[f::default]", "recipe[g::default]",
+ "recipe[h::default]", "recipe[i::default]", "recipe[j::default]",
+ "recipe[k::default]", "recipe[l::default]", "recipe[m::default]",
+ "recipe[n::default]", "recipe[o::new]", "recipe[p::new]",
+ "recipe[q::new]", "recipe[r::new]"
]
+ # standard:disable Layout/HeredocIndentation
expect(diff_lines(old_data, new_data)).to eq(<<-EODIFF)
@@ -1,5 +1,4 @@
recipe[a::default]
@@ -149,6 +154,7 @@ describe 'Diff::LCS Issues' do
+recipe[q::new]
+recipe[r::new]
EODIFF
+ # standard:enable Layout/HeredocIndentation
end
end
end
diff --git a/spec/lcs_spec.rb b/spec/lcs_spec.rb
index 94428fd..c17f22f 100644
--- a/spec/lcs_spec.rb
+++ b/spec/lcs_spec.rb
@@ -1,11 +1,11 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
-describe Diff::LCS::Internals, '.lcs' do
+describe Diff::LCS::Internals, ".lcs" do
include Diff::LCS::SpecHelper::Matchers
- it 'returns a meaningful LCS array with (seq1, seq2)' do
+ it "returns a meaningful LCS array with (seq1, seq2)" do
res = Diff::LCS::Internals.lcs(seq1, seq2)
# The result of the LCS (less the +nil+ values) must be as long as the
# correct result.
@@ -20,37 +20,37 @@ describe Diff::LCS::Internals, '.lcs' do
expect(x_seq2).to eq(correct_lcs)
end
- it 'returns all indexes with (hello, hello)' do
+ it "returns all indexes with (hello, hello)" do
expect(Diff::LCS::Internals.lcs(hello, hello)).to \
eq((0...hello.size).to_a)
end
- it 'returns all indexes with (hello_ary, hello_ary)' do
+ it "returns all indexes with (hello_ary, hello_ary)" do
expect(Diff::LCS::Internals.lcs(hello_ary, hello_ary)).to \
eq((0...hello_ary.size).to_a)
end
end
-describe Diff::LCS, '.LCS' do
+describe Diff::LCS, ".LCS" do
include Diff::LCS::SpecHelper::Matchers
- it 'returns the correct compacted values from Diff::LCS.LCS' do
+ it "returns the correct compacted values from Diff::LCS.LCS" do
res = Diff::LCS.LCS(seq1, seq2)
expect(res).to eq(correct_lcs)
expect(res.compact).to eq(res)
end
- it 'is transitive' do
+ it "is transitive" do
res = Diff::LCS.LCS(seq2, seq1)
expect(res).to eq(correct_lcs)
expect(res.compact).to eq(res)
end
- it 'returns %W(h e l l o) with (hello, hello)' do
- expect(Diff::LCS.LCS(hello, hello)).to eq(hello.split(//))
+ it "returns %W(h e l l o) with (hello, hello)" do
+ expect(Diff::LCS.LCS(hello, hello)).to eq(hello.chars)
end
- it 'returns hello_ary with (hello_ary, hello_ary)' do
+ it "returns hello_ary with (hello_ary, hello_ary)" do
expect(Diff::LCS.LCS(hello_ary, hello_ary)).to eq(hello_ary)
end
end
diff --git a/spec/ldiff_spec.rb b/spec/ldiff_spec.rb
index a2468f8..cf89ada 100644
--- a/spec/ldiff_spec.rb
+++ b/spec/ldiff_spec.rb
@@ -1,29 +1,31 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
-RSpec.describe 'bin/ldiff' do
+RSpec.describe "bin/ldiff" do
include CaptureSubprocessIO
+ # standard:disable Style/HashSyntax
fixtures = [
- { :name => 'output.diff', :left => 'aX', :right => 'bXaX' },
- { :name => 'output.diff.chef', :left => 'old-chef', :right => 'new-chef' },
- { :name => 'output.diff.chef2', :left => 'old-chef2', :right => 'new-chef2' }
- ].product([nil, '-e', '-f', '-c', '-u']).map { |(fixture, flag)|
+ {:name => "output.diff", :left => "aX", :right => "bXaX"},
+ {:name => "output.diff.chef", :left => "old-chef", :right => "new-chef"},
+ {:name => "output.diff.chef2", :left => "old-chef2", :right => "new-chef2"}
+ ].product([nil, "-e", "-f", "-c", "-u"]).map { |(fixture, flag)|
fixture = fixture.dup
fixture[:flag] = flag
fixture
}
+ # standard:enable Style/HashSyntax
def self.test_ldiff(fixture)
desc = [
fixture[:flag],
"spec/fixtures/#{fixture[:left]}",
"spec/fixtures/#{fixture[:right]}",
- '#',
- '=>',
+ "#",
+ "=>",
"spec/fixtures/ldiff/#{fixture[:name]}#{fixture[:flag]}"
- ].join(' ')
+ ].join(" ")
it desc do
expect(run_ldiff(fixture)).to eq(read_fixture(fixture))
@@ -45,7 +47,7 @@ RSpec.describe 'bin/ldiff' do
def clean_data(data, flag)
data =
case flag
- when '-c', '-u'
+ when "-c", "-u"
clean_output_timestamp(data)
else
data
@@ -80,7 +82,7 @@ RSpec.describe 'bin/ldiff' do
system("ruby -Ilib bin/ldiff #{flag} spec/fixtures/#{left} spec/fixtures/#{right}")
end
- expect(stderr).to be_empty if RUBY_VERSION >= '1.9'
+ expect(stderr).to be_empty if RUBY_VERSION >= "1.9"
expect(stdout).not_to be_empty
clean_data(stdout, flag)
end
diff --git a/spec/patch_spec.rb b/spec/patch_spec.rb
index 11b0981..6b9bf28 100644
--- a/spec/patch_spec.rb
+++ b/spec/patch_spec.rb
@@ -1,54 +1,54 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
-describe 'Diff::LCS.patch' do
+describe "Diff::LCS.patch" do
include Diff::LCS::SpecHelper::Matchers
- shared_examples 'patch sequences correctly' do
- it 'correctly patches left-to-right (patch autodiscovery)' do
+ shared_examples "patch sequences correctly" do
+ it "correctly patches left-to-right (patch autodiscovery)" do
expect(Diff::LCS.patch(s1, patch_set)).to eq(s2)
end
- it 'correctly patches left-to-right (explicit patch)' do
+ it "correctly patches left-to-right (explicit patch)" do
expect(Diff::LCS.patch(s1, patch_set, :patch)).to eq(s2)
expect(Diff::LCS.patch!(s1, patch_set)).to eq(s2)
end
- it 'correctly patches right-to-left (unpatch autodiscovery)' do
+ it "correctly patches right-to-left (unpatch autodiscovery)" do
expect(Diff::LCS.patch(s2, patch_set)).to eq(s1)
end
- it 'correctly patches right-to-left (explicit unpatch)' do
+ it "correctly patches right-to-left (explicit unpatch)" do
expect(Diff::LCS.patch(s2, patch_set, :unpatch)).to eq(s1)
expect(Diff::LCS.unpatch!(s2, patch_set)).to eq(s1)
end
end
- describe 'using a Diff::LCS.diff patchset' do
- describe 'an empty patchset returns the source' do
- it 'works on a string (hello)' do
+ describe "using a Diff::LCS.diff patchset" do
+ describe "an empty patchset returns the source" do
+ it "works on a string (hello)" do
diff = Diff::LCS.diff(hello, hello)
expect(Diff::LCS.patch(hello, diff)).to eq(hello)
end
- it 'works on an array %W(h e l l o)' do
+ it "works on an array %W(h e l l o)" do
diff = Diff::LCS.diff(hello_ary, hello_ary)
expect(Diff::LCS.patch(hello_ary, diff)).to eq(hello_ary)
end
end
- describe 'with default diff callbacks (DiffCallbacks)' do
- describe 'forward (s1 -> s2)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "with default diff callbacks (DiffCallbacks)" do
+ describe "forward (s1 -> s2)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq1 }
let(:s2) { seq2 }
let(:patch_set) { Diff::LCS.diff(seq1, seq2) }
end
end
- describe 'reverse (s2 -> s1)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "reverse (s2 -> s1)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq2 }
let(:s2) { seq1 }
let(:patch_set) { Diff::LCS.diff(seq2, seq1) }
@@ -56,9 +56,9 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'with context diff callbacks (ContextDiffCallbacks)' do
- describe 'forward (s1 -> s2)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "with context diff callbacks (ContextDiffCallbacks)" do
+ describe "forward (s1 -> s2)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq1 }
let(:s2) { seq2 }
let(:patch_set) {
@@ -67,8 +67,8 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'reverse (s2 -> s1)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "reverse (s2 -> s1)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq2 }
let(:s2) { seq1 }
let(:patch_set) {
@@ -78,9 +78,9 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'with sdiff callbacks (SDiffCallbacks)' do
- describe 'forward (s1 -> s2)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "with sdiff callbacks (SDiffCallbacks)" do
+ describe "forward (s1 -> s2)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq1 }
let(:s2) { seq2 }
let(:patch_set) {
@@ -89,8 +89,8 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'reverse (s2 -> s1)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "reverse (s2 -> s1)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq2 }
let(:s2) { seq1 }
let(:patch_set) {
@@ -101,20 +101,20 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'using a Diff::LCS.sdiff patchset' do
- describe 'an empty patchset returns the source' do
- it 'works on a string (hello)' do
+ describe "using a Diff::LCS.sdiff patchset" do
+ describe "an empty patchset returns the source" do
+ it "works on a string (hello)" do
expect(Diff::LCS.patch(hello, Diff::LCS.sdiff(hello, hello))).to eq(hello)
end
- it 'works on an array %W(h e l l o)' do
+ it "works on an array %W(h e l l o)" do
expect(Diff::LCS.patch(hello_ary, Diff::LCS.sdiff(hello_ary, hello_ary))).to eq(hello_ary)
end
end
- describe 'with default diff callbacks (DiffCallbacks)' do
- describe 'forward (s1 -> s2)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "with default diff callbacks (DiffCallbacks)" do
+ describe "forward (s1 -> s2)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq1 }
let(:s2) { seq2 }
let(:patch_set) {
@@ -123,8 +123,8 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'reverse (s2 -> s1)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "reverse (s2 -> s1)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq2 }
let(:s2) { seq1 }
let(:patch_set) {
@@ -134,9 +134,9 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'with context diff callbacks (DiffCallbacks)' do
- describe 'forward (s1 -> s2)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "with context diff callbacks (DiffCallbacks)" do
+ describe "forward (s1 -> s2)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq1 }
let(:s2) { seq2 }
let(:patch_set) {
@@ -145,8 +145,8 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'reverse (s2 -> s1)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "reverse (s2 -> s1)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq2 }
let(:s2) { seq1 }
let(:patch_set) {
@@ -156,17 +156,17 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'with sdiff callbacks (SDiffCallbacks)' do
- describe 'forward (s1 -> s2)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "with sdiff callbacks (SDiffCallbacks)" do
+ describe "forward (s1 -> s2)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq1 }
let(:s2) { seq2 }
let(:patch_set) { Diff::LCS.sdiff(seq1, seq2) }
end
end
- describe 'reverse (s2 -> s1)' do
- it_has_behavior 'patch sequences correctly' do
+ describe "reverse (s2 -> s1)" do
+ it_has_behavior "patch sequences correctly" do
let(:s1) { seq2 }
let(:s2) { seq1 }
let(:patch_set) { Diff::LCS.sdiff(seq2, seq1) }
@@ -179,43 +179,43 @@ describe 'Diff::LCS.patch' do
# to s2 patches"), this cannot use the "patch sequences correctly" shared
# set. Once the bug in autodiscovery is fixed, this can be converted as
# above.
- describe 'fix bug 891: patchsets do not contain the last equal part' do
+ describe "fix bug 891: patchsets do not contain the last equal part" do
before :each do
- @s1 = %w(a b c d e f g h i j k) # rubocop:disable Layout/SpaceInsideArrayPercentLiteral
- @s2 = %w(a b c d D e f g h i j k)
+ @s1 = %w[a b c d e f g h i j k] # rubocop:disable Layout/SpaceInsideArrayPercentLiteral
+ @s2 = %w[a b c d D e f g h i j k]
end
- describe 'using Diff::LCS.diff with default diff callbacks' do
+ describe "using Diff::LCS.diff with default diff callbacks" do
before :each do
@patch_set_s1_s2 = Diff::LCS.diff(@s1, @s2)
@patch_set_s2_s1 = Diff::LCS.diff(@s2, @s1)
end
- it 'autodiscovers s1 to s2 patches' do
+ it "autodiscovers s1 to s2 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 patches' do
+ it "autodiscovers s2 to s1 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 the left-to-right patches' do
+ it "autodiscovers s2 to s1 the left-to-right patches" do
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1)).to eq(@s1)
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2)).to eq(@s1)
end
- it 'correctly patches left-to-right (explicit patch)' do
+ it "correctly patches left-to-right (explicit patch)" do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2, :patch)).to eq(@s2)
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1, :patch)).to eq(@s1)
expect(Diff::LCS.patch!(@s1, @patch_set_s1_s2)).to eq(@s2)
expect(Diff::LCS.patch!(@s2, @patch_set_s2_s1)).to eq(@s1)
end
- it 'correctly patches right-to-left (explicit unpatch)' do
+ it "correctly patches right-to-left (explicit unpatch)" do
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2, :unpatch)).to eq(@s1)
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1, :unpatch)).to eq(@s2)
expect(Diff::LCS.unpatch!(@s2, @patch_set_s1_s2)).to eq(@s1)
@@ -223,37 +223,37 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'using Diff::LCS.diff with context diff callbacks' do
+ describe "using Diff::LCS.diff with context diff callbacks" do
before :each do
@patch_set_s1_s2 = Diff::LCS.diff(@s1, @s2, Diff::LCS::ContextDiffCallbacks)
@patch_set_s2_s1 = Diff::LCS.diff(@s2, @s1, Diff::LCS::ContextDiffCallbacks)
end
- it 'autodiscovers s1 to s2 patches' do
+ it "autodiscovers s1 to s2 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 patches' do
+ it "autodiscovers s2 to s1 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 the left-to-right patches' do
+ it "autodiscovers s2 to s1 the left-to-right patches" do
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1)).to eq(@s1)
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2)).to eq(@s1)
end
- it 'correctly patches left-to-right (explicit patch)' do
+ it "correctly patches left-to-right (explicit patch)" do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2, :patch)).to eq(@s2)
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1, :patch)).to eq(@s1)
expect(Diff::LCS.patch!(@s1, @patch_set_s1_s2)).to eq(@s2)
expect(Diff::LCS.patch!(@s2, @patch_set_s2_s1)).to eq(@s1)
end
- it 'correctly patches right-to-left (explicit unpatch)' do
+ it "correctly patches right-to-left (explicit unpatch)" do
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2, :unpatch)).to eq(@s1)
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1, :unpatch)).to eq(@s2)
expect(Diff::LCS.unpatch!(@s2, @patch_set_s1_s2)).to eq(@s1)
@@ -261,37 +261,37 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'using Diff::LCS.diff with sdiff callbacks' do
+ describe "using Diff::LCS.diff with sdiff callbacks" do
before(:each) do
@patch_set_s1_s2 = Diff::LCS.diff(@s1, @s2, Diff::LCS::SDiffCallbacks)
@patch_set_s2_s1 = Diff::LCS.diff(@s2, @s1, Diff::LCS::SDiffCallbacks)
end
- it 'autodiscovers s1 to s2 patches' do
+ it "autodiscovers s1 to s2 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 patches' do
+ it "autodiscovers s2 to s1 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 the left-to-right patches' do
+ it "autodiscovers s2 to s1 the left-to-right patches" do
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1)).to eq(@s1)
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2)).to eq(@s1)
end
- it 'correctly patches left-to-right (explicit patch)' do
+ it "correctly patches left-to-right (explicit patch)" do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2, :patch)).to eq(@s2)
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1, :patch)).to eq(@s1)
expect(Diff::LCS.patch!(@s1, @patch_set_s1_s2)).to eq(@s2)
expect(Diff::LCS.patch!(@s2, @patch_set_s2_s1)).to eq(@s1)
end
- it 'correctly patches right-to-left (explicit unpatch)' do
+ it "correctly patches right-to-left (explicit unpatch)" do
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2, :unpatch)).to eq(@s1)
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1, :unpatch)).to eq(@s2)
expect(Diff::LCS.unpatch!(@s2, @patch_set_s1_s2)).to eq(@s1)
@@ -299,37 +299,37 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'using Diff::LCS.sdiff with default sdiff callbacks' do
+ describe "using Diff::LCS.sdiff with default sdiff callbacks" do
before(:each) do
@patch_set_s1_s2 = Diff::LCS.sdiff(@s1, @s2)
@patch_set_s2_s1 = Diff::LCS.sdiff(@s2, @s1)
end
- it 'autodiscovers s1 to s2 patches' do
+ it "autodiscovers s1 to s2 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 patches' do
+ it "autodiscovers s2 to s1 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 the left-to-right patches' do
+ it "autodiscovers s2 to s1 the left-to-right patches" do
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1)).to eq(@s1)
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2)).to eq(@s1)
end
- it 'correctly patches left-to-right (explicit patch)' do
+ it "correctly patches left-to-right (explicit patch)" do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2, :patch)).to eq(@s2)
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1, :patch)).to eq(@s1)
expect(Diff::LCS.patch!(@s1, @patch_set_s1_s2)).to eq(@s2)
expect(Diff::LCS.patch!(@s2, @patch_set_s2_s1)).to eq(@s1)
end
- it 'correctly patches right-to-left (explicit unpatch)' do
+ it "correctly patches right-to-left (explicit unpatch)" do
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2, :unpatch)).to eq(@s1)
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1, :unpatch)).to eq(@s2)
expect(Diff::LCS.unpatch!(@s2, @patch_set_s1_s2)).to eq(@s1)
@@ -337,37 +337,37 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'using Diff::LCS.sdiff with context diff callbacks' do
+ describe "using Diff::LCS.sdiff with context diff callbacks" do
before(:each) do
@patch_set_s1_s2 = Diff::LCS.sdiff(@s1, @s2, Diff::LCS::ContextDiffCallbacks)
@patch_set_s2_s1 = Diff::LCS.sdiff(@s2, @s1, Diff::LCS::ContextDiffCallbacks)
end
- it 'autodiscovers s1 to s2 patches' do
+ it "autodiscovers s1 to s2 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 patches' do
+ it "autodiscovers s2 to s1 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 the left-to-right patches' do
+ it "autodiscovers s2 to s1 the left-to-right patches" do
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1)).to eq(@s1)
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2)).to eq(@s1)
end
- it 'correctly patches left-to-right (explicit patch)' do
+ it "correctly patches left-to-right (explicit patch)" do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2, :patch)).to eq(@s2)
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1, :patch)).to eq(@s1)
expect(Diff::LCS.patch!(@s1, @patch_set_s1_s2)).to eq(@s2)
expect(Diff::LCS.patch!(@s2, @patch_set_s2_s1)).to eq(@s1)
end
- it 'correctly patches right-to-left (explicit unpatch)' do
+ it "correctly patches right-to-left (explicit unpatch)" do
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2, :unpatch)).to eq(@s1)
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1, :unpatch)).to eq(@s2)
expect(Diff::LCS.unpatch!(@s2, @patch_set_s1_s2)).to eq(@s1)
@@ -375,37 +375,37 @@ describe 'Diff::LCS.patch' do
end
end
- describe 'using Diff::LCS.sdiff with default diff callbacks' do
+ describe "using Diff::LCS.sdiff with default diff callbacks" do
before(:each) do
@patch_set_s1_s2 = Diff::LCS.sdiff(@s1, @s2, Diff::LCS::DiffCallbacks)
@patch_set_s2_s1 = Diff::LCS.sdiff(@s2, @s1, Diff::LCS::DiffCallbacks)
end
- it 'autodiscovers s1 to s2 patches' do
+ it "autodiscovers s1 to s2 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 patches' do
+ it "autodiscovers s2 to s1 patches" do
expect do
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1)).to eq(@s2)
end.to_not raise_error
end
- it 'autodiscovers s2 to s1 the left-to-right patches' do
+ it "autodiscovers s2 to s1 the left-to-right patches" do
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1)).to eq(@s1)
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2)).to eq(@s1)
end
- it 'correctly patches left-to-right (explicit patch)' do
+ it "correctly patches left-to-right (explicit patch)" do
expect(Diff::LCS.patch(@s1, @patch_set_s1_s2, :patch)).to eq(@s2)
expect(Diff::LCS.patch(@s2, @patch_set_s2_s1, :patch)).to eq(@s1)
expect(Diff::LCS.patch!(@s1, @patch_set_s1_s2)).to eq(@s2)
expect(Diff::LCS.patch!(@s2, @patch_set_s2_s1)).to eq(@s1)
end
- it 'correctly patches right-to-left (explicit unpatch)' do
+ it "correctly patches right-to-left (explicit unpatch)" do
expect(Diff::LCS.patch(@s2, @patch_set_s1_s2, :unpatch)).to eq(@s1)
expect(Diff::LCS.patch(@s1, @patch_set_s2_s1, :unpatch)).to eq(@s2)
expect(Diff::LCS.unpatch!(@s2, @patch_set_s1_s2)).to eq(@s1)
diff --git a/spec/sdiff_spec.rb b/spec/sdiff_spec.rb
index 06d39d6..aded301 100644
--- a/spec/sdiff_spec.rb
+++ b/spec/sdiff_spec.rb
@@ -1,214 +1,216 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
-describe 'Diff::LCS.sdiff' do
+describe "Diff::LCS.sdiff" do
include Diff::LCS::SpecHelper::Matchers
- shared_examples 'compare sequences correctly' do
- it 'compares s1 -> s2 correctly' do
+ shared_examples "compare sequences correctly" do
+ it "compares s1 -> s2 correctly" do
expect(Diff::LCS.sdiff(s1, s2)).to eq(context_diff(result))
end
- it 'compares s2 -> s1 correctly' do
+ it "compares s2 -> s1 correctly" do
expect(Diff::LCS.sdiff(s2, s1)).to eq(context_diff(reverse_sdiff(result)))
end
end
- describe 'using seq1 & seq2' do
+ describe "using seq1 & seq2" do
let(:s1) { seq1 }
let(:s2) { seq2 }
let(:result) { correct_forward_sdiff }
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(abc def yyy xxx ghi jkl) & %w(abc dxf xxx ghi jkl)' do
- let(:s1) { %w(abc def yyy xxx ghi jkl) }
- let(:s2) { %w(abc dxf xxx ghi jkl) }
+ describe "using %w(abc def yyy xxx ghi jkl) & %w(abc dxf xxx ghi jkl)" do
+ let(:s1) { %w[abc def yyy xxx ghi jkl] }
+ let(:s2) { %w[abc dxf xxx ghi jkl] }
let(:result) {
+ # standard:disable Layout/ExtraSpacing
[
- ['=', [0, 'abc'], [0, 'abc']],
- ['!', [1, 'def'], [1, 'dxf']],
- ['-', [2, 'yyy'], [2, nil]],
- ['=', [3, 'xxx'], [2, 'xxx']],
- ['=', [4, 'ghi'], [3, 'ghi']],
- ['=', [5, 'jkl'], [4, 'jkl']]
+ ["=", [0, "abc"], [0, "abc"]],
+ ["!", [1, "def"], [1, "dxf"]],
+ ["-", [2, "yyy"], [2, nil]],
+ ["=", [3, "xxx"], [2, "xxx"]],
+ ["=", [4, "ghi"], [3, "ghi"]],
+ ["=", [5, "jkl"], [4, "jkl"]]
]
+ # standard:enable Layout/ExtraSpacing
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(a b c d e) & %w(a e)' do
- let(:s1) { %w(a b c d e) }
- let(:s2) { %w(a e) }
+ describe "using %w(a b c d e) & %w(a e)" do
+ let(:s1) { %w[a b c d e] }
+ let(:s2) { %w[a e] }
let(:result) {
[
- ['=', [0, 'a'], [0, 'a']],
- ['-', [1, 'b'], [1, nil]],
- ['-', [2, 'c'], [1, nil]],
- ['-', [3, 'd'], [1, nil]],
- ['=', [4, 'e'], [1, 'e']]
+ ["=", [0, "a"], [0, "a"]],
+ ["-", [1, "b"], [1, nil]],
+ ["-", [2, "c"], [1, nil]],
+ ["-", [3, "d"], [1, nil]],
+ ["=", [4, "e"], [1, "e"]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(a e) & %w(a b c d e)' do
- let(:s1) { %w(a e) }
- let(:s2) { %w(a b c d e) }
+ describe "using %w(a e) & %w(a b c d e)" do
+ let(:s1) { %w[a e] }
+ let(:s2) { %w[a b c d e] }
let(:result) {
[
- ['=', [0, 'a'], [0, 'a']],
- ['+', [1, nil], [1, 'b']],
- ['+', [1, nil], [2, 'c']],
- ['+', [1, nil], [3, 'd']],
- ['=', [1, 'e'], [4, 'e']]
+ ["=", [0, "a"], [0, "a"]],
+ ["+", [1, nil], [1, "b"]],
+ ["+", [1, nil], [2, "c"]],
+ ["+", [1, nil], [3, "d"]],
+ ["=", [1, "e"], [4, "e"]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(v x a e) & %w(w y a b c d e)' do
- let(:s1) { %w(v x a e) }
- let(:s2) { %w(w y a b c d e) }
+ describe "using %w(v x a e) & %w(w y a b c d e)" do
+ let(:s1) { %w[v x a e] }
+ let(:s2) { %w[w y a b c d e] }
let(:result) {
[
- ['!', [0, 'v'], [0, 'w']],
- ['!', [1, 'x'], [1, 'y']],
- ['=', [2, 'a'], [2, 'a']],
- ['+', [3, nil], [3, 'b']],
- ['+', [3, nil], [4, 'c']],
- ['+', [3, nil], [5, 'd']],
- ['=', [3, 'e'], [6, 'e']]
+ ["!", [0, "v"], [0, "w"]],
+ ["!", [1, "x"], [1, "y"]],
+ ["=", [2, "a"], [2, "a"]],
+ ["+", [3, nil], [3, "b"]],
+ ["+", [3, nil], [4, "c"]],
+ ["+", [3, nil], [5, "d"]],
+ ["=", [3, "e"], [6, "e"]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(x a e) & %w(a b c d e)' do
- let(:s1) { %w(x a e) }
- let(:s2) { %w(a b c d e) }
+ describe "using %w(x a e) & %w(a b c d e)" do
+ let(:s1) { %w[x a e] }
+ let(:s2) { %w[a b c d e] }
let(:result) {
[
- ['-', [0, 'x'], [0, nil]],
- ['=', [1, 'a'], [0, 'a']],
- ['+', [2, nil], [1, 'b']],
- ['+', [2, nil], [2, 'c']],
- ['+', [2, nil], [3, 'd']],
- ['=', [2, 'e'], [4, 'e']]
+ ["-", [0, "x"], [0, nil]],
+ ["=", [1, "a"], [0, "a"]],
+ ["+", [2, nil], [1, "b"]],
+ ["+", [2, nil], [2, "c"]],
+ ["+", [2, nil], [3, "d"]],
+ ["=", [2, "e"], [4, "e"]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(a e) & %w(x a b c d e)' do
- let(:s1) { %w(a e) }
- let(:s2) { %w(x a b c d e) }
+ describe "using %w(a e) & %w(x a b c d e)" do
+ let(:s1) { %w[a e] }
+ let(:s2) { %w[x a b c d e] }
let(:result) {
[
- ['+', [0, nil], [0, 'x']],
- ['=', [0, 'a'], [1, 'a']],
- ['+', [1, nil], [2, 'b']],
- ['+', [1, nil], [3, 'c']],
- ['+', [1, nil], [4, 'd']],
- ['=', [1, 'e'], [5, 'e']]
+ ["+", [0, nil], [0, "x"]],
+ ["=", [0, "a"], [1, "a"]],
+ ["+", [1, nil], [2, "b"]],
+ ["+", [1, nil], [3, "c"]],
+ ["+", [1, nil], [4, "d"]],
+ ["=", [1, "e"], [5, "e"]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(a e v) & %w(x a b c d e w x)' do
- let(:s1) { %w(a e v) }
- let(:s2) { %w(x a b c d e w x) }
+ describe "using %w(a e v) & %w(x a b c d e w x)" do
+ let(:s1) { %w[a e v] }
+ let(:s2) { %w[x a b c d e w x] }
let(:result) {
[
- ['+', [0, nil], [0, 'x']],
- ['=', [0, 'a'], [1, 'a']],
- ['+', [1, nil], [2, 'b']],
- ['+', [1, nil], [3, 'c']],
- ['+', [1, nil], [4, 'd']],
- ['=', [1, 'e'], [5, 'e']],
- ['!', [2, 'v'], [6, 'w']],
- ['+', [3, nil], [7, 'x']]
+ ["+", [0, nil], [0, "x"]],
+ ["=", [0, "a"], [1, "a"]],
+ ["+", [1, nil], [2, "b"]],
+ ["+", [1, nil], [3, "c"]],
+ ["+", [1, nil], [4, "d"]],
+ ["=", [1, "e"], [5, "e"]],
+ ["!", [2, "v"], [6, "w"]],
+ ["+", [3, nil], [7, "x"]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w() & %w(a b c)' do
- let(:s1) { %w() }
- let(:s2) { %w(a b c) }
+ describe "using %w() & %w(a b c)" do
+ let(:s1) { %w[] }
+ let(:s2) { %w[a b c] }
let(:result) {
[
- ['+', [0, nil], [0, 'a']],
- ['+', [0, nil], [1, 'b']],
- ['+', [0, nil], [2, 'c']]
+ ["+", [0, nil], [0, "a"]],
+ ["+", [0, nil], [1, "b"]],
+ ["+", [0, nil], [2, "c"]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(a b c) & %w(1)' do
- let(:s1) { %w(a b c) }
- let(:s2) { %w(1) }
+ describe "using %w(a b c) & %w(1)" do
+ let(:s1) { %w[a b c] }
+ let(:s2) { %w[1] }
let(:result) {
[
- ['!', [0, 'a'], [0, '1']],
- ['-', [1, 'b'], [1, nil]],
- ['-', [2, 'c'], [1, nil]]
+ ["!", [0, "a"], [0, "1"]],
+ ["-", [1, "b"], [1, nil]],
+ ["-", [2, "c"], [1, nil]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(a b c) & %w(c)' do
- let(:s1) { %w(a b c) }
- let(:s2) { %w(c) }
+ describe "using %w(a b c) & %w(c)" do
+ let(:s1) { %w[a b c] }
+ let(:s2) { %w[c] }
let(:result) {
[
- ['-', [0, 'a'], [0, nil]],
- ['-', [1, 'b'], [0, nil]],
- ['=', [2, 'c'], [0, 'c']]
+ ["-", [0, "a"], [0, nil]],
+ ["-", [1, "b"], [0, nil]],
+ ["=", [2, "c"], [0, "c"]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using %w(abcd efgh ijkl mnop) & []' do
- let(:s1) { %w(abcd efgh ijkl mnop) }
+ describe "using %w(abcd efgh ijkl mnop) & []" do
+ let(:s1) { %w[abcd efgh ijkl mnop] }
let(:s2) { [] }
let(:result) {
[
- ['-', [0, 'abcd'], [0, nil]],
- ['-', [1, 'efgh'], [0, nil]],
- ['-', [2, 'ijkl'], [0, nil]],
- ['-', [3, 'mnop'], [0, nil]]
+ ["-", [0, "abcd"], [0, nil]],
+ ["-", [1, "efgh"], [0, nil]],
+ ["-", [2, "ijkl"], [0, nil]],
+ ["-", [3, "mnop"], [0, nil]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
- describe 'using [[1,2]] & []' do
+ describe "using [[1,2]] & []" do
let(:s1) { [[1, 2]] }
let(:s2) { [] }
let(:result) {
[
- ['-', [0, [1, 2]], [0, nil]]
+ ["-", [0, [1, 2]], [0, nil]]
]
}
- it_has_behavior 'compare sequences correctly'
+ it_has_behavior "compare sequences correctly"
end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 41e1f8e..6993912 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,12 +1,12 @@
# frozen_string_literal: true
-require 'rubygems'
-require 'pathname'
+require "rubygems"
+require "pathname"
-require 'psych' if RUBY_VERSION >= '1.9'
+require "psych" if RUBY_VERSION >= "1.9"
-if ENV['COVERAGE']
- require 'simplecov'
+if ENV["COVERAGE"]
+ require "simplecov"
def require_do(resource)
require resource
@@ -17,13 +17,13 @@ if ENV['COVERAGE']
formatters = [SimpleCov::Formatter::HTMLFormatter]
- require_do('simplecov-rcov') {
+ require_do("simplecov-rcov") {
formatters << SimpleCov::Formatter::RcovFormatter
}
- require_do('simplecov-vim/formatter') {
+ require_do("simplecov-vim/formatter") {
formatters << SimpleCov::Formatter::VimFormatter
}
- require_do('simplecov-sublime-ruby-coverage') {
+ require_do("simplecov-sublime-ruby-coverage") {
formatters << SimpleCov::Formatter::SublimeRubyCoverageFormatter
}
@@ -32,11 +32,11 @@ if ENV['COVERAGE']
end
end
-file = Pathname.new(__FILE__).expand_path
-path = file.parent
+file = Pathname.new(__FILE__).expand_path
+path = file.parent
parent = path.parent
-$:.unshift parent.join('lib')
+$:.unshift parent.join("lib")
module CaptureSubprocessIO
def _synchronize
@@ -48,9 +48,9 @@ module CaptureSubprocessIO
end
def _capture_subprocess_io
- require 'tempfile'
+ require "tempfile"
- captured_stdout, captured_stderr = Tempfile.new('out'), Tempfile.new('err')
+ captured_stdout, captured_stderr = Tempfile.new("out"), Tempfile.new("err")
orig_stdout, orig_stderr = $stdout.dup, $stderr.dup
$stdout.reopen captured_stdout
@@ -71,62 +71,63 @@ module CaptureSubprocessIO
private :_capture_subprocess_io
end
-require 'diff-lcs'
+require "diff-lcs"
module Diff::LCS::SpecHelper
def hello
- 'hello'
+ "hello"
end
def hello_ary
- %w(h e l l o)
+ %w[h e l l o]
end
def seq1
- %w(a b c e h j l m n p)
+ %w[a b c e h j l m n p]
end
def skipped_seq1
- %w(a h n p)
+ %w[a h n p]
end
def seq2
- %w(b c d e f j k l m r s t)
+ %w[b c d e f j k l m r s t]
end
def skipped_seq2
- %w(d f k r s t)
+ %w[d f k r s t]
end
def word_sequence
- %w(abcd efgh ijkl mnopqrstuvwxyz)
+ %w[abcd efgh ijkl mnopqrstuvwxyz]
end
def correct_lcs
- %w(b c e j l m)
+ %w[b c e j l m]
end
+ # standard:disable Layout/ExtraSpacing
def correct_forward_diff
[
[
- ['-', 0, 'a']
+ ["-", 0, "a"]
],
[
- ['+', 2, 'd']
+ ["+", 2, "d"]
],
[
- ['-', 4, 'h'],
- ['+', 4, 'f']
+ ["-", 4, "h"],
+ ["+", 4, "f"]
],
[
- ['+', 6, 'k']
+ ["+", 6, "k"]
],
[
- ['-', 8, 'n'],
- ['+', 9, 'r'],
- ['-', 9, 'p'],
- ['+', 10, 's'],
- ['+', 11, 't']
+ ["-", 8, "n"],
+ ["+", 9, "r"],
+ ["-", 9, "p"],
+ ["+", 10, "s"],
+ ["+", 11, "t"]
]
]
end
@@ -134,52 +135,53 @@ module Diff::LCS::SpecHelper
def correct_backward_diff
[
[
- ['+', 0, 'a']
+ ["+", 0, "a"]
],
[
- ['-', 2, 'd']
+ ["-", 2, "d"]
],
[
- ['-', 4, 'f'],
- ['+', 4, 'h']
+ ["-", 4, "f"],
+ ["+", 4, "h"]
],
[
- ['-', 6, 'k']
+ ["-", 6, "k"]
],
[
- ['-', 9, 'r'],
- ['+', 8, 'n'],
- ['-', 10, 's'],
- ['+', 9, 'p'],
- ['-', 11, 't']
+ ["-", 9, "r"],
+ ["+", 8, "n"],
+ ["-", 10, "s"],
+ ["+", 9, "p"],
+ ["-", 11, "t"]
]
]
end
def correct_forward_sdiff
[
- ['-', [0, 'a'], [0, nil]],
- ['=', [1, 'b'], [0, 'b']],
- ['=', [2, 'c'], [1, 'c']],
- ['+', [3, nil], [2, 'd']],
- ['=', [3, 'e'], [3, 'e']],
- ['!', [4, 'h'], [4, 'f']],
- ['=', [5, 'j'], [5, 'j']],
- ['+', [6, nil], [6, 'k']],
- ['=', [6, 'l'], [7, 'l']],
- ['=', [7, 'm'], [8, 'm']],
- ['!', [8, 'n'], [9, 'r']],
- ['!', [9, 'p'], [10, 's']],
- ['+', [10, nil], [11, 't']]
+ ["-", [0, "a"], [0, nil]],
+ ["=", [1, "b"], [0, "b"]],
+ ["=", [2, "c"], [1, "c"]],
+ ["+", [3, nil], [2, "d"]],
+ ["=", [3, "e"], [3, "e"]],
+ ["!", [4, "h"], [4, "f"]],
+ ["=", [5, "j"], [5, "j"]],
+ ["+", [6, nil], [6, "k"]],
+ ["=", [6, "l"], [7, "l"]],
+ ["=", [7, "m"], [8, "m"]],
+ ["!", [8, "n"], [9, "r"]],
+ ["!", [9, "p"], [10, "s"]],
+ ["+", [10, nil], [11, "t"]]
]
end
+ # standard:enable Layout/ExtraSpacing
def reverse_sdiff(forward_sdiff)
forward_sdiff.map { |line|
line[1], line[2] = line[2], line[1]
case line[0]
- when '-' then line[0] = '+'
- when '+' then line[0] = '-'
+ when "-" then line[0] = "+"
+ when "+" then line[0] = "-"
end
line
}
@@ -195,8 +197,8 @@ module Diff::LCS::SpecHelper
def format_diffs(diffs)
diffs.map { |e|
- if e.kind_of?(Array)
- e.map { |f| f.to_a.join }.join(', ')
+ if e.is_a?(Array)
+ e.map { |f| f.to_a.join }.join(", ")
else
e.to_a.join
end
@@ -224,10 +226,10 @@ module Diff::LCS::SpecHelper
change_result.each do |line|
line = [line[0], line[2], line[1]]
case line[0]
- when '<'
- line[0] = '>'
- when '>'
- line[0] = '<'
+ when "<"
+ line[0] = ">"
+ when ">"
+ line[0] = "<"
end
new_result << line
end
@@ -238,9 +240,9 @@ module Diff::LCS::SpecHelper
new_result = []
change_result.each do |line|
case line[0]
- when '!'
- new_result << ['<', line[1], line[2]]
- new_result << ['>', line[1] + 1, line[2]]
+ when "!"
+ new_result << ["<", line[1], line[2]]
+ new_result << [">", line[1] + 1, line[2]]
else
new_result << line
end
@@ -317,19 +319,19 @@ module Diff::LCS::SpecHelper
end
def match(event)
- @result << ['=', event.old_position, event.new_position]
+ @result << ["=", event.old_position, event.new_position]
end
def discard_a(event)
- @result << ['<', event.old_position, event.new_position]
+ @result << ["<", event.old_position, event.new_position]
end
def discard_b(event)
- @result << ['>', event.old_position, event.new_position]
+ @result << [">", event.old_position, event.new_position]
end
def change(event)
- @result << ['!', event.old_position, event.new_position]
+ @result << ["!", event.old_position, event.new_position]
end
end
cb.reset
@@ -355,9 +357,7 @@ module Diff::LCS::SpecHelper
matcher :correctly_map_sequence do |s1|
match do |actual|
- actual.each_with_index { |ee, ii|
- expect(ee).to be_nil_or_match_values(ii, s1, @s2)
- }
+ actual.each_index { |ii| expect(actual[ii]).to be_nil_or_match_values(ii, s1, @s2) }
end
chain :to_other_sequence do |s2|
@@ -369,6 +369,8 @@ end
RSpec.configure do |conf|
conf.include Diff::LCS::SpecHelper
- conf.alias_it_should_behave_like_to :it_has_behavior, 'has behavior:'
+ conf.alias_it_should_behave_like_to :it_has_behavior, "has behavior:"
+ # standard:disable Style/HashSyntax
conf.filter_run_excluding :broken => true
+ # standard:enable Style/HashSyntax
end
diff --git a/spec/traverse_balanced_spec.rb b/spec/traverse_balanced_spec.rb
index 9ee68ea..3a3f677 100644
--- a/spec/traverse_balanced_spec.rb
+++ b/spec/traverse_balanced_spec.rb
@@ -1,310 +1,312 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
-describe 'Diff::LCS.traverse_balanced' do
+describe "Diff::LCS.traverse_balanced" do
include Diff::LCS::SpecHelper::Matchers
- shared_examples 'with a #change callback' do |s1, s2, result|
- it 'traverses s1 -> s2 correctly' do
+ shared_examples "with a #change callback" do |s1, s2, result|
+ it "traverses s1 -> s2 correctly" do
traversal = balanced_traversal(s1, s2, :balanced_callback)
expect(traversal.result).to eq(result)
end
- it 'traverses s2 -> s1 correctly' do
+ it "traverses s2 -> s1 correctly" do
traversal = balanced_traversal(s2, s1, :balanced_callback)
expect(traversal.result).to eq(balanced_reverse(result))
end
end
- shared_examples 'without a #change callback' do |s1, s2, result|
- it 'traverses s1 -> s2 correctly' do
+ shared_examples "without a #change callback" do |s1, s2, result|
+ it "traverses s1 -> s2 correctly" do
traversal = balanced_traversal(s1, s2, :balanced_callback_no_change)
expect(traversal.result).to eq(map_to_no_change(result))
end
- it 'traverses s2 -> s1 correctly' do
+ it "traverses s2 -> s1 correctly" do
traversal = balanced_traversal(s2, s1, :balanced_callback_no_change)
expect(traversal.result).to eq(map_to_no_change(balanced_reverse(result)))
end
end
describe "identical string sequences ('abc')" do
- s1 = s2 = 'abc'
+ s1 = s2 = "abc"
result = [
- ['=', 0, 0],
- ['=', 1, 1],
- ['=', 2, 2]
+ ["=", 0, 0],
+ ["=", 1, 1],
+ ["=", 2, 2]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'identical array sequences %w(a b c)' do
- s1 = s2 = %w(a b c)
+ describe "identical array sequences %w(a b c)" do
+ s1 = s2 = %w[a b c]
result = [
- ['=', 0, 0],
- ['=', 1, 1],
- ['=', 2, 2]
+ ["=", 0, 0],
+ ["=", 1, 1],
+ ["=", 2, 2]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'sequences %w(a b c) & %w(a x c)' do
- s1 = %w(a b c)
- s2 = %w(a x c)
+ describe "sequences %w(a b c) & %w(a x c)" do
+ s1 = %w[a b c]
+ s2 = %w[a x c]
result = [
- ['=', 0, 0],
- ['!', 1, 1],
- ['=', 2, 2]
+ ["=", 0, 0],
+ ["!", 1, 1],
+ ["=", 2, 2]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'sequences %w(a x y c) & %w(a v w c)' do
- s1 = %w(a x y c)
- s2 = %w(a v w c)
+ describe "sequences %w(a x y c) & %w(a v w c)" do
+ s1 = %w[a x y c]
+ s2 = %w[a v w c]
result = [
- ['=', 0, 0],
- ['!', 1, 1],
- ['!', 2, 2],
- ['=', 3, 3]
+ ["=", 0, 0],
+ ["!", 1, 1],
+ ["!", 2, 2],
+ ["=", 3, 3]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'sequences %w(x y c) & %w(v w c)' do
- s1 = %w(x y c)
- s2 = %w(v w c)
+ describe "sequences %w(x y c) & %w(v w c)" do
+ s1 = %w[x y c]
+ s2 = %w[v w c]
result = [
- ['!', 0, 0],
- ['!', 1, 1],
- ['=', 2, 2]
+ ["!", 0, 0],
+ ["!", 1, 1],
+ ["=", 2, 2]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'sequences %w(a x y z) & %w(b v w)' do
- s1 = %w(a x y z)
- s2 = %w(b v w)
+ describe "sequences %w(a x y z) & %w(b v w)" do
+ s1 = %w[a x y z]
+ s2 = %w[b v w]
result = [
- ['!', 0, 0],
- ['!', 1, 1],
- ['!', 2, 2],
- ['<', 3, 3]
+ ["!", 0, 0],
+ ["!", 1, 1],
+ ["!", 2, 2],
+ ["<", 3, 3]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'sequences %w(a z) & %w(a)' do
- s1 = %w(a z)
- s2 = %w(a)
+ describe "sequences %w(a z) & %w(a)" do
+ s1 = %w[a z]
+ s2 = %w[a]
result = [
- ['=', 0, 0],
- ['<', 1, 1]
+ ["=", 0, 0],
+ ["<", 1, 1]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'sequences %w(z a) & %w(a)' do
- s1 = %w(z a)
- s2 = %w(a)
+ describe "sequences %w(z a) & %w(a)" do
+ s1 = %w[z a]
+ s2 = %w[a]
result = [
- ['<', 0, 0],
- ['=', 1, 0]
+ ["<", 0, 0],
+ ["=", 1, 0]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'sequences %w(a b c) & %w(x y z)' do
- s1 = %w(a b c)
- s2 = %w(x y z)
+ describe "sequences %w(a b c) & %w(x y z)" do
+ s1 = %w[a b c]
+ s2 = %w[x y z]
result = [
- ['!', 0, 0],
- ['!', 1, 1],
- ['!', 2, 2]
+ ["!", 0, 0],
+ ["!", 1, 1],
+ ["!", 2, 2]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'sequences %w(abcd efgh ijkl mnoopqrstuvwxyz) & []' do
- s1 = %w(abcd efgh ijkl mnopqrstuvwxyz)
+ describe "sequences %w(abcd efgh ijkl mnoopqrstuvwxyz) & []" do
+ s1 = %w[abcd efgh ijkl mnopqrstuvwxyz]
s2 = []
result = [
- ['<', 0, 0],
- ['<', 1, 0],
- ['<', 2, 0],
- ['<', 3, 0]
+ ["<", 0, 0],
+ ["<", 1, 0],
+ ["<", 2, 0],
+ ["<", 3, 0]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'strings %q(a b c) & %q(a x c)' do
- s1 = 'a b c'
- s2 = 'a x c'
+ describe "strings %q(a b c) & %q(a x c)" do
+ s1 = "a b c"
+ s2 = "a x c"
result = [
- ['=', 0, 0],
- ['=', 1, 1],
- ['!', 2, 2],
- ['=', 3, 3],
- ['=', 4, 4]
+ ["=", 0, 0],
+ ["=", 1, 1],
+ ["!", 2, 2],
+ ["=", 3, 3],
+ ["=", 4, 4]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'strings %q(a x y c) & %q(a v w c)' do
- s1 = 'a x y c'
- s2 = 'a v w c'
+ describe "strings %q(a x y c) & %q(a v w c)" do
+ s1 = "a x y c"
+ s2 = "a v w c"
result = [
- ['=', 0, 0],
- ['=', 1, 1],
- ['!', 2, 2],
- ['=', 3, 3],
- ['!', 4, 4],
- ['=', 5, 5],
- ['=', 6, 6]
+ ["=", 0, 0],
+ ["=", 1, 1],
+ ["!", 2, 2],
+ ["=", 3, 3],
+ ["!", 4, 4],
+ ["=", 5, 5],
+ ["=", 6, 6]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'strings %q(x y c) & %q(v w c)' do
- s1 = 'x y c'
- s2 = 'v w c'
+ describe "strings %q(x y c) & %q(v w c)" do
+ s1 = "x y c"
+ s2 = "v w c"
result = [
- ['!', 0, 0],
- ['=', 1, 1],
- ['!', 2, 2],
- ['=', 3, 3],
- ['=', 4, 4]
+ ["!", 0, 0],
+ ["=", 1, 1],
+ ["!", 2, 2],
+ ["=", 3, 3],
+ ["=", 4, 4]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'strings %q(a x y z) & %q(b v w)' do
- s1 = 'a x y z'
- s2 = 'b v w'
+ describe "strings %q(a x y z) & %q(b v w)" do
+ s1 = "a x y z"
+ s2 = "b v w"
result = [
- ['!', 0, 0],
- ['=', 1, 1],
- ['!', 2, 2],
- ['=', 3, 3],
- ['!', 4, 4],
- ['<', 5, 5],
- ['<', 6, 5]
+ ["!", 0, 0],
+ ["=", 1, 1],
+ ["!", 2, 2],
+ ["=", 3, 3],
+ ["!", 4, 4],
+ ["<", 5, 5],
+ ["<", 6, 5]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'strings %q(a z) & %q(a)' do
- s1 = 'a z'
- s2 = 'a'
+ describe "strings %q(a z) & %q(a)" do
+ s1 = "a z"
+ s2 = "a"
result = [
- ['=', 0, 0],
- ['<', 1, 1],
- ['<', 2, 1]
+ ["=", 0, 0],
+ ["<", 1, 1],
+ ["<", 2, 1]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'strings %q(z a) & %q(a)' do
- s1 = 'z a'
- s2 = 'a'
+ describe "strings %q(z a) & %q(a)" do
+ s1 = "z a"
+ s2 = "a"
result = [
- ['<', 0, 0],
- ['<', 1, 0],
- ['=', 2, 0]
+ ["<", 0, 0],
+ ["<", 1, 0],
+ ["=", 2, 0]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'strings %q(a b c) & %q(x y z)' do
- s1 = 'a b c'
- s2 = 'x y z'
+ describe "strings %q(a b c) & %q(x y z)" do
+ s1 = "a b c"
+ s2 = "x y z"
result = [
- ['!', 0, 0],
- ['=', 1, 1],
- ['!', 2, 2],
- ['=', 3, 3],
- ['!', 4, 4]
+ ["!", 0, 0],
+ ["=", 1, 1],
+ ["!", 2, 2],
+ ["=", 3, 3],
+ ["!", 4, 4]
]
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
- describe 'strings %q(abcd efgh ijkl mnopqrstuvwxyz) & %q()' do
- s1 = 'abcd efgh ijkl mnopqrstuvwxyz'
- s2 = ''
+ describe "strings %q(abcd efgh ijkl mnopqrstuvwxyz) & %q()" do
+ s1 = "abcd efgh ijkl mnopqrstuvwxyz"
+ s2 = ""
+ # standard:disable Layout/ExtraSpacing
result = [
- ['<', 0, 0],
- ['<', 1, 0],
- ['<', 2, 0],
- ['<', 3, 0],
- ['<', 4, 0],
- ['<', 5, 0],
- ['<', 6, 0],
- ['<', 7, 0],
- ['<', 8, 0],
- ['<', 9, 0],
- ['<', 10, 0],
- ['<', 11, 0],
- ['<', 12, 0],
- ['<', 13, 0],
- ['<', 14, 0],
- ['<', 15, 0],
- ['<', 16, 0],
- ['<', 17, 0],
- ['<', 18, 0],
- ['<', 19, 0],
- ['<', 20, 0],
- ['<', 21, 0],
- ['<', 22, 0],
- ['<', 23, 0],
- ['<', 24, 0],
- ['<', 25, 0],
- ['<', 26, 0],
- ['<', 27, 0],
- ['<', 28, 0]
+ ["<", 0, 0],
+ ["<", 1, 0],
+ ["<", 2, 0],
+ ["<", 3, 0],
+ ["<", 4, 0],
+ ["<", 5, 0],
+ ["<", 6, 0],
+ ["<", 7, 0],
+ ["<", 8, 0],
+ ["<", 9, 0],
+ ["<", 10, 0],
+ ["<", 11, 0],
+ ["<", 12, 0],
+ ["<", 13, 0],
+ ["<", 14, 0],
+ ["<", 15, 0],
+ ["<", 16, 0],
+ ["<", 17, 0],
+ ["<", 18, 0],
+ ["<", 19, 0],
+ ["<", 20, 0],
+ ["<", 21, 0],
+ ["<", 22, 0],
+ ["<", 23, 0],
+ ["<", 24, 0],
+ ["<", 25, 0],
+ ["<", 26, 0],
+ ["<", 27, 0],
+ ["<", 28, 0]
]
+ # standard:enable Layout/ExtraSpacing
- it_has_behavior 'with a #change callback', s1, s2, result
- it_has_behavior 'without a #change callback', s1, s2, result
+ it_has_behavior "with a #change callback", s1, s2, result
+ it_has_behavior "without a #change callback", s1, s2, result
end
end
diff --git a/spec/traverse_sequences_spec.rb b/spec/traverse_sequences_spec.rb
index b185e1d..8e9928f 100644
--- a/spec/traverse_sequences_spec.rb
+++ b/spec/traverse_sequences_spec.rb
@@ -1,10 +1,10 @@
# frozen_string_literal: true
-require 'spec_helper'
+require "spec_helper"
-describe 'Diff::LCS.traverse_sequences' do
- describe 'callback with no finishers' do
- describe 'over (seq1, seq2)' do
+describe "Diff::LCS.traverse_sequences" do
+ describe "callback with no finishers" do
+ describe "over (seq1, seq2)" do
before(:each) do
@callback_s1_s2 = simple_callback_no_finishers
Diff::LCS.traverse_sequences(seq1, seq2, @callback_s1_s2)
@@ -13,27 +13,27 @@ describe 'Diff::LCS.traverse_sequences' do
Diff::LCS.traverse_sequences(seq2, seq1, @callback_s2_s1)
end
- it 'has the correct LCS result on left-matches' do
+ it "has the correct LCS result on left-matches" do
expect(@callback_s1_s2.matched_a).to eq(correct_lcs)
expect(@callback_s2_s1.matched_a).to eq(correct_lcs)
end
- it 'has the correct LCS result on right-matches' do
+ it "has the correct LCS result on right-matches" do
expect(@callback_s1_s2.matched_b).to eq(correct_lcs)
expect(@callback_s2_s1.matched_b).to eq(correct_lcs)
end
- it 'has the correct skipped sequences with the left sequence' do
+ it "has the correct skipped sequences with the left sequence" do
expect(@callback_s1_s2.discards_a).to eq(skipped_seq1)
expect(@callback_s2_s1.discards_a).to eq(skipped_seq2)
end
- it 'has the correct skipped sequences with the right sequence' do
+ it "has the correct skipped sequences with the right sequence" do
expect(@callback_s1_s2.discards_b).to eq(skipped_seq2)
expect(@callback_s2_s1.discards_b).to eq(skipped_seq1)
end
- it 'does not have anything done markers from the left or right sequences' do
+ it "does not have anything done markers from the left or right sequences" do
expect(@callback_s1_s2.done_a).to be_empty
expect(@callback_s1_s2.done_b).to be_empty
expect(@callback_s2_s1.done_a).to be_empty
@@ -41,64 +41,64 @@ describe 'Diff::LCS.traverse_sequences' do
end
end
- describe 'over (hello, hello)' do
+ describe "over (hello, hello)" do
before(:each) do
@callback = simple_callback_no_finishers
Diff::LCS.traverse_sequences(hello, hello, @callback)
end
- it 'has the correct LCS result on left-matches' do
- expect(@callback.matched_a).to eq(hello.split(//))
+ it "has the correct LCS result on left-matches" do
+ expect(@callback.matched_a).to eq(hello.chars)
end
- it 'has the correct LCS result on right-matches' do
- expect(@callback.matched_b).to eq(hello.split(//))
+ it "has the correct LCS result on right-matches" do
+ expect(@callback.matched_b).to eq(hello.chars)
end
- it 'has the correct skipped sequences with the left sequence', :only => true do
+ it "has the correct skipped sequences with the left sequence" do
expect(@callback.discards_a).to be_empty
end
- it 'has the correct skipped sequences with the right sequence' do
+ it "has the correct skipped sequences with the right sequence" do
expect(@callback.discards_b).to be_empty
end
- it 'does not have anything done markers from the left or right sequences' do
+ it "does not have anything done markers from the left or right sequences" do
expect(@callback.done_a).to be_empty
expect(@callback.done_b).to be_empty
end
end
- describe 'over (hello_ary, hello_ary)' do
+ describe "over (hello_ary, hello_ary)" do
before(:each) do
@callback = simple_callback_no_finishers
Diff::LCS.traverse_sequences(hello_ary, hello_ary, @callback)
end
- it 'has the correct LCS result on left-matches' do
+ it "has the correct LCS result on left-matches" do
expect(@callback.matched_a).to eq(hello_ary)
end
- it 'has the correct LCS result on right-matches' do
+ it "has the correct LCS result on right-matches" do
expect(@callback.matched_b).to eq(hello_ary)
end
- it 'has the correct skipped sequences with the left sequence' do
+ it "has the correct skipped sequences with the left sequence" do
expect(@callback.discards_a).to be_empty
end
- it 'has the correct skipped sequences with the right sequence' do
+ it "has the correct skipped sequences with the right sequence" do
expect(@callback.discards_b).to be_empty
end
- it 'does not have anything done markers from the left or right sequences' do
+ it "does not have anything done markers from the left or right sequences" do
expect(@callback.done_a).to be_empty
expect(@callback.done_b).to be_empty
end
end
end
- describe 'callback with finisher' do
+ describe "callback with finisher" do
before(:each) do
@callback_s1_s2 = simple_callback
Diff::LCS.traverse_sequences(seq1, seq2, @callback_s1_s2)
@@ -106,32 +106,32 @@ describe 'Diff::LCS.traverse_sequences' do
Diff::LCS.traverse_sequences(seq2, seq1, @callback_s2_s1)
end
- it 'has the correct LCS result on left-matches' do
+ it "has the correct LCS result on left-matches" do
expect(@callback_s1_s2.matched_a).to eq(correct_lcs)
expect(@callback_s2_s1.matched_a).to eq(correct_lcs)
end
- it 'has the correct LCS result on right-matches' do
+ it "has the correct LCS result on right-matches" do
expect(@callback_s1_s2.matched_b).to eq(correct_lcs)
expect(@callback_s2_s1.matched_b).to eq(correct_lcs)
end
- it 'has the correct skipped sequences for the left sequence' do
+ it "has the correct skipped sequences for the left sequence" do
expect(@callback_s1_s2.discards_a).to eq(skipped_seq1)
expect(@callback_s2_s1.discards_a).to eq(skipped_seq2)
end
- it 'has the correct skipped sequences for the right sequence' do
+ it "has the correct skipped sequences for the right sequence" do
expect(@callback_s1_s2.discards_b).to eq(skipped_seq2)
expect(@callback_s2_s1.discards_b).to eq(skipped_seq1)
end
- it 'has done markers differently-sized sequences' do
- expect(@callback_s1_s2.done_a).to eq([['p', 9, 't', 11]])
+ it "has done markers differently-sized sequences" do
+ expect(@callback_s1_s2.done_a).to eq([["p", 9, "t", 11]])
expect(@callback_s1_s2.done_b).to be_empty
expect(@callback_s2_s1.done_a).to be_empty
- expect(@callback_s2_s1.done_b).to eq([['t', 11, 'p', 9]])
+ expect(@callback_s2_s1.done_b).to eq([["t", 11, "p", 9]])
end
end
end