-
Notifications
You must be signed in to change notification settings - Fork 7
/
utils_test.cc
133 lines (114 loc) · 3.21 KB
/
utils_test.cc
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include "utils.h"
#include <assert.h>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
static int errors = 0;
void ERROR(const string& error) {
cout << error << endl;
;
++errors;
}
void TestTrimMultipleSpaces() {
string single_word = "hi";
StrUtils::trim_multiple_spaces(single_word);
if (single_word != "hi") {
ERROR("Trimming white spaces from a word with no whitespaces is broken.");
}
string two_words = "hi gabe";
StrUtils::trim_multiple_spaces(two_words);
if (two_words != "hi gabe") {
ERROR("Trimming spaces when there's only one is broken.");
}
string spaced_words = "hi gabe";
StrUtils::trim_multiple_spaces(spaced_words);
if (spaced_words != "hi gabe") {
ERROR("Trimming multiple space inbetween two words is broken.");
}
string end_space = "hi ";
StrUtils::trim_multiple_spaces(end_space);
if (end_space != "hi") {
ERROR("Trimming spaces at the end of a sentence is broken.");
}
string beginning_space = " hi";
StrUtils::trim_multiple_spaces(beginning_space);
if (beginning_space != "hi") {
ERROR("Trimming spaces at the beginning of a sentence is broken.");
}
}
void TestSplitStringUsing() {
vector<string> test;
StrUtils::SplitStringUsing("-", "hi", &test);
assert(test.size() == 1);
if (test[0] != "hi") {
ERROR("Splitting on non-existent string is broken.");
}
test.clear();
StrUtils::SplitStringUsing("-", "hi-", &test);
assert(test.size() == 1);
if (test[0] != "hi") {
ERROR("Splitting on non-existent string is broken. (Got " + test[0] + ")");
}
// Test normal splitting scenario
test.clear();
StrUtils::SplitStringUsing("-", "hi-there-gabe", &test);
assert(test.size() == 3);
if (test[0] != "hi") {
ERROR("Test[0] was " + test[0]);
}
if (test[1] != "there") {
ERROR("Test[1] was " + test[1]);
}
if (test[2] != "gabe") {
ERROR("Test[2] was " + test[2]);
}
// Test splitting on a splitter with size > 1.
test.clear();
StrUtils::SplitStringUsing("--", "hi--there--gabe", &test);
assert(test.size() == 3);
if (test[0] != "hi") {
ERROR("Test[0] was " + test[0]);
}
if (test[1] != "there") {
ERROR("Test[1] was " + test[1]);
}
if (test[2] != "gabe") {
ERROR("Test[2] was " + test[2]);
}
// Test splitting when there's a missing spot.
test.clear();
StrUtils::SplitStringUsing("-", "hi--there-gabe", &test);
assert(test.size() == 4);
if (test[0] != "hi") {
ERROR("Test[0] was " + test[0]);
}
if (!test[1].empty()) {
ERROR("Test[1] wasn't empty. It was " + test[1]);
}
if (test[2] != "there") {
ERROR("Test[2] was " + test[2]);
}
if (test[3] != "gabe") {
ERROR("Test[3] was " + test[3]);
}
}
void TestHeightOfTextInWidth() {
int width = 107;
string text =
"- Figure out when to select the newly created task and when not to. Or "
"possibly just make this a preference.";
int height = StrUtils::HeightOfTextInWidth(width, text, 2);
if (height != 2) {
ERROR("Computing heights of text is broken.");
}
}
void TestStrUtils() {
TestTrimMultipleSpaces();
TestSplitStringUsing();
TestHeightOfTextInWidth();
}
int main() {
TestStrUtils();
cout << errors << " errors." << endl;
}