difflib: move and publish splitLines in difflib

This commit is contained in:
Patrick Mezard
2013-11-23 20:53:20 +01:00
parent 6f90939c9a
commit 06eeb1d948
2 changed files with 19 additions and 16 deletions

View File

@@ -17,6 +17,7 @@ import (
"bytes"
"fmt"
"io"
"strings"
)
func min(a, b int) int {
@@ -743,3 +744,13 @@ func GetContextDiffString(diff ContextDiff) (string, error) {
err := WriteContextDiff(w, diff)
return string(w.Bytes()), err
}
// Split a string on "\n" while preserving them. The output can be used
// as input for UnifiedDiff and ContextDiff structures.
func SplitLines(s string) []string {
lines := []string{}
for _, line := range strings.Split(s, "\n") {
lines = append(lines, line+"\n")
}
return lines
}

View File

@@ -102,14 +102,6 @@ group
}
}
func splitLines(s string) []string {
lines := []string{}
for _, line := range strings.Split(s, "\n") {
lines = append(lines, line+"\n")
}
return lines
}
func TestUnifiedDiff(t *testing.T) {
a := `one
two
@@ -120,8 +112,8 @@ one
three
four`
diff := UnifiedDiff{
A: splitLines(a),
B: splitLines(b),
A: SplitLines(a),
B: SplitLines(b),
FromFile: "Original",
FromDate: "2005-01-26 23:30:50",
ToFile: "Current",
@@ -158,8 +150,8 @@ one
tree
four`
diff := ContextDiff{
A: splitLines(a),
B: splitLines(b),
A: SplitLines(a),
B: SplitLines(b),
FromFile: "Original",
ToFile: "Current",
Context: 3,
@@ -309,13 +301,13 @@ func TestOutputFormatTabDelimiter(t *testing.T) {
}
ud, err := GetUnifiedDiffString(diff)
assertEqual(t, err, nil)
assertEqual(t, splitLines(ud)[:2], []string{
assertEqual(t, SplitLines(ud)[:2], []string{
"--- Original\t2005-01-26 23:30:50\n",
"+++ Current\t2010-04-12 10:20:52\n",
})
cd, err := GetContextDiffString(ContextDiff(diff))
assertEqual(t, err, nil)
assertEqual(t, splitLines(cd)[:2], []string{
assertEqual(t, SplitLines(cd)[:2], []string{
"*** Original\t2005-01-26 23:30:50\n",
"--- Current\t2010-04-12 10:20:52\n",
})
@@ -331,9 +323,9 @@ func TestOutputFormatNoTrailingTabOnEmptyFiledate(t *testing.T) {
}
ud, err := GetUnifiedDiffString(diff)
assertEqual(t, err, nil)
assertEqual(t, splitLines(ud)[:2], []string{"--- Original\n", "+++ Current\n"})
assertEqual(t, SplitLines(ud)[:2], []string{"--- Original\n", "+++ Current\n"})
cd, err := GetContextDiffString(ContextDiff(diff))
assertEqual(t, err, nil)
assertEqual(t, splitLines(cd)[:2], []string{"*** Original\n", "--- Current\n"})
assertEqual(t, SplitLines(cd)[:2], []string{"*** Original\n", "--- Current\n"})
}