xref: /aosp_15_r20/external/marisa-trie/tests/base-test.cc (revision ab8db090fce404b23716c4c9194221ee27efe31c)
1*ab8db090SAndroid Build Coastguard Worker #include <cstdlib>
2*ab8db090SAndroid Build Coastguard Worker #include <cstring>
3*ab8db090SAndroid Build Coastguard Worker #include <ctime>
4*ab8db090SAndroid Build Coastguard Worker #include <string>
5*ab8db090SAndroid Build Coastguard Worker #include <vector>
6*ab8db090SAndroid Build Coastguard Worker 
7*ab8db090SAndroid Build Coastguard Worker #include <marisa.h>
8*ab8db090SAndroid Build Coastguard Worker 
9*ab8db090SAndroid Build Coastguard Worker #include "marisa-assert.h"
10*ab8db090SAndroid Build Coastguard Worker 
11*ab8db090SAndroid Build Coastguard Worker namespace {
12*ab8db090SAndroid Build Coastguard Worker 
TestTypes()13*ab8db090SAndroid Build Coastguard Worker void TestTypes() {
14*ab8db090SAndroid Build Coastguard Worker   TEST_START();
15*ab8db090SAndroid Build Coastguard Worker 
16*ab8db090SAndroid Build Coastguard Worker   ASSERT(sizeof(marisa_uint8) == 1);
17*ab8db090SAndroid Build Coastguard Worker   ASSERT(sizeof(marisa_uint16) == 2);
18*ab8db090SAndroid Build Coastguard Worker   ASSERT(sizeof(marisa_uint32) == 4);
19*ab8db090SAndroid Build Coastguard Worker   ASSERT(sizeof(marisa_uint64) == 8);
20*ab8db090SAndroid Build Coastguard Worker 
21*ab8db090SAndroid Build Coastguard Worker   ASSERT(MARISA_WORD_SIZE == (sizeof(std::size_t) * 8));
22*ab8db090SAndroid Build Coastguard Worker 
23*ab8db090SAndroid Build Coastguard Worker   ASSERT(MARISA_UINT8_MAX == 0xFFU);
24*ab8db090SAndroid Build Coastguard Worker   ASSERT(MARISA_UINT16_MAX == 0xFFFFU);
25*ab8db090SAndroid Build Coastguard Worker   ASSERT(MARISA_UINT32_MAX == 0xFFFFFFFFU);
26*ab8db090SAndroid Build Coastguard Worker   ASSERT(MARISA_UINT64_MAX == 0xFFFFFFFFFFFFFFFFULL);
27*ab8db090SAndroid Build Coastguard Worker 
28*ab8db090SAndroid Build Coastguard Worker   ASSERT(sizeof(marisa::UInt8) == 1);
29*ab8db090SAndroid Build Coastguard Worker   ASSERT(sizeof(marisa::UInt16) == 2);
30*ab8db090SAndroid Build Coastguard Worker   ASSERT(sizeof(marisa::UInt32) == 4);
31*ab8db090SAndroid Build Coastguard Worker   ASSERT(sizeof(marisa::UInt64) == 8);
32*ab8db090SAndroid Build Coastguard Worker 
33*ab8db090SAndroid Build Coastguard Worker   TEST_END();
34*ab8db090SAndroid Build Coastguard Worker }
35*ab8db090SAndroid Build Coastguard Worker 
TestSwap()36*ab8db090SAndroid Build Coastguard Worker void TestSwap() {
37*ab8db090SAndroid Build Coastguard Worker   TEST_START();
38*ab8db090SAndroid Build Coastguard Worker 
39*ab8db090SAndroid Build Coastguard Worker   int x = 100, y = 200;
40*ab8db090SAndroid Build Coastguard Worker   marisa::swap(x, y);
41*ab8db090SAndroid Build Coastguard Worker   ASSERT(x == 200);
42*ab8db090SAndroid Build Coastguard Worker   ASSERT(y == 100);
43*ab8db090SAndroid Build Coastguard Worker 
44*ab8db090SAndroid Build Coastguard Worker   double a = 1.23, b = 2.34;
45*ab8db090SAndroid Build Coastguard Worker   marisa::swap(a, b);
46*ab8db090SAndroid Build Coastguard Worker   ASSERT(a == 2.34);
47*ab8db090SAndroid Build Coastguard Worker   ASSERT(b == 1.23);
48*ab8db090SAndroid Build Coastguard Worker 
49*ab8db090SAndroid Build Coastguard Worker   TEST_END();
50*ab8db090SAndroid Build Coastguard Worker }
51*ab8db090SAndroid Build Coastguard Worker 
TestException()52*ab8db090SAndroid Build Coastguard Worker void TestException() {
53*ab8db090SAndroid Build Coastguard Worker   TEST_START();
54*ab8db090SAndroid Build Coastguard Worker 
55*ab8db090SAndroid Build Coastguard Worker   try {
56*ab8db090SAndroid Build Coastguard Worker     MARISA_THROW(MARISA_OK, "Message");
57*ab8db090SAndroid Build Coastguard Worker   } catch (const marisa::Exception &ex) {
58*ab8db090SAndroid Build Coastguard Worker     ASSERT(std::strcmp(ex.filename(), __FILE__) == 0);
59*ab8db090SAndroid Build Coastguard Worker     ASSERT(ex.line() == (__LINE__ - 3));
60*ab8db090SAndroid Build Coastguard Worker     ASSERT(ex.error_code() == MARISA_OK);
61*ab8db090SAndroid Build Coastguard Worker     ASSERT(std::strstr(ex.error_message(), "Message") != NULL);
62*ab8db090SAndroid Build Coastguard Worker   }
63*ab8db090SAndroid Build Coastguard Worker 
64*ab8db090SAndroid Build Coastguard Worker   EXCEPT(MARISA_THROW(MARISA_OK, "OK"), MARISA_OK);
65*ab8db090SAndroid Build Coastguard Worker   EXCEPT(MARISA_THROW(MARISA_NULL_ERROR, "NULL"), MARISA_NULL_ERROR);
66*ab8db090SAndroid Build Coastguard Worker 
67*ab8db090SAndroid Build Coastguard Worker   TEST_END();
68*ab8db090SAndroid Build Coastguard Worker }
69*ab8db090SAndroid Build Coastguard Worker 
TestKey()70*ab8db090SAndroid Build Coastguard Worker void TestKey() {
71*ab8db090SAndroid Build Coastguard Worker   TEST_START();
72*ab8db090SAndroid Build Coastguard Worker 
73*ab8db090SAndroid Build Coastguard Worker   const char * const str = "apple";
74*ab8db090SAndroid Build Coastguard Worker 
75*ab8db090SAndroid Build Coastguard Worker   marisa::Key key;
76*ab8db090SAndroid Build Coastguard Worker 
77*ab8db090SAndroid Build Coastguard Worker   ASSERT(key.ptr() == NULL);
78*ab8db090SAndroid Build Coastguard Worker   ASSERT(key.length() == 0);
79*ab8db090SAndroid Build Coastguard Worker 
80*ab8db090SAndroid Build Coastguard Worker   key.set_str(str);
81*ab8db090SAndroid Build Coastguard Worker 
82*ab8db090SAndroid Build Coastguard Worker   ASSERT(key.ptr() == str);
83*ab8db090SAndroid Build Coastguard Worker   ASSERT(key.length() == std::strlen(str));
84*ab8db090SAndroid Build Coastguard Worker 
85*ab8db090SAndroid Build Coastguard Worker   key.set_str(str, 4);
86*ab8db090SAndroid Build Coastguard Worker 
87*ab8db090SAndroid Build Coastguard Worker   ASSERT(key.ptr() == str);
88*ab8db090SAndroid Build Coastguard Worker   ASSERT(key.length() == 4);
89*ab8db090SAndroid Build Coastguard Worker 
90*ab8db090SAndroid Build Coastguard Worker   key.set_weight(1.0);
91*ab8db090SAndroid Build Coastguard Worker 
92*ab8db090SAndroid Build Coastguard Worker   ASSERT(key.weight() == 1.0);
93*ab8db090SAndroid Build Coastguard Worker 
94*ab8db090SAndroid Build Coastguard Worker   key.set_id(100);
95*ab8db090SAndroid Build Coastguard Worker 
96*ab8db090SAndroid Build Coastguard Worker   ASSERT(key.id() == 100);
97*ab8db090SAndroid Build Coastguard Worker 
98*ab8db090SAndroid Build Coastguard Worker   TEST_END();
99*ab8db090SAndroid Build Coastguard Worker }
100*ab8db090SAndroid Build Coastguard Worker 
TestKeyset()101*ab8db090SAndroid Build Coastguard Worker void TestKeyset() {
102*ab8db090SAndroid Build Coastguard Worker   TEST_START();
103*ab8db090SAndroid Build Coastguard Worker 
104*ab8db090SAndroid Build Coastguard Worker   marisa::Keyset keyset;
105*ab8db090SAndroid Build Coastguard Worker 
106*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.size() == 0);
107*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.empty());
108*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.total_length() == 0);
109*ab8db090SAndroid Build Coastguard Worker 
110*ab8db090SAndroid Build Coastguard Worker   std::vector<std::string> keys;
111*ab8db090SAndroid Build Coastguard Worker   keys.push_back("apple");
112*ab8db090SAndroid Build Coastguard Worker   keys.push_back("orange");
113*ab8db090SAndroid Build Coastguard Worker   keys.push_back("banana");
114*ab8db090SAndroid Build Coastguard Worker 
115*ab8db090SAndroid Build Coastguard Worker   std::size_t total_length = 0;
116*ab8db090SAndroid Build Coastguard Worker   for (std::size_t i = 0; i < keys.size(); ++i) {
117*ab8db090SAndroid Build Coastguard Worker     keyset.push_back(keys[i].c_str());
118*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset.size() == (i + 1));
119*ab8db090SAndroid Build Coastguard Worker     ASSERT(!keyset.empty());
120*ab8db090SAndroid Build Coastguard Worker 
121*ab8db090SAndroid Build Coastguard Worker     total_length += keys[i].length();
122*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset.total_length() == total_length);
123*ab8db090SAndroid Build Coastguard Worker 
124*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset[i].length() == keys[i].length());
125*ab8db090SAndroid Build Coastguard Worker     ASSERT(std::memcmp(keyset[i].ptr(), keys[i].c_str(),
126*ab8db090SAndroid Build Coastguard Worker         keyset[i].length()) == 0);
127*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset[i].weight() == 1.0);
128*ab8db090SAndroid Build Coastguard Worker   }
129*ab8db090SAndroid Build Coastguard Worker 
130*ab8db090SAndroid Build Coastguard Worker   keyset.clear();
131*ab8db090SAndroid Build Coastguard Worker 
132*ab8db090SAndroid Build Coastguard Worker   marisa::Key key;
133*ab8db090SAndroid Build Coastguard Worker 
134*ab8db090SAndroid Build Coastguard Worker   key.set_str("123");
135*ab8db090SAndroid Build Coastguard Worker   keyset.push_back(key);
136*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset[0].length() == 3);
137*ab8db090SAndroid Build Coastguard Worker   ASSERT(std::memcmp(keyset[0].ptr(), "123", 3) == 0);
138*ab8db090SAndroid Build Coastguard Worker 
139*ab8db090SAndroid Build Coastguard Worker   key.set_str("456");
140*ab8db090SAndroid Build Coastguard Worker   keyset.push_back(key, '\0');
141*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset[1].length() == 3);
142*ab8db090SAndroid Build Coastguard Worker   ASSERT(std::memcmp(keyset[1].ptr(), "456", 3) == 0);
143*ab8db090SAndroid Build Coastguard Worker   ASSERT(std::strcmp(keyset[1].ptr(), "456") == 0);
144*ab8db090SAndroid Build Coastguard Worker 
145*ab8db090SAndroid Build Coastguard Worker   key.set_str("789");
146*ab8db090SAndroid Build Coastguard Worker   keyset.push_back(key, '0');
147*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset[2].length() == 3);
148*ab8db090SAndroid Build Coastguard Worker   ASSERT(std::memcmp(keyset[2].ptr(), "789", 3) == 0);
149*ab8db090SAndroid Build Coastguard Worker   ASSERT(std::memcmp(keyset[2].ptr(), "7890", 4) == 0);
150*ab8db090SAndroid Build Coastguard Worker 
151*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.size() == 3);
152*ab8db090SAndroid Build Coastguard Worker 
153*ab8db090SAndroid Build Coastguard Worker   keyset.clear();
154*ab8db090SAndroid Build Coastguard Worker 
155*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.size() == 0);
156*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.total_length() == 0);
157*ab8db090SAndroid Build Coastguard Worker 
158*ab8db090SAndroid Build Coastguard Worker   keys.resize(1000);
159*ab8db090SAndroid Build Coastguard Worker   std::vector<float> weights(keys.size());
160*ab8db090SAndroid Build Coastguard Worker 
161*ab8db090SAndroid Build Coastguard Worker   total_length = 0;
162*ab8db090SAndroid Build Coastguard Worker   for (std::size_t i = 0; i < keys.size(); ++i) {
163*ab8db090SAndroid Build Coastguard Worker     keys[i].resize(std::rand() % (marisa::Keyset::EXTRA_BLOCK_SIZE * 2));
164*ab8db090SAndroid Build Coastguard Worker     for (std::size_t j = 0; j < keys[i].length(); ++j) {
165*ab8db090SAndroid Build Coastguard Worker       keys[i][j] = (char)(std::rand() & 0xFF);
166*ab8db090SAndroid Build Coastguard Worker     }
167*ab8db090SAndroid Build Coastguard Worker     double weight = 100.0 * static_cast<double>(std::rand()) /
168*ab8db090SAndroid Build Coastguard Worker     	  static_cast<double>(RAND_MAX);
169*ab8db090SAndroid Build Coastguard Worker     weights[i] = static_cast<float>(weight);
170*ab8db090SAndroid Build Coastguard Worker 
171*ab8db090SAndroid Build Coastguard Worker     keyset.push_back(keys[i].c_str(), keys[i].length(), weights[i]);
172*ab8db090SAndroid Build Coastguard Worker     total_length += keys[i].length();
173*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset.total_length() == total_length);
174*ab8db090SAndroid Build Coastguard Worker   }
175*ab8db090SAndroid Build Coastguard Worker 
176*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.size() == keys.size());
177*ab8db090SAndroid Build Coastguard Worker   for (std::size_t i = 0; i < keys.size(); ++i) {
178*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset[i].length() == keys[i].length());
179*ab8db090SAndroid Build Coastguard Worker     ASSERT(std::memcmp(keyset[i].ptr(), keys[i].c_str(),
180*ab8db090SAndroid Build Coastguard Worker         keyset[i].length()) == 0);
181*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset[i].weight() == weights[i]);
182*ab8db090SAndroid Build Coastguard Worker   }
183*ab8db090SAndroid Build Coastguard Worker 
184*ab8db090SAndroid Build Coastguard Worker   keyset.reset();
185*ab8db090SAndroid Build Coastguard Worker 
186*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.size() == 0);
187*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.total_length() == 0);
188*ab8db090SAndroid Build Coastguard Worker 
189*ab8db090SAndroid Build Coastguard Worker   total_length = 0;
190*ab8db090SAndroid Build Coastguard Worker   for (std::size_t i = 0; i < keys.size(); ++i) {
191*ab8db090SAndroid Build Coastguard Worker     keys[i].resize(std::rand() % (marisa::Keyset::EXTRA_BLOCK_SIZE * 2));
192*ab8db090SAndroid Build Coastguard Worker     for (std::size_t j = 0; j < keys[i].length(); ++j) {
193*ab8db090SAndroid Build Coastguard Worker       keys[i][j] = (char)(std::rand() & 0xFF);
194*ab8db090SAndroid Build Coastguard Worker     }
195*ab8db090SAndroid Build Coastguard Worker     double weight = 100.0 * static_cast<double>(std::rand()) /
196*ab8db090SAndroid Build Coastguard Worker         static_cast<double>(RAND_MAX);
197*ab8db090SAndroid Build Coastguard Worker     weights[i] = static_cast<float>(weight);
198*ab8db090SAndroid Build Coastguard Worker 
199*ab8db090SAndroid Build Coastguard Worker     keyset.push_back(keys[i].c_str(), keys[i].length(), weights[i]);
200*ab8db090SAndroid Build Coastguard Worker     total_length += keys[i].length();
201*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset.total_length() == total_length);
202*ab8db090SAndroid Build Coastguard Worker   }
203*ab8db090SAndroid Build Coastguard Worker 
204*ab8db090SAndroid Build Coastguard Worker   ASSERT(keyset.size() == keys.size());
205*ab8db090SAndroid Build Coastguard Worker   for (std::size_t i = 0; i < keys.size(); ++i) {
206*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset[i].length() == keys[i].length());
207*ab8db090SAndroid Build Coastguard Worker     ASSERT(std::memcmp(keyset[i].ptr(), keys[i].c_str(),
208*ab8db090SAndroid Build Coastguard Worker         keyset[i].length()) == 0);
209*ab8db090SAndroid Build Coastguard Worker     ASSERT(keyset[i].weight() == weights[i]);
210*ab8db090SAndroid Build Coastguard Worker   }
211*ab8db090SAndroid Build Coastguard Worker 
212*ab8db090SAndroid Build Coastguard Worker   TEST_END();
213*ab8db090SAndroid Build Coastguard Worker }
214*ab8db090SAndroid Build Coastguard Worker 
TestQuery()215*ab8db090SAndroid Build Coastguard Worker void TestQuery() {
216*ab8db090SAndroid Build Coastguard Worker   TEST_START();
217*ab8db090SAndroid Build Coastguard Worker 
218*ab8db090SAndroid Build Coastguard Worker   marisa::Query query;
219*ab8db090SAndroid Build Coastguard Worker 
220*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.ptr() == NULL);
221*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.length() == 0);
222*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.id() == 0);
223*ab8db090SAndroid Build Coastguard Worker 
224*ab8db090SAndroid Build Coastguard Worker   const char *str = "apple";
225*ab8db090SAndroid Build Coastguard Worker   query.set_str(str);
226*ab8db090SAndroid Build Coastguard Worker 
227*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.ptr() == str);
228*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.length() == std::strlen(str));
229*ab8db090SAndroid Build Coastguard Worker 
230*ab8db090SAndroid Build Coastguard Worker   query.set_str(str, 3);
231*ab8db090SAndroid Build Coastguard Worker 
232*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.ptr() == str);
233*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.length() == 3);
234*ab8db090SAndroid Build Coastguard Worker 
235*ab8db090SAndroid Build Coastguard Worker   query.set_id(100);
236*ab8db090SAndroid Build Coastguard Worker 
237*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.id() == 100);
238*ab8db090SAndroid Build Coastguard Worker 
239*ab8db090SAndroid Build Coastguard Worker   query.clear();
240*ab8db090SAndroid Build Coastguard Worker 
241*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.ptr() == NULL);
242*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.length() == 0);
243*ab8db090SAndroid Build Coastguard Worker   ASSERT(query.id() == 0);
244*ab8db090SAndroid Build Coastguard Worker 
245*ab8db090SAndroid Build Coastguard Worker   TEST_END();
246*ab8db090SAndroid Build Coastguard Worker }
247*ab8db090SAndroid Build Coastguard Worker 
TestAgent()248*ab8db090SAndroid Build Coastguard Worker void TestAgent() {
249*ab8db090SAndroid Build Coastguard Worker   TEST_START();
250*ab8db090SAndroid Build Coastguard Worker 
251*ab8db090SAndroid Build Coastguard Worker   marisa::Agent agent;
252*ab8db090SAndroid Build Coastguard Worker 
253*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().ptr() == NULL);
254*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().length() == 0);
255*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().id() == 0);
256*ab8db090SAndroid Build Coastguard Worker 
257*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.key().ptr() == NULL);
258*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.key().length() == 0);
259*ab8db090SAndroid Build Coastguard Worker 
260*ab8db090SAndroid Build Coastguard Worker   ASSERT(!agent.has_state());
261*ab8db090SAndroid Build Coastguard Worker 
262*ab8db090SAndroid Build Coastguard Worker   const char *query_str = "query";
263*ab8db090SAndroid Build Coastguard Worker   const char *key_str = "key";
264*ab8db090SAndroid Build Coastguard Worker 
265*ab8db090SAndroid Build Coastguard Worker   agent.set_query(query_str);
266*ab8db090SAndroid Build Coastguard Worker   agent.set_query(123);
267*ab8db090SAndroid Build Coastguard Worker   agent.set_key(key_str);
268*ab8db090SAndroid Build Coastguard Worker   agent.set_key(234);
269*ab8db090SAndroid Build Coastguard Worker 
270*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().ptr() == query_str);
271*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().length() == std::strlen(query_str));
272*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().id() == 123);
273*ab8db090SAndroid Build Coastguard Worker 
274*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.key().ptr() == key_str);
275*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.key().length() == std::strlen(key_str));
276*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.key().id() == 234);
277*ab8db090SAndroid Build Coastguard Worker 
278*ab8db090SAndroid Build Coastguard Worker   agent.init_state();
279*ab8db090SAndroid Build Coastguard Worker 
280*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.has_state());
281*ab8db090SAndroid Build Coastguard Worker 
282*ab8db090SAndroid Build Coastguard Worker   EXCEPT(agent.init_state(), MARISA_STATE_ERROR);
283*ab8db090SAndroid Build Coastguard Worker 
284*ab8db090SAndroid Build Coastguard Worker   agent.clear();
285*ab8db090SAndroid Build Coastguard Worker 
286*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().ptr() == NULL);
287*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().length() == 0);
288*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.query().id() == 0);
289*ab8db090SAndroid Build Coastguard Worker 
290*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.key().ptr() == NULL);
291*ab8db090SAndroid Build Coastguard Worker   ASSERT(agent.key().length() == 0);
292*ab8db090SAndroid Build Coastguard Worker 
293*ab8db090SAndroid Build Coastguard Worker   ASSERT(!agent.has_state());
294*ab8db090SAndroid Build Coastguard Worker 
295*ab8db090SAndroid Build Coastguard Worker   TEST_END();
296*ab8db090SAndroid Build Coastguard Worker }
297*ab8db090SAndroid Build Coastguard Worker 
298*ab8db090SAndroid Build Coastguard Worker }  // namespace
299*ab8db090SAndroid Build Coastguard Worker 
main()300*ab8db090SAndroid Build Coastguard Worker int main() try {
301*ab8db090SAndroid Build Coastguard Worker   TestTypes();
302*ab8db090SAndroid Build Coastguard Worker   TestSwap();
303*ab8db090SAndroid Build Coastguard Worker   TestException();
304*ab8db090SAndroid Build Coastguard Worker   TestKey();
305*ab8db090SAndroid Build Coastguard Worker   TestKeyset();
306*ab8db090SAndroid Build Coastguard Worker   TestQuery();
307*ab8db090SAndroid Build Coastguard Worker   TestAgent();
308*ab8db090SAndroid Build Coastguard Worker 
309*ab8db090SAndroid Build Coastguard Worker   return 0;
310*ab8db090SAndroid Build Coastguard Worker } catch (const marisa::Exception &ex) {
311*ab8db090SAndroid Build Coastguard Worker   std::cerr << ex.what() << std::endl;
312*ab8db090SAndroid Build Coastguard Worker   throw;
313*ab8db090SAndroid Build Coastguard Worker }
314