43 BOOST_CHECK_EQUAL(c1[
"x"], c2[
"x"]);
48 BOOST_CHECK_EQUAL(c1[
"x"], c2[
"x"]);
53 BOOST_CHECK_EQUAL(c1[
"x"], c2[
"x"]);
58 BOOST_CHECK_NE(c1[
"x"], c2[
"x"]);
63 BOOST_CHECK_NE(c1[
"x"], c2[
"x"]);
68 BOOST_CHECK_EQUAL(x_str,
"1aaaa");
69 x_int =
c[
"x"].to_int();
70 BOOST_CHECK_EQUAL(x_int, 1);
71 x_sll =
c[
"x"].to_long_long();
72 BOOST_CHECK_EQUAL(x_sll, 1ll);
73 x_dbl =
c[
"x"].to_double();
74 BOOST_CHECK_EQUAL(x_dbl, 1.0);
78 BOOST_CHECK_EQUAL(x_str,
"1.7aaaa");
79 x_int =
c[
"x"].to_int();
80 BOOST_CHECK_EQUAL(x_int, 1);
81 x_sll =
c[
"x"].to_long_long();
82 BOOST_CHECK_EQUAL(x_sll, 1ll);
83 x_dbl =
c[
"x"].to_double();
84 BOOST_CHECK_EQUAL(x_dbl, 1.7);
88 BOOST_CHECK_EQUAL(x_str,
"aaaa1");
89 x_int =
c[
"x"].to_int();
90 BOOST_CHECK_EQUAL(x_int, 0);
91 x_sll =
c[
"x"].to_long_long();
92 BOOST_CHECK_EQUAL(x_sll, 0ll);
93 x_dbl =
c[
"x"].to_double();
94 BOOST_CHECK_EQUAL(x_dbl, 0.0);
99 BOOST_CHECK_EQUAL(x_str,
"1");
100 x_int =
c[
"x"].to_int();
101 BOOST_CHECK_EQUAL(x_int, 1);
102 x_sll =
c[
"x"].to_long_long();
103 BOOST_CHECK_EQUAL(x_sll, 1ll);
104 x_dbl =
c[
"x"].to_double();
105 BOOST_CHECK_EQUAL(x_dbl, 1.0);
109 x_int =
c[
"x"].to_int();
110 BOOST_CHECK_EQUAL(x_int, 10000000);
111 x_str =
c[
"x"].str();
112 BOOST_CHECK_EQUAL(x_str,
"10000000");
113 x_sll =
c[
"x"].to_long_long();
114 BOOST_CHECK_EQUAL(x_sll, 10000000ll);
115 x_dbl =
c[
"x"].to_double();
116 BOOST_CHECK_EQUAL(x_dbl, 1e7);
120 x_sll =
c[
"x"].to_long_long();
121 BOOST_CHECK_EQUAL(x_sll, 0ll);
122 x_str =
c[
"x"].str();
123 BOOST_CHECK_EQUAL(x_str,
"");
124 x_int =
c[
"x"].to_int();
125 BOOST_CHECK_EQUAL(x_int, 0);
126 x_dbl =
c[
"x"].to_double();
127 BOOST_CHECK_EQUAL(x_dbl, 0.0);
131 x_int =
c[
"x"].to_int();
132 BOOST_CHECK_EQUAL(x_int, 0);
133 x_str =
c[
"x"].str();
134 BOOST_CHECK_EQUAL(x_str,
"0x11");
135 x_sll =
c[
"x"].to_long_long();
136 BOOST_CHECK_EQUAL(x_sll, 0ll);
137 x_dbl =
c[
"x"].to_double();
138 BOOST_CHECK_EQUAL(x_dbl, 0.0);
142 x_int =
c[
"x"].to_int();
143 BOOST_CHECK_EQUAL(x_int, 0);
144 x_str =
c[
"x"].str();
145 BOOST_CHECK_EQUAL(x_str,
"0xab");
146 x_sll =
c[
"x"].to_long_long();
147 BOOST_CHECK_EQUAL(x_sll, 0ll);
148 x_dbl =
c[
"x"].to_double();
149 BOOST_CHECK_EQUAL(x_dbl, 0.0);
153 x_int =
c[
"x"].to_int();
154 BOOST_CHECK_EQUAL(x_int, 1111);
155 x_str =
c[
"x"].str();
156 BOOST_CHECK_EQUAL(x_str,
"00001111");
157 x_sll =
c[
"x"].to_long_long();
158 BOOST_CHECK_EQUAL(x_sll, 1111ll);
159 x_dbl =
c[
"x"].to_double();
160 BOOST_CHECK_EQUAL(x_dbl, 1.111e3);
164 x_int =
c[
"x"].to_int();
165 BOOST_CHECK_EQUAL(x_int, 0);
166 x_str =
c[
"x"].str();
167 BOOST_CHECK_EQUAL(x_str,
"000000");
168 x_sll =
c[
"x"].to_long_long();
169 BOOST_CHECK_EQUAL(x_sll, 0ll);
170 x_dbl =
c[
"x"].to_double();
171 BOOST_CHECK_EQUAL(x_dbl, 0.0);
174 c[
"x"] =
"01234567890123456789";
175 x_sll =
c[
"x"].to_long_long();
176 BOOST_CHECK_EQUAL(x_sll, 1234567890123456789ll);
177 x_str =
c[
"x"].str();
178 BOOST_CHECK_EQUAL(x_str,
"01234567890123456789");
179 x_int =
c[
"x"].to_int();
180 BOOST_CHECK_EQUAL(x_int, 0);
181 x_dbl =
c[
"x"].to_double();
182 BOOST_CHECK_EQUAL(x_dbl, 1.23456789012345678e18);
185 c[
"x"] =
"99999999999999999999";
186 x_sll =
c[
"x"].to_long_long();
187 BOOST_CHECK_EQUAL(x_sll, 0ll);
188 x_str =
c[
"x"].str();
189 BOOST_CHECK_EQUAL(x_str,
"99999999999999999999");
190 x_int =
c[
"x"].to_int();
191 BOOST_CHECK_EQUAL(x_int, 0);
192 x_dbl =
c[
"x"].to_double();
193 BOOST_CHECK_EQUAL(x_dbl, 1e20);
197 x_sll =
c[
"x"].to_long_long();
198 BOOST_CHECK_EQUAL(x_sll, 1ll);
199 x_str =
c[
"x"].str();
200 BOOST_CHECK_EQUAL(x_str,
"1.499");
201 x_int =
c[
"x"].to_int();
202 BOOST_CHECK_EQUAL(x_int, 1);
203 x_dbl =
c[
"x"].to_double();
204 BOOST_CHECK(std::abs(x_dbl - 1.499) < 1
e-6);
207 c[
"x"] = 123456789123ll;
208 x_int =
c[
"x"].to_int();
209 BOOST_CHECK_EQUAL(x_int, -1097262461);
210 x_dbl =
c[
"x"].to_double();
211 BOOST_CHECK_EQUAL(x_dbl, 1.23456789123e11);
212 x_sll =
c[
"x"].to_long_long();
213 BOOST_CHECK_EQUAL(x_sll, 123456789123ll);
214 x_str =
c[
"x"].str();
215 BOOST_CHECK_EQUAL(x_str,
"123456789123");
218 using namespace std::literals;
221 BOOST_CHECK_EQUAL(
c[
"x"],
"1");
223 BOOST_CHECK_EQUAL(
c[
"x"],
"222");
224 BOOST_CHECK_EQUAL(
c[
"x"],
"222"s);
226 BOOST_CHECK_EQUAL(
c[
"x"],
"test"sv);
228 BOOST_CHECK_EQUAL(
c[
"x"],
"no");
229 BOOST_CHECK_EQUAL(
c[
"x"],
"false");
231 BOOST_CHECK_EQUAL(
c[
"x"],
"9.87654321");
232 BOOST_CHECK_EQUAL(
c[
"x"],
t_string{
"9.87654321"});
234 c[
"x"] =
"sfvsdgdsfg";
235 BOOST_CHECK_EQUAL(
c[
"x"],
"sfvsdgdsfg");
236 BOOST_CHECK_EQUAL(
c[
"x"],
"sfvsdgdsfg"s);
237 BOOST_CHECK_EQUAL(
c[
"x"],
"sfvsdgdsfg"sv);
238 BOOST_CHECK_EQUAL(
c[
"x"],
t_string{
"sfvsdgdsfg"});
239 BOOST_CHECK_NE(
c[
"x"],
"a random string");
243 BOOST_CHECK_EQUAL(
"9.87654321",
c[
"x"]);
244 BOOST_CHECK_EQUAL(
t_string{
"9.87654321"},
c[
"x"]);
246 BOOST_CHECK_NE(
"1.23456789",
c[
"x"]);
247 BOOST_CHECK_NE(
"1.23456789"s,
c[
"x"]);
248 BOOST_CHECK_NE(
"1.23456789"sv,
c[
"x"]);
252 BOOST_CHECK(cc[
"x"] !=
"");
253 BOOST_CHECK(cc[
"x"].empty());
254 BOOST_CHECK(cc[
"x"].blank());
256 BOOST_CHECK(
c[
"x"] !=
"");
257 BOOST_CHECK(
c[
"x"].empty());
258 BOOST_CHECK(
c[
"x"].blank());
260 BOOST_CHECK_EQUAL(cc[
"x"],
c[
"x"]);
263 BOOST_CHECK(cc[
"x"].empty());
264 BOOST_CHECK(cc[
"x"].empty());
265 BOOST_CHECK(!cc[
"x"].blank());
267 BOOST_CHECK(
c[
"x"].empty());
268 BOOST_CHECK(
c[
"x"].empty());
269 BOOST_CHECK(!
c[
"x"].blank());
271 BOOST_CHECK_EQUAL(cc[
"x"],
c[
"x"]);
277 const auto scalar_value = [](
const std::string& var,
const config&
cfg) {
313 BOOST_CHECK(
c.empty());
318 BOOST_CHECK_EQUAL(scalar_value(
"a.length", c2), 1);
319 BOOST_CHECK_EQUAL(scalar_value(
"a.b.length", c2), 1);
320 BOOST_CHECK_EQUAL(scalar_value(
"a.b.c.length", c2), 2);
321 BOOST_CHECK_EQUAL(scalar_value(
"a.b.c[1].d.e.f.length", c2), 3);
323 BOOST_CHECK_EQUAL(scalar_value(
"a.b.c[1].d.e.f[2].g.length", c2), 0);
324 BOOST_CHECK_EQUAL(scalar_value(
"a.b.c[1].d.e.f[2].g", c2), 84);
340 "atribute2",
"value",
362 BOOST_CHECK_EQUAL(scalar_value(
"tag1.length", nonempty), 3);
363 BOOST_CHECK_EQUAL(scalar_value(
"tag1.tag2.length", nonempty), 0);
364 BOOST_CHECK_EQUAL(scalar_value(
"tag1[1].tag2.length", nonempty), 3);
365 BOOST_CHECK_EQUAL(scalar_value(
"tag1[1].tag2[2].atribute1", nonempty), 88);
370 BOOST_CHECK_EQUAL(count, 3);
375 BOOST_CHECK_EQUAL(count, 0);
381 BOOST_CHECK_EQUAL(count, 1);