summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Ziegler <austin@zieglers.ca>2021-12-19 21:16:54 -0500
committerGitHub <noreply@github.com>2021-12-19 21:16:54 -0500
commitac66fb387e56ad841035ec55fdd93d9e2f11a9ff (patch)
treea332387e8afe2ea9dc40e5274f7fdab5cf092f8e
parent1719c61e7f7ea60cee72effa87d82629f4d401c9 (diff)
parenteb5b8cb8b5622915aa43fb1d50f9feba7bf2f5f4 (diff)
downloaddiff-lcs-ac66fb387e56ad841035ec55fdd93d9e2f11a9ff.tar.gz
Merge pull request #75 from tiendo1011/fix-off-by-one-error
Fix off-by-one error
-rw-r--r--lib/diff/lcs.rb2
-rw-r--r--spec/traverse_sequences_spec.rb6
2 files changed, 3 insertions, 5 deletions
diff --git a/lib/diff/lcs.rb b/lib/diff/lcs.rb
index 443c54f..5fdd911 100644
--- a/lib/diff/lcs.rb
+++ b/lib/diff/lcs.rb
@@ -292,7 +292,7 @@ class << Diff::LCS
b_size = seq2.size
ai = bj = 0
- (0..matches.size).each do |i|
+ (0...matches.size).each do |i|
b_line = matches[i]
ax = string ? seq1[i, 1] : seq1[i]
diff --git a/spec/traverse_sequences_spec.rb b/spec/traverse_sequences_spec.rb
index ea7a129..b185e1d 100644
--- a/spec/traverse_sequences_spec.rb
+++ b/spec/traverse_sequences_spec.rb
@@ -127,13 +127,11 @@ describe 'Diff::LCS.traverse_sequences' do
end
it 'has done markers differently-sized sequences' do
- expect(@callback_s1_s2.done_a).to eq([['p', 9, 's', 10]])
+ expect(@callback_s1_s2.done_a).to eq([['p', 9, 't', 11]])
expect(@callback_s1_s2.done_b).to be_empty
- # 20110731 I don't yet understand why this particular behaviour
- # isn't transitive.
expect(@callback_s2_s1.done_a).to be_empty
- expect(@callback_s2_s1.done_b).to be_empty
+ expect(@callback_s2_s1.done_b).to eq([['t', 11, 'p', 9]])
end
end
end