96 EXPECT_FLOAT_EQ(300.0f, DoOperator2(&engine, 100, 200,
PSOP_ADD));
97 EXPECT_FLOAT_EQ(-50.0f, DoOperator2(&engine, 100, 150,
PSOP_SUB));
98 EXPECT_FLOAT_EQ(600.0f, DoOperator2(&engine, 5, 120,
PSOP_MUL));
99 EXPECT_FLOAT_EQ(1.5f, DoOperator2(&engine, 15, 10,
PSOP_DIV));
100 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 15, 10,
PSOP_IDIV));
101 EXPECT_FLOAT_EQ(5.0f, DoOperator2(&engine, 15, 10,
PSOP_MOD));
102 EXPECT_FLOAT_EQ(5.0f, DoOperator1(&engine, -5,
PSOP_NEG));
103 EXPECT_FLOAT_EQ(5.0f, DoOperator1(&engine, -5,
PSOP_ABS));
121 float min_float =
std::numeric_limits<
float>::min();
123 float max_float =
std::numeric_limits<
float>::max();
124 EXPECT_FLOAT_EQ(1.0f, DoOperator1(&engine, min_float,
PSOP_CEILING));
125 EXPECT_FLOAT_EQ(max_float, DoOperator1(&engine, max_float,
PSOP_CEILING));
126 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, -min_float,
PSOP_CEILING));
127 EXPECT_FLOAT_EQ(-max_float, DoOperator1(&engine, -max_float,
PSOP_CEILING));
128 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, -0.9f,
PSOP_CEILING));
129 EXPECT_FLOAT_EQ(1.0f, DoOperator1(&engine, 0.0000000001f,
PSOP_CEILING));
130 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0f,
PSOP_CEILING));
131 EXPECT_FLOAT_EQ(3.0f, DoOperator1(&engine, 2.3f,
PSOP_CEILING));
132 EXPECT_FLOAT_EQ(4.0f, DoOperator1(&engine, 3.8f,
PSOP_CEILING));
133 EXPECT_FLOAT_EQ(6.0f, DoOperator1(&engine, 5.5f,
PSOP_CEILING));
134 EXPECT_FLOAT_EQ(-2.0f, DoOperator1(&engine, -2.3f,
PSOP_CEILING));
135 EXPECT_FLOAT_EQ(-3.0f, DoOperator1(&engine, -3.8f,
PSOP_CEILING));
136 EXPECT_FLOAT_EQ(-5.0f, DoOperator1(&engine, -5.5f,
PSOP_CEILING));
143 float min_float =
std::numeric_limits<
float>::min();
145 float max_float =
std::numeric_limits<
float>::max();
146 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, min_float,
PSOP_FLOOR));
147 EXPECT_FLOAT_EQ(max_float, DoOperator1(&engine, max_float,
PSOP_FLOOR));
148 EXPECT_FLOAT_EQ(-1.0f, DoOperator1(&engine, -min_float,
PSOP_FLOOR));
149 EXPECT_FLOAT_EQ(-max_float, DoOperator1(&engine, -max_float,
PSOP_FLOOR));
150 EXPECT_FLOAT_EQ(5.0f, DoOperator1(&engine, 5.9f,
PSOP_FLOOR));
151 EXPECT_FLOAT_EQ(-4.0f, DoOperator1(&engine, -4.0000000001f,
PSOP_FLOOR));
152 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0f,
PSOP_FLOOR));
153 EXPECT_FLOAT_EQ(-1.0f, DoOperator1(&engine, -0.9f,
PSOP_FLOOR));
154 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0000000001f,
PSOP_FLOOR));
155 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0f,
PSOP_FLOOR));
156 EXPECT_FLOAT_EQ(2.0f, DoOperator1(&engine, 2.3f,
PSOP_FLOOR));
157 EXPECT_FLOAT_EQ(3.0f, DoOperator1(&engine, 3.8f,
PSOP_FLOOR));
158 EXPECT_FLOAT_EQ(5.0f, DoOperator1(&engine, 5.5f,
PSOP_FLOOR));
159 EXPECT_FLOAT_EQ(-3.0f, DoOperator1(&engine, -2.3f,
PSOP_FLOOR));
160 EXPECT_FLOAT_EQ(-4.0f, DoOperator1(&engine, -3.8f,
PSOP_FLOOR));
161 EXPECT_FLOAT_EQ(-6.0f, DoOperator1(&engine, -5.5f,
PSOP_FLOOR));
167 EXPECT_FLOAT_EQ(6.0f, DoOperator1(&engine, 5.9f,
PSOP_ROUND));
168 EXPECT_FLOAT_EQ(-4.0f, DoOperator1(&engine, -4.0000000001f,
PSOP_ROUND));
169 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0f,
PSOP_ROUND));
170 EXPECT_FLOAT_EQ(-1.0f, DoOperator1(&engine, -0.9f,
PSOP_ROUND));
171 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0000000001f,
PSOP_ROUND));
172 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0f,
PSOP_ROUND));
174 float min_float =
std::numeric_limits<
float>::min();
176 float max_float =
std::numeric_limits<
float>::max();
177 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, min_float,
PSOP_ROUND));
178 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, -min_float,
PSOP_ROUND));
179 EXPECT_FLOAT_EQ(max_float, DoOperator1(&engine, max_float,
PSOP_ROUND));
180 EXPECT_FLOAT_EQ(-max_float, DoOperator1(&engine, -max_float,
PSOP_ROUND));
181 EXPECT_FLOAT_EQ(2.0f, DoOperator1(&engine, 2.3f,
PSOP_ROUND));
182 EXPECT_FLOAT_EQ(4.0f, DoOperator1(&engine, 3.8f,
PSOP_ROUND));
183 EXPECT_FLOAT_EQ(6.0f, DoOperator1(&engine, 5.5f,
PSOP_ROUND));
184 EXPECT_FLOAT_EQ(-2.0f, DoOperator1(&engine, -2.3f,
PSOP_ROUND));
185 EXPECT_FLOAT_EQ(-4.0f, DoOperator1(&engine, -3.8f,
PSOP_ROUND));
186 EXPECT_FLOAT_EQ(-5.0f, DoOperator1(&engine, -5.5f,
PSOP_ROUND));
192 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, -0.9f,
PSOP_TRUNCATE));
193 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0000000001f,
PSOP_TRUNCATE));
194 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 0.0f,
PSOP_TRUNCATE));
196 float min_float =
std::numeric_limits<
float>::min();
197 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, min_float,
PSOP_TRUNCATE));
198 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, -min_float,
PSOP_TRUNCATE));
199 EXPECT_FLOAT_EQ(2.0f, DoOperator1(&engine, 2.3f,
PSOP_TRUNCATE));
200 EXPECT_FLOAT_EQ(3.0f, DoOperator1(&engine, 3.8f,
PSOP_TRUNCATE));
201 EXPECT_FLOAT_EQ(5.0f, DoOperator1(&engine, 5.5f,
PSOP_TRUNCATE));
202 EXPECT_FLOAT_EQ(-2.0f, DoOperator1(&engine, -2.3f,
PSOP_TRUNCATE));
203 EXPECT_FLOAT_EQ(-3.0f, DoOperator1(&engine, -3.8f,
PSOP_TRUNCATE));
204 EXPECT_FLOAT_EQ(-5.0f, DoOperator1(&engine, -5.5f,
PSOP_TRUNCATE));
209 float max_int =
static_cast<
float>(
std::numeric_limits<
int>::max());
210 EXPECT_FLOAT_EQ(-max_int,
217 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_EQ));
218 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_EQ));
219 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 255.0f, 1.0f,
PSOP_EQ));
220 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, -1.0f, 0.0f,
PSOP_EQ));
222 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_NE));
223 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_NE));
224 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 255.0f, 1.0f,
PSOP_NE));
225 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, -1.0f, 0.0f,
PSOP_NE));
227 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_GT));
228 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_GT));
229 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 255.0f, 1.0f,
PSOP_GT));
230 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, -1.0f, 0.0f,
PSOP_GT));
232 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_GE));
233 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_GE));
234 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 255.0f, 1.0f,
PSOP_GE));
235 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, -1.0f, 0.0f,
PSOP_GE));
237 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_LT));
238 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_LT));
239 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 255.0f, 1.0f,
PSOP_LT));
240 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, -1.0f, 0.0f,
PSOP_LT));
242 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_LE));
243 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_LE));
244 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 255.0f, 1.0f,
PSOP_LE));
245 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, -1.0f, 0.0f,
PSOP_LE));
251 EXPECT_FLOAT_EQ(1.0f, DoOperator0(&engine,
PSOP_TRUE));
252 EXPECT_FLOAT_EQ(0.0f, DoOperator0(&engine,
PSOP_FALSE));
254 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_AND));
255 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_AND));
256 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 1.0f, 0.0f,
PSOP_AND));
257 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 1.0f, 1.0f,
PSOP_AND));
259 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_OR));
260 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_OR));
261 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 1.0f, 0.0f,
PSOP_OR));
262 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 1.0f, 1.0f,
PSOP_OR));
264 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 0.0f, 0.0f,
PSOP_XOR));
265 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 0.0f, 1.0f,
PSOP_XOR));
266 EXPECT_FLOAT_EQ(1.0f, DoOperator2(&engine, 1.0f, 0.0f,
PSOP_XOR));
267 EXPECT_FLOAT_EQ(0.0f, DoOperator2(&engine, 1.0f, 1.0f,
PSOP_XOR));
269 EXPECT_FLOAT_EQ(1.0f, DoOperator1(&engine, 0.0f,
PSOP_NOT));
270 EXPECT_FLOAT_EQ(0.0f, DoOperator1(&engine, 1.0f,
PSOP_NOT));
276 EXPECT_FLOAT_EQ(1.4142135f, DoOperator1(&engine, 2.0f,
PSOP_SQRT));
277 EXPECT_FLOAT_EQ(0.8660254f, DoOperator1(&engine, 60.0f,
PSOP_SIN));
278 EXPECT_FLOAT_EQ(0.5f, DoOperator1(&engine, 60.0f,
PSOP_COS));
279 EXPECT_FLOAT_EQ(45.0f, DoOperator2(&engine, 1.0f, 1.0f,
PSOP_ATAN));
280 EXPECT_FLOAT_EQ(1000.0f, DoOperator2(&engine, 10.0f, 3.0f,
PSOP_EXP));
281 EXPECT_FLOAT_EQ(3.0f, DoOperator1(&engine, 1000.0f,
PSOP_LOG));
282 EXPECT_FLOAT_EQ(2.302585f, DoOperator1(&engine, 10.0f,
PSOP_LN));