|
|
|
@ -11,18 +11,47 @@ func TestDelta(t *testing.T) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
cases := []c{ |
|
|
|
|
{"empty", "", "", Delta{}}, |
|
|
|
|
{"empty with content", "a", "a", Delta{}}, |
|
|
|
|
{"insert with no content", "a", "a", Insert(0, 1, "")}, |
|
|
|
|
{"insert", "a", "ab", Insert(0, 1, "b")}, |
|
|
|
|
{"insert across line", "a", "a\nb", Insert(0, 1, "\nb")}, |
|
|
|
|
{"insert new line", "ab", "a\nb", Insert(0, 1, "\n")}, |
|
|
|
|
{"insert lines at beginning", "ab", "\n\nab", Insert(0, 0, "\n\n")}, |
|
|
|
|
{"insert lines at end", "ab", "ab\n\n", Insert(0, 2, "\n\n")}, |
|
|
|
|
{"insert more lines", "a\nb", "a\n\n\nb", Insert(0, 1, "\n\n")}, |
|
|
|
|
|
|
|
|
|
{"remove", "a", "", Remove(0, 0, "a")}, |
|
|
|
|
{"remove across line", "a\nb", "a", Remove(0, 1, "\nb")}, |
|
|
|
|
|
|
|
|
|
// empty tests
|
|
|
|
|
|
|
|
|
|
{"empty", |
|
|
|
|
"", "", Delta{}}, |
|
|
|
|
|
|
|
|
|
{"empty with content", |
|
|
|
|
"a", "a", Delta{}}, |
|
|
|
|
|
|
|
|
|
// insert tests
|
|
|
|
|
|
|
|
|
|
{"insert with no content", |
|
|
|
|
"a", "a", Insert(0, 1, "")}, |
|
|
|
|
|
|
|
|
|
{"insert", |
|
|
|
|
"a", "ab", Insert(0, 1, "b")}, |
|
|
|
|
|
|
|
|
|
{"insert across line", |
|
|
|
|
"a", "a\nb", Insert(0, 1, "\nb")}, |
|
|
|
|
|
|
|
|
|
{"insert new line", |
|
|
|
|
"ab", "a\nb", Insert(0, 1, "\n")}, |
|
|
|
|
|
|
|
|
|
{"insert lines at beginning", |
|
|
|
|
"ab", "\n\nab", Insert(0, 0, "\n\n")}, |
|
|
|
|
|
|
|
|
|
{"insert lines at end", |
|
|
|
|
"ab", "ab\n\n", Insert(0, 2, "\n\n")}, |
|
|
|
|
|
|
|
|
|
{"insert more lines", |
|
|
|
|
"a\nb", "a\n\n\nb", Insert(0, 1, "\n\n")}, |
|
|
|
|
|
|
|
|
|
// remove tests
|
|
|
|
|
{"remove", |
|
|
|
|
"a", "", Remove(0, 0, "a")}, |
|
|
|
|
|
|
|
|
|
{"remove part", |
|
|
|
|
"aa", "a", Remove(0, 0, "a")}, |
|
|
|
|
|
|
|
|
|
{"remove across line", |
|
|
|
|
"a\nb", "a", Remove(0, 1, "\nb")}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for _, c := range cases { |
|
|
|
|