15 #define GETTEXT_DOMAIN "wesnoth-test" 17 #include <boost/test/unit_test.hpp> 31 formula(
"substring('hello world', 0)")
32 .evaluate().as_string()
36 formula(
"substring('hello world', 6)")
37 .evaluate().as_string()
43 formula(
"substring('hello world', 11)")
44 .evaluate().as_string()
50 formula(
"substring('hello world', -1)")
51 .evaluate().as_string()
55 formula(
"substring('hello world', -5)")
56 .evaluate().as_string()
60 formula(
"substring('hello world', -11)")
61 .evaluate().as_string()
67 formula(
"substring('hello world', -12)")
68 .evaluate().as_string()
74 formula(
"substring('hello world', 0, 0)")
75 .evaluate().as_string()
79 formula(
"substring('hello world', 0, -1)")
80 .evaluate().as_string()
86 formula(
"substring('hello world', 5, 1)")
87 .evaluate().as_string()
91 formula(
"substring('hello world', 1, 9)")
92 .evaluate().as_string()
96 formula(
"substring('hello world', -10, 9)")
97 .evaluate().as_string()
101 formula(
"substring('hello world', -1, -5)")
102 .evaluate().as_string()
106 formula(
"substring('hello world', 4, -5)")
107 .evaluate().as_string()
116 formula(
"length('')").evaluate().as_int()
120 formula(
"length('hello world')").evaluate().as_int()
127 formula(
"concatenate(100)").evaluate().as_string()
131 formula(
"concatenate(100, 200, 'a')")
132 .evaluate().as_string()
136 formula(
"concatenate([1,2,3])")
137 .evaluate().as_string()
142 "concatenate([1.0, 1.00, 1.000, 1.2, 1.23, 1.234])")
143 .evaluate().as_string()
144 ,
"1.000, 1.000, 1.000, 1.200, 1.230, 1.234");
149 BOOST_CHECK_EQUAL(
formula(
"abs(5)").evaluate().as_int(), 5);
150 BOOST_CHECK_EQUAL(
formula(
"abs(-5)").evaluate().as_int(), 5);
151 BOOST_CHECK_EQUAL(
formula(
"abs(5.0)").evaluate().as_int(), 5);
152 BOOST_CHECK_EQUAL(
formula(
"abs(-5.0)").evaluate().as_int(), 5);
154 BOOST_CHECK_EQUAL(
formula(
"min(3,5)").evaluate().as_int(), 3);
155 BOOST_CHECK_EQUAL(
formula(
"min(5,2)").evaluate().as_int(), 2);
156 BOOST_CHECK_EQUAL(
formula(
"max(3,5)").evaluate().as_int(), 5);
157 BOOST_CHECK_EQUAL(
formula(
"max(5,2)").evaluate().as_int(), 5);
158 BOOST_CHECK_EQUAL(
formula(
"max(5.5,5)").evaluate().as_decimal(),
159 static_cast<int>(1000.0 * 5.5));
161 BOOST_CHECK_EQUAL(
formula(
"max(4,5,[2,18,7])").evaluate().as_int(), 18);
163 BOOST_CHECK_EQUAL(
formula(
"log(8,2)").evaluate().as_int(), 3);
164 BOOST_CHECK_EQUAL(
formula(
"log(12)").evaluate().as_decimal(),
165 static_cast<int>(round(1000.0 * std::log(12))));
166 BOOST_CHECK_EQUAL(
formula(
"exp(3)").evaluate().as_decimal(),
167 static_cast<int>(round(1000.0 * std::exp(3))));
172 const double pi = 4. * std::atan(1.);
176 for(std::size_t x = 0; x <= 360; ++x) {
181 .evaluate(variables).as_decimal()
182 , static_cast<int>(round(1000. * std::sin(x * pi / 180.))));
186 .evaluate(variables).as_decimal()
187 , static_cast<int>(round(1000. * std::cos(x * pi / 180.))));
189 if(x % 90 == 0 && x % 180 != 0) {
192 .evaluate(variables).is_null());
196 .evaluate(variables).as_decimal(),
197 static_cast<int>(round(1000. * std::tan(x * pi / 180.))));
202 BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_SUITE(filesystem)
bool set_log_domain_severity(const std::string &name, int severity)
Standard logging facilities (interface).