Git: components 301-320
This commit is contained in:
121 files changed
+7031
-2
No files matched your search
@@ -0,0 +1,38 @@
|
||||
package internal
|
||||
|
||||
import (
|
||||
"slices"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestWordTokens(t *testing.T) {
|
||||
got := wordTokens("let x_1 = foo(bar); ok")
|
||||
want := []string{"let", " ", "x_1", " ", "=", " ", "foo", "(", "bar", ")", ";", " ", "ok"}
|
||||
if !slices.Equal(got, want) {
|
||||
t.Fatalf("tokens %q", got)
|
||||
}
|
||||
if wordTokens("") != nil {
|
||||
t.Fatal("empty line has tokens")
|
||||
}
|
||||
}
|
||||
|
||||
func TestWordDiff(t *testing.T) {
|
||||
from, to := WordDiff("return a + b", "return a - total")
|
||||
wantFrom := []WordSpan{{DiffEqual, "return a "}, {DiffDelete, "+"}, {DiffEqual, " "}, {DiffDelete, "b"}}
|
||||
wantTo := []WordSpan{{DiffEqual, "return a "}, {DiffInsert, "-"}, {DiffEqual, " "}, {DiffInsert, "total"}}
|
||||
if !slices.Equal(from, wantFrom) || !slices.Equal(to, wantTo) {
|
||||
t.Fatalf("from %+v to %+v", from, to)
|
||||
}
|
||||
join := func(s []WordSpan) (out string) {
|
||||
for _, w := range s {
|
||||
out += w.Text
|
||||
}
|
||||
return
|
||||
}
|
||||
for _, p := range [][2]string{{"", "new text"}, {"old text", ""}, {"same", "same"}, {"中文 词语", "中文 句子"}} {
|
||||
f, to := WordDiff(p[0], p[1])
|
||||
if join(f) != p[0] || join(to) != p[1] {
|
||||
t.Errorf("%q→%q rebuilt %q→%q", p[0], p[1], join(f), join(to))
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user