diff options
Diffstat (limited to 'spec/traverse_balanced_spec.rb')
-rw-r--r-- | spec/traverse_balanced_spec.rb | 380 |
1 files changed, 191 insertions, 189 deletions
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 |