github.com/seeker-insurance/kit@v0.0.13/pretty/text/wrap_test.go (about) 1 package text 2 3 import ( 4 "bytes" 5 "testing" 6 ) 7 8 var text = "The quick brown fox jumps over the lazy dog." 9 10 func TestWrap(t *testing.T) { 11 exp := [][]string{ 12 {"The", "quick", "brown", "fox"}, 13 {"jumps", "over", "the", "lazy", "dog."}, 14 } 15 words := bytes.Split([]byte(text), sp) 16 got := WrapWords(words, 1, 24, defaultPenalty) 17 if len(exp) != len(got) { 18 t.Fail() 19 } 20 for i := range exp { 21 if len(exp[i]) != len(got[i]) { 22 t.Fail() 23 } 24 for j := range exp[i] { 25 if exp[i][j] != string(got[i][j]) { 26 t.Fatal(i, exp[i][j], got[i][j]) 27 } 28 } 29 } 30 } 31 32 func TestWrapNarrow(t *testing.T) { 33 exp := "The\nquick\nbrown\nfox\njumps\nover\nthe\nlazy\ndog." 34 if Wrap(text, 5) != exp { 35 t.Fail() 36 } 37 } 38 39 func TestWrapOneLine(t *testing.T) { 40 exp := "The quick brown fox jumps over the lazy dog." 41 if Wrap(text, 500) != exp { 42 t.Fail() 43 } 44 } 45 46 func TestWrapBug1(t *testing.T) { 47 cases := []struct { 48 limit int 49 text string 50 want string 51 }{ 52 {4, "aaaaa", "aaaaa"}, 53 {4, "a aaaaa", "a\naaaaa"}, 54 } 55 56 for _, test := range cases { 57 got := Wrap(test.text, test.limit) 58 if got != test.want { 59 t.Errorf("Wrap(%q, %d) = %q want %q", test.text, test.limit, got, test.want) 60 } 61 } 62 }