1 package text
2
3 import (
4 "fmt"
5 "strings"
6 "testing"
7
8 "github.com/stretchr/testify/assert"
9 )
10
11 func ExampleWrapHard() {
12 str := `The quick brown fox jumped over the lazy dog.
13
14 A big crocodile died empty-fanged, gulping horribly in jerking kicking little
15 motions. Nonchalant old Peter Quinn ruthlessly shot the under-water vermin with
16 Xavier yelling Zap!`
17 strWrapped := WrapHard(str, 30)
18 for idx, line := range strings.Split(strWrapped, "\n") {
19 fmt.Printf("Line #%02d: '%s'\n", idx+1, line)
20 }
21
22
23
24
25
26
27
28
29
30
31 }
32
33 func TestWrapHard(t *testing.T) {
34 assert.Equal(t, "", WrapHard("Ghost", 0))
35 assert.Equal(t, "G\nh\no\ns\nt", WrapHard("Ghost", 1))
36 assert.Equal(t, "Gh\nos\nt", WrapHard("Ghost", 2))
37 assert.Equal(t, "Gho\nst", WrapHard("Ghost", 3))
38 assert.Equal(t, "Ghos\nt", WrapHard("Ghost", 4))
39 assert.Equal(t, "Ghost", WrapHard("Ghost", 5))
40 assert.Equal(t, "Ghost", WrapHard("Ghost", 6))
41 assert.Equal(t, "Jo\nn \nSn\now", WrapHard("Jon\nSnow", 2))
42 assert.Equal(t, "Jo\nn \nSn\now", WrapHard("Jon\nSnow\n", 2))
43 assert.Equal(t, "Jon\nSno\nw", WrapHard("Jon\nSnow\n", 3))
44 assert.Equal(t, "Jon i\ns a S\nnow", WrapHard("Jon is a Snow", 5))
45 assert.Equal(t, "\x1b[33mJon\x1b[0m\nSno\nw", WrapHard("\x1b[33mJon\x1b[0m\nSnow", 3))
46 assert.Equal(t, "\x1b[33mJon\x1b[0m\nSno\nw", WrapHard("\x1b[33mJon\x1b[0m\nSnow\n", 3))
47 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33mSno\x1b[0m\n\x1b[33mw\x1b[0m", WrapHard("\x1b[33mJon Snow\x1b[0m", 3))
48 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33mSno\x1b[0m\n\x1b[33mw\x1b[0m", WrapHard("\x1b[33mJon Snow\n", 3))
49 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33mSno\x1b[0m\n\x1b[33mw \x1b[0m", WrapHard("\x1b[33mJon Snow\n\x1b[0m", 3))
50
51 complexIn := "+---+------+-------+------+\n| 1 | Arya | Stark | 3000 |\n+---+------+-------+------+"
52 assert.Equal(t, complexIn, WrapHard(complexIn, 27))
53 }
54
55 func ExampleWrapSoft() {
56 str := `The quick brown fox jumped over the lazy dog.
57
58 A big crocodile died empty-fanged, gulping horribly in jerking kicking little
59 motions. Nonchalant old Peter Quinn ruthlessly shot the under-water vermin with
60 Xavier yelling Zap!`
61 strWrapped := WrapSoft(str, 30)
62 for idx, line := range strings.Split(strWrapped, "\n") {
63 fmt.Printf("Line #%02d: '%s'\n", idx+1, line)
64 }
65
66
67
68
69
70
71
72
73
74
75
76 }
77
78 func TestWrapSoft(t *testing.T) {
79 assert.Equal(t, "", WrapSoft("Ghost", 0))
80 assert.Equal(t, "G\nh\no\ns\nt", WrapSoft("Ghost", 1))
81 assert.Equal(t, "Gh\nos\nt", WrapSoft("Ghost", 2))
82 assert.Equal(t, "Gho\nst", WrapSoft("Ghost", 3))
83 assert.Equal(t, "Ghos\nt", WrapSoft("Ghost", 4))
84 assert.Equal(t, "Ghost", WrapSoft("Ghost", 5))
85 assert.Equal(t, "Ghost", WrapSoft("Ghost", 6))
86 assert.Equal(t, "Jo\nn \nSn\now", WrapSoft("Jon\nSnow", 2))
87 assert.Equal(t, "Jo\nn \nSn\now", WrapSoft("Jon\nSnow\n", 2))
88 assert.Equal(t, "Jon\nSno\nw", WrapSoft("Jon\nSnow\n", 3))
89 assert.Equal(t, "Jon \nSnow", WrapSoft("Jon\nSnow", 4))
90 assert.Equal(t, "Jon \nSnow", WrapSoft("Jon\nSnow\n", 4))
91 assert.Equal(t, "Jon \nis a \nSnow", WrapSoft("Jon is a Snow", 5))
92 assert.Equal(t, "\x1b[33mJon\x1b[0m\nSno\nw", WrapSoft("\x1b[33mJon\x1b[0m\nSnow", 3))
93 assert.Equal(t, "\x1b[33mJon\x1b[0m\nSno\nw", WrapSoft("\x1b[33mJon\x1b[0m\nSnow\n", 3))
94 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33mSno\x1b[0m\n\x1b[33mw\x1b[0m", WrapSoft("\x1b[33mJon Snow\x1b[0m", 3))
95 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33mSno\x1b[0m\n\x1b[33mw\x1b[0m", WrapSoft("\x1b[33mJon Snow\n", 3))
96 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33mSno\x1b[0m\n\x1b[33mw \x1b[0m", WrapSoft("\x1b[33mJon Snow\n\x1b[0m", 3))
97
98 complexIn := "+---+------+-------+------+\n| 1 | Arya | Stark | 3000 |\n+---+------+-------+------+"
99 assert.Equal(t, complexIn, WrapSoft(complexIn, 27))
100
101 assert.Equal(t, "\x1b[33mJon \x1b[0m\n\x1b[33mSnow\x1b[0m", WrapSoft("\x1b[33mJon Snow\x1b[0m", 4))
102 assert.Equal(t, "\x1b[33mJon \x1b[0m\n\x1b[33mSnow\x1b[0m\n\x1b[33m???\x1b[0m", WrapSoft("\x1b[33mJon Snow???\x1b[0m", 4))
103 }
104
105 func ExampleWrapText() {
106 str := `The quick brown fox jumped over the lazy dog.
107
108 A big crocodile died empty-fanged, gulping horribly in jerking kicking little
109 motions. Nonchalant old Peter Quinn ruthlessly shot the under-water vermin with
110 Xavier yelling Zap!`
111 strWrapped := WrapText(str, 30)
112 for idx, line := range strings.Split(strWrapped, "\n") {
113 fmt.Printf("Line #%02d: '%s'\n", idx+1, line)
114 }
115
116
117
118
119
120
121
122
123
124
125
126 }
127
128 func TestWrapText(t *testing.T) {
129 assert.Equal(t, "", WrapText("Ghost", 0))
130 assert.Equal(t, "G\nh\no\ns\nt", WrapText("Ghost", 1))
131 assert.Equal(t, "Gh\nos\nt", WrapText("Ghost", 2))
132 assert.Equal(t, "Gho\nst", WrapText("Ghost", 3))
133 assert.Equal(t, "Ghos\nt", WrapText("Ghost", 4))
134 assert.Equal(t, "Ghost", WrapText("Ghost", 5))
135 assert.Equal(t, "Ghost", WrapText("Ghost", 6))
136 assert.Equal(t, "Jo\nn\nSn\now", WrapText("Jon\nSnow", 2))
137 assert.Equal(t, "Jo\nn\nSn\now\n", WrapText("Jon\nSnow\n", 2))
138 assert.Equal(t, "Jon\nSno\nw\n", WrapText("Jon\nSnow\n", 3))
139 assert.Equal(t, "\x1b[33mJon\x1b[0m\nSno\nw", WrapText("\x1b[33mJon\x1b[0m\nSnow", 3))
140 assert.Equal(t, "\x1b[33mJon\x1b[0m\nSno\nw\n", WrapText("\x1b[33mJon\x1b[0m\nSnow\n", 3))
141 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33m Sn\x1b[0m\n\x1b[33mow\x1b[0m", WrapText("\x1b[33mJon Snow\x1b[0m", 3))
142 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33m Sn\x1b[0m\n\x1b[33mow\x1b[0m\n\x1b[33m\x1b[0m", WrapText("\x1b[33mJon Snow\n", 3))
143 assert.Equal(t, "\x1b[33mJon\x1b[0m\n\x1b[33m Sn\x1b[0m\n\x1b[33mow\x1b[0m\n\x1b[33m\x1b[0m", WrapText("\x1b[33mJon Snow\n\x1b[0m", 3))
144
145 complexIn := "+---+------+-------+------+\n| 1 | Arya | Stark | 3000 |\n+---+------+-------+------+"
146 assert.Equal(t, complexIn, WrapText(complexIn, 27))
147 }
148
View as plain text