| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- package text
- import (
- "bytes"
- "testing"
- )
- type T struct {
- inp, exp, pre string
- }
- var tests = []T{
- {
- "The quick brown fox\njumps over the lazy\ndog.\nBut not quickly.\n",
- "xxxThe quick brown fox\nxxxjumps over the lazy\nxxxdog.\nxxxBut not quickly.\n",
- "xxx",
- },
- {
- "The quick brown fox\njumps over the lazy\ndog.\n\nBut not quickly.",
- "xxxThe quick brown fox\nxxxjumps over the lazy\nxxxdog.\n\nxxxBut not quickly.",
- "xxx",
- },
- }
- func TestIndent(t *testing.T) {
- for _, test := range tests {
- got := Indent(test.inp, test.pre)
- if got != test.exp {
- t.Errorf("mismatch %q != %q", got, test.exp)
- }
- }
- }
- type IndentWriterTest struct {
- inp, exp string
- pre []string
- }
- var ts = []IndentWriterTest{
- {
- `
- The quick brown fox
- jumps over the lazy
- dog.
- But not quickly.
- `[1:],
- `
- xxxThe quick brown fox
- xxxjumps over the lazy
- xxxdog.
- xxxBut not quickly.
- `[1:],
- []string{"xxx"},
- },
- {
- `
- The quick brown fox
- jumps over the lazy
- dog.
- But not quickly.
- `[1:],
- `
- xxaThe quick brown fox
- xxxjumps over the lazy
- xxxdog.
- xxxBut not quickly.
- `[1:],
- []string{"xxa", "xxx"},
- },
- {
- `
- The quick brown fox
- jumps over the lazy
- dog.
- But not quickly.
- `[1:],
- `
- xxaThe quick brown fox
- xxbjumps over the lazy
- xxcdog.
- xxxBut not quickly.
- `[1:],
- []string{"xxa", "xxb", "xxc", "xxx"},
- },
- {
- `
- The quick brown fox
- jumps over the lazy
- dog.
- But not quickly.`[1:],
- `
- xxaThe quick brown fox
- xxxjumps over the lazy
- xxxdog.
- xxx
- xxxBut not quickly.`[1:],
- []string{"xxa", "xxx"},
- },
- }
- func TestIndentWriter(t *testing.T) {
- for _, test := range ts {
- b := new(bytes.Buffer)
- pre := make([][]byte, len(test.pre))
- for i := range test.pre {
- pre[i] = []byte(test.pre[i])
- }
- w := NewIndentWriter(b, pre...)
- if _, err := w.Write([]byte(test.inp)); err != nil {
- t.Error(err)
- }
- if got := b.String(); got != test.exp {
- t.Errorf("mismatch %q != %q", got, test.exp)
- t.Log(got)
- t.Log(test.exp)
- }
- }
- }
|