-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtext_buffer_test.go
More file actions
73 lines (61 loc) · 1.4 KB
/
Copy pathtext_buffer_test.go
File metadata and controls
73 lines (61 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package kindleland
import (
"strings"
"testing"
)
type nextWord struct {
word string
space string
ok bool
}
func TestNextWord(t *testing.T) {
text := `This is a sentence.`
nextWords := []nextWord{
{"This", " ", true},
{"is", " ", true},
{"a", " ", true},
{"sentence.", "", true},
{"", "", false},
}
tb := NewTextBuffer(text)
for i, n := range nextWords {
word, space, ok := tb.NextWord()
if word != n.word {
t.Errorf("wrong word on call %d; got '%s', expected '%s'", i, word, n.word)
}
if space != n.space {
t.Errorf("wrong space on call %d; got '%s', expected '%s'", i, space, n.space)
}
if ok != n.ok {
t.Errorf("wrong ok on call %d; got '%v', expected '%v'", i, ok, n.ok)
}
}
if !tb.eof {
t.Error("textbuffer was not eof")
}
}
func TestNextParagraph(t *testing.T) {
text := `This \nis \na\n paragraph.`
paragraphs := strings.Split(text, "\n")
tb := NewTextBuffer(text)
for i, p := range paragraphs {
if tb.paragraphIndex != i {
t.Errorf("wrong paragraph index on call %d; got '%d', expected '%d'", i, tb.paragraphIndex, i)
}
var paragraph string
for {
word, space, ok := tb.NextWord()
if !ok {
break
}
paragraph = paragraph + word + space
}
if paragraph != p {
t.Errorf("wrong paragraph on call %d; got '%s', expected '%s'", i, paragraph, p)
}
tb.NextParagraph()
}
if !tb.eof {
t.Error("textbuffer was not eof")
}
}