1
- // #include "gtest/gtest.h"
2
- // #include "m_ostring.h"
1
+ #include " gtest/gtest.h"
2
+ #include " m_ostring.h"
3
+
4
+ TEST (OString, InitEmpty) {
5
+ OString str;
6
+ EXPECT_TRUE (str.empty ());
7
+ EXPECT_EQ (str.size (), 0 );
8
+ EXPECT_STREQ (str.c_str (), " " );
9
+ }
10
+
11
+ TEST (OString, InitFromString) {
12
+ std::string stdStr = " Hello, World!" ;
13
+ OString str (stdStr);
14
+ EXPECT_FALSE (str.empty ());
15
+ EXPECT_EQ (str.size (), stdStr.size ());
16
+ EXPECT_EQ (str, stdStr);
17
+ EXPECT_STREQ (str.c_str (), stdStr.c_str ());
18
+ }
19
+
20
+ TEST (OString, InitFromCString) {
21
+ const char * cStr = " Hello, World!" ;
22
+ OString str (cStr);
23
+ EXPECT_FALSE (str.empty ());
24
+ EXPECT_EQ (str.size (), strlen (cStr));
25
+ EXPECT_EQ (str, cStr);
26
+ EXPECT_STREQ (str.c_str (), cStr);
27
+ }
28
+
29
+ TEST (OString, Assignment) {
30
+ OString str1 = " Hello" ;
31
+ OString str2;
32
+ str2 = str1;
33
+ EXPECT_EQ (str1, str2);
34
+ EXPECT_STREQ (str1.c_str (), str2.c_str ());
35
+
36
+ std::string stdStr = " World" ;
37
+ str2 = stdStr;
38
+ EXPECT_EQ (str2, stdStr);
39
+ EXPECT_STREQ (str2.c_str (), stdStr.c_str ());
40
+
41
+ const char * cStr = " !" ;
42
+ str2 = cStr;
43
+ EXPECT_EQ (str2, cStr);
44
+ EXPECT_STREQ (str2.c_str (), cStr);
45
+ }
46
+
47
+ TEST (OString, AssignOString) {
48
+ OString str1 = " Hello" ;
49
+ OString str2;
50
+ str2.assign (str1);
51
+ EXPECT_EQ (str1, str2);
52
+ EXPECT_STREQ (str1.c_str (), str2.c_str ());
53
+ }
54
+
55
+ TEST (OString, AssignStdString) {
56
+ std::string stdStr = " Hello" ;
57
+ OString str;
58
+ str.assign (stdStr);
59
+ EXPECT_EQ (str, stdStr);
60
+ EXPECT_STREQ (str.c_str (), stdStr.c_str ());
61
+ }
62
+
63
+ TEST (OString, AssignCString) {
64
+ const char * cStr = " Hello" ;
65
+ OString str;
66
+ str.assign (cStr);
67
+ EXPECT_EQ (str, cStr);
68
+ EXPECT_STREQ (str.c_str (), cStr);
69
+ }
70
+
71
+ TEST (OString, AssignCharAndSize) {
72
+ OString str;
73
+ str.assign (5 , ' A' );
74
+ EXPECT_EQ (str, " AAAAA" );
75
+ EXPECT_STREQ (str.c_str (), " AAAAA" );
76
+ }
77
+
78
+ TEST (OString, AssignIterator) {
79
+ std::string stdStr = " Hello" ;
80
+ OString str;
81
+ str.assign (stdStr.begin (), stdStr.end ());
82
+ EXPECT_EQ (str, stdStr);
83
+ EXPECT_STREQ (str.c_str (), stdStr.c_str ());
84
+ }
85
+
86
+ TEST (OString, Comparison) {
87
+ OString str1 = " Hello" ;
88
+ OString str2 = " Hello" ;
89
+ OString str3 = " World" ;
90
+
91
+ EXPECT_TRUE (str1 == str2);
92
+ EXPECT_FALSE (str1 == str3);
93
+
94
+ EXPECT_TRUE (str1 != str3);
95
+ EXPECT_FALSE (str1 != str2);
96
+
97
+ EXPECT_TRUE (str1 < str3);
98
+ EXPECT_FALSE (str3 < str1);
99
+
100
+ EXPECT_TRUE (str3 > str1);
101
+ EXPECT_FALSE (str1 > str3);
102
+
103
+ EXPECT_TRUE (str1 <= str2);
104
+ EXPECT_TRUE (str1 <= str3);
105
+
106
+ EXPECT_TRUE (str3 >= str1);
107
+ EXPECT_TRUE (str1 >= str2);
108
+ }
109
+
110
+ TEST (OString, Substr) {
111
+ OString str = " Hello, World!" ;
112
+ OString substr = str.substr (7 , 5 );
113
+ EXPECT_EQ (substr, " World" );
114
+ EXPECT_STREQ (substr.c_str (), " World" );
115
+ }
116
+
117
+ TEST (OString, Find) {
118
+ OString str = " Hello, World!" ;
119
+ EXPECT_EQ (str.find (" World" ), 7 );
120
+ EXPECT_EQ (str.find (" world" ), OString::npos);
121
+ EXPECT_STREQ (str.substr (str.find (" World" ), 5 ).c_str (), " World" );
122
+ }
123
+
124
+ TEST (OString, RFind) {
125
+ OString str = " Hello, World! Hello!" ;
126
+ EXPECT_EQ (str.rfind (" Hello" ), 14 );
127
+ EXPECT_EQ (str.rfind (" hello" ), OString::npos);
128
+ EXPECT_STREQ (str.substr (str.rfind (" Hello" ), 5 ).c_str (), " Hello" );
129
+ }
130
+
131
+ TEST (OString, FindFirstOf) {
132
+ OString str = " Hello, World!" ;
133
+ EXPECT_EQ (str.find_first_of (" o" ), 4 );
134
+ EXPECT_EQ (str.find_first_of (" z" ), OString::npos);
135
+ EXPECT_STREQ (str.substr (str.find_first_of (" o" ), 1 ).c_str (), " o" );
136
+ }
137
+
138
+ TEST (OString, FindLastOf) {
139
+ OString str = " Hello, World!" ;
140
+ EXPECT_EQ (str.find_last_of (" o" ), 8 );
141
+ EXPECT_EQ (str.find_last_of (" z" ), OString::npos);
142
+ EXPECT_STREQ (str.substr (str.find_last_of (" o" ), 1 ).c_str (), " o" );
143
+ }
144
+
145
+ TEST (OString, Clear) {
146
+ OString str = " Hello, World!" ;
147
+ str.clear ();
148
+ EXPECT_TRUE (str.empty ());
149
+ EXPECT_EQ (str.size (), 0 );
150
+ EXPECT_STREQ (str.c_str (), " " );
151
+ }
0 commit comments