Skip to content

Commit 7d83dcf

Browse files
committed
fixes error in forward middle snake search
1 parent 7fe34af commit 7d83dcf

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

diff.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func (c *context) findMiddleSnake(aoffset, boffset, alimit, blimit int) (int, in
113113
for d := 0; d <= maxd; d++ {
114114
// forward search
115115
for k := fmid - d; k <= fmid+d; k += 2 {
116-
if k == fmid-d || k != fmid+d && c.forward[foff+k+1] < c.forward[foff+k-1] {
116+
if k == fmid-d || k != fmid+d && c.forward[foff+k+1] > c.forward[foff+k-1] {
117117
x = c.forward[foff+k+1] // down
118118
} else {
119119
x = c.forward[foff+k-1] + 1 // right

diff_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,30 @@ func TestDiffBA(t *testing.T) {
117117
}
118118
}
119119

120+
func TestDiffRunes(t *testing.T) {
121+
d := &runes{
122+
[]rune("brown fox jumps over the lazy dog"),
123+
[]rune("brwn faax junps ovver the lay dago"),
124+
}
125+
n, m := len(d.a), len(d.b)
126+
res := Diff(n, m, d)
127+
echange := []Change{
128+
{2, 2, 1, 0},
129+
{7, 6, 1, 2},
130+
{12, 12, 1, 1},
131+
{18, 18, 0, 1},
132+
{27, 28, 1, 0},
133+
{31, 31, 0, 2},
134+
{32, 34, 1, 0},
135+
}
136+
for i, c := range res {
137+
t.Log(c)
138+
if c != echange[i] {
139+
t.Error("expected", echange[i], "got", c)
140+
}
141+
}
142+
}
143+
120144
func BenchmarkDiff(b *testing.B) {
121145
t := tests[len(tests)-1]
122146
d := &ints{t.a, t.b}

example_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import (
99
"github.com/mb0/diff"
1010
)
1111

12-
var names = map[string]int {
13-
"one": 1,
14-
"two": 2,
12+
var names = map[string]int{
13+
"one": 1,
14+
"two": 2,
1515
"three": 3,
1616
}
1717

0 commit comments

Comments
 (0)