68 EXPECT_FALSE(map.contains(
"hello"));
69 EXPECT_FALSE(map.remove(
"hello"));
70 EXPECT_EQ(std::nullopt, map.get_string(
"hello"));
71 EXPECT_EQ(std::nullopt, map.get_integer(
"hello"));
72 EXPECT_EQ(std::nullopt, map.get_float(
"hello"));
75 EXPECT_TRUE(map.add_string(
"hello",
"What a wonderful world."));
76 EXPECT_TRUE(map.add_integer(
"bye", 42));
77 EXPECT_TRUE(map.add_float(
"what", 3.14159));
81 EXPECT_FALSE(map.add_string(
"hello",
"Sup."));
82 EXPECT_FALSE(map.add_string(
"bye",
"Sup."));
83 EXPECT_FALSE(map.add_string(
"what",
"Sup."));
84 EXPECT_FALSE(map.add_integer(
"hello", 2));
85 EXPECT_FALSE(map.add_integer(
"bye", 2));
86 EXPECT_FALSE(map.add_integer(
"what", 2));
87 EXPECT_FALSE(map.add_float(
"hello", 2.71828));
88 EXPECT_FALSE(map.add_float(
"bye", 2.71828));
89 EXPECT_FALSE(map.add_float(
"what", 2.71828));
92 EXPECT_TRUE(map.contains(
"hello"));
93 EXPECT_TRUE(map.contains(
"bye"));
94 EXPECT_TRUE(map.contains(
"what"));
95 EXPECT_FALSE(map.contains(
"not here"));
98 EXPECT_EQ(
"What a wonderful world.", map.get_string(
"hello"));
100 EXPECT_EQ(3.14159, map.get_float(
"what"));
104 EXPECT_EQ(std::nullopt, map.get_integer(
"hello"));
105 EXPECT_EQ(std::nullopt, map.get_float(
"hello"));
106 EXPECT_EQ(std::nullopt, map.get_string(
"bye"));
107 EXPECT_EQ(std::nullopt, map.get_float(
"bye"));
108 EXPECT_EQ(std::nullopt, map.get_string(
"what"));
109 EXPECT_EQ(std::nullopt, map.get_integer(
"what"));
112 EXPECT_TRUE(map.remove(
"hello"));
113 EXPECT_TRUE(map.remove(
"bye"));
114 EXPECT_TRUE(map.remove(
"what"));
117 EXPECT_FALSE(map.contains(
"hello"));
118 EXPECT_FALSE(map.contains(
"bye"));
119 EXPECT_FALSE(map.contains(
"what"));
120 EXPECT_EQ(std::nullopt, map.get_string(
"hello"));
121 EXPECT_EQ(std::nullopt, map.get_integer(
"bye"));
122 EXPECT_EQ(std::nullopt, map.get_float(
"what"));
123 EXPECT_FALSE(map.remove(
"hello"));
124 EXPECT_FALSE(map.remove(
"bye"));
125 EXPECT_FALSE(map.remove(
"what"));
140 variables.
add_string(
"long",
"This string is exactly 32 bytes.");
144 variables.
add_float(
"pi", 3.14159265358979323846);
145 variables.
add_float(
"e", 2.71828182845904523536);
146 variables.
add_float(
"ntsc", 30.0 / 1.001);
148 variables.
add_float(
"f_negative", -3.14159265358979323846);
149 variables.
add_float(
"huge", 200000000000000000000000000000000.0);
150 variables.
add_float(
"tiny", 0.000000000000000000000000000000002);
156 "{hi}_{bye}_{the_answer}_{prime}_{i_negative}_{pi}_{e}_{ntsc}_{two}_{f_negative}_{huge}_"
158 "hello_goodbye_42_7_-7_3.141592653589793_2.718281828459045_29.970029970029973_2.0_-3."
159 "141592653589793_2e+32_2e-33",
165 "{the_answer:#}_{the_answer:##}_{the_answer:####}_{i_negative:####}",
172 "{the_answer:.###}_{the_answer:#.##}_{the_answer:###.##}_{i_negative:###.####}",
173 "42.000_42.00_042.00_-07.0000",
179 "{pi:.####}_{e:.###}_{ntsc:.########}_{two:.##}_{f_negative:.##}_{huge:.##}_{tiny:.##}",
180 "3.1416_2.718_29.97002997_2.00_-3.14_200000000000000010732324408786944.00_0.00",
186 "{pi:##.####}_{e:####.###}_{ntsc:#.########}_{two:###.##}_{f_negative:###.##}_{huge:###."
188 "03.1416_0002.718_29.97002997_002.00_-03.14_200000000000000010732324408786944.00_000.00",
194 "{pi:##}_{e:####}_{ntsc:#}_{two:###}",
201 "{hi}_{{hi}}_{{{bye}}}_{bye}",
202 "hello_{hi}_{goodbye}_goodbye",
211 {ErrorType::FORMAT_SPECIFIER,
IndexRange(0, 7)},
212 {ErrorType::FORMAT_SPECIFIER,
IndexRange(8, 7)},
219 "{pi:##.}_{e:####.}_{ntsc:#.}_{two:###.}_{f_negative:###.}_{huge:###.}_{tiny:###.}",
220 "{pi:##.}_{e:####.}_{ntsc:#.}_{two:###.}_{f_negative:###.}_{huge:###.}_{tiny:###.}",
222 {ErrorType::FORMAT_SPECIFIER,
IndexRange(0, 8)},
223 {ErrorType::FORMAT_SPECIFIER,
IndexRange(9, 9)},
224 {ErrorType::FORMAT_SPECIFIER,
IndexRange(19, 9)},
225 {ErrorType::FORMAT_SPECIFIER,
IndexRange(29, 10)},
226 {ErrorType::FORMAT_SPECIFIER,
IndexRange(40, 17)},
227 {ErrorType::FORMAT_SPECIFIER,
IndexRange(58, 11)},
228 {ErrorType::FORMAT_SPECIFIER,
IndexRange(70, 11)},
234 "{hi}_{missing}_{bye}",
235 "{hi}_{missing}_{bye}",
237 {ErrorType::UNKNOWN_VARIABLE,
IndexRange(5, 9)},
246 {ErrorType::VARIABLE_SYNTAX,
IndexRange(3, 3)},
255 {ErrorType::VARIABLE_SYNTAX,
IndexRange(8, 3)},
261 "{prime:}_{prime:.}_{prime:#.#.#}_{prime:sup}_{prime::sup}_{prime}",
262 "{prime:}_{prime:.}_{prime:#.#.#}_{prime:sup}_{prime::sup}_{prime}",
264 {ErrorType::FORMAT_SPECIFIER,
IndexRange(0, 8)},
265 {ErrorType::FORMAT_SPECIFIER,
IndexRange(9, 9)},
266 {ErrorType::FORMAT_SPECIFIER,
IndexRange(19, 13)},
267 {ErrorType::FORMAT_SPECIFIER,
IndexRange(33, 11)},
268 {ErrorType::FORMAT_SPECIFIER,
IndexRange(45, 12)},
277 {ErrorType::VARIABLE_SYNTAX,
IndexRange(0, 4)},
286 {ErrorType::VARIABLE_SYNTAX,
IndexRange(0, 4)},
299 "___{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}"
300 "{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
301 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
302 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
303 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
304 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
305 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
306 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
307 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
308 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
309 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
310 "long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{long}{"
313 "___This string is exactly 32 bytes.This string is exactly 32 bytes.This string is "
314 "exactly 32 bytes.This string is exactly 32 bytes.This string is exactly 32 bytes.This "
315 "string is exactly 32 bytes.This string is exactly 32 bytes.This string is exactly 32 "
316 "bytes.This string is exactly 32 bytes.This string is exactly 32 bytes.This string is "
317 "exactly 32 bytes.This string is exactly 32 bytes.This string is exactly 32 bytes.This "
318 "string is exactly 32 bytes.This string is exactly 32 bytes.This string is exactly 32 "
319 "bytes.This string is exactly 32 bytes.This string is exactly 32 bytes.This string is "
320 "exactly 32 bytes.This string is exactly 32 bytes.This string is exactly 32 bytes.This "
321 "string is exactly 32 bytes.This string is exactly 32 bytes.This string is exactly 32 "
322 "bytes.This string is exactly 32 bytes.This string is exactly 32 bytes.This string is "
323 "exactly 32 bytes.This string is exactly 32 bytes.This string is exactly 32 bytes.This "
324 "string is exactly 32 bytes.This string is exactly 32 bytes.This string is exactly 32 "
337 EXPECT_EQ(validation_errors, test_case.expected_errors)
339 <<
" Expected errors: " <<
errors_to_string(test_case.expected_errors) << std::endl
340 <<
" Note: test_case.path_in = " << test_case.path_in << std::endl;
342 <<
" Note: test_case.path_in = " << test_case.path_in << std::endl;
346 EXPECT_EQ(application_errors, test_case.expected_errors)
347 <<
" Template errors: " <<
errors_to_string(application_errors) << std::endl
348 <<
" Expected errors: " <<
errors_to_string(test_case.expected_errors) << std::endl
349 <<
" Note: test_case.path_in = " << test_case.path_in << std::endl;
351 <<
" Note: test_case.path_in = " << test_case.path_in << std::endl;