Lines Matching refs:fbl

5 #include <fbl/algorithm.h>
7 #include <fbl/limits.h>
22 EXPECT_EQ(val(fbl::min(1, 2)), 1);
23 EXPECT_EQ(val(fbl::min(2.1, 1.1)), 1.1);
24 EXPECT_EQ(val(fbl::min(1u, 1u)), 1u);
32 EXPECT_EQ(val(fbl::max(1, 2)), 2);
33 EXPECT_EQ(val(fbl::max(2.1, 1.1)), 2.1);
34 EXPECT_EQ(val(fbl::max(1u, 1u)), 1u);
42 EXPECT_EQ(val(fbl::clamp(1, 2, 6)), 2);
43 EXPECT_EQ(val(fbl::clamp(2.1, 2.1, 6.1)), 2.1);
44 EXPECT_EQ(val(fbl::clamp(3u, 2u, 6u)), 3u);
45 EXPECT_EQ(val(fbl::clamp(6, 2, 6)), 6);
46 EXPECT_EQ(val(fbl::clamp(7, 2, 6)), 6);
48 EXPECT_EQ(val(fbl::clamp(1, 2, 2)), 2);
49 EXPECT_EQ(val(fbl::clamp(2, 2, 2)), 2);
50 EXPECT_EQ(val(fbl::clamp(3, 2, 2)), 2);
58 EXPECT_EQ(fbl::round_up(0u, 1u), 0u);
59 EXPECT_EQ(fbl::round_up(0u, 5u), 0u);
60 EXPECT_EQ(fbl::round_up(5u, 5u), 5u);
62 EXPECT_EQ(fbl::round_up(1u, 6u), 6u);
63 EXPECT_EQ(fbl::round_up(6u, 1u), 6u);
64 EXPECT_EQ(fbl::round_up(6u, 3u), 6u);
65 EXPECT_EQ(fbl::round_up(6u, 4u), 8u);
67 EXPECT_EQ(fbl::round_up(15u, 8u), 16u);
68 EXPECT_EQ(fbl::round_up(16u, 8u), 16u);
69 EXPECT_EQ(fbl::round_up(17u, 8u), 24u);
70 EXPECT_EQ(fbl::round_up(123u, 100u), 200u);
71 EXPECT_EQ(fbl::round_up(123456u, 1000u), 124000u);
73 uint64_t large_int = fbl::numeric_limits<uint32_t>::max() + 1LLU;
74 EXPECT_EQ(fbl::round_up(large_int, 64U), large_int);
75 EXPECT_EQ(fbl::round_up(large_int, 64LLU), large_int);
76 EXPECT_EQ(fbl::round_up(large_int + 63LLU, 64U), large_int + 64LLU);
77 EXPECT_EQ(fbl::round_up(large_int + 63LLU, 64LLU), large_int + 64LLU);
78 EXPECT_EQ(fbl::round_up(large_int, 3U), large_int + 2LLU);
79 EXPECT_EQ(fbl::round_up(large_int, 3LLU), large_int + 2LLU);
81 EXPECT_EQ(fbl::round_up(2U, large_int), large_int);
82 EXPECT_EQ(fbl::round_up(2LLU, large_int), large_int);
90 EXPECT_EQ(fbl::round_down(0u, 1u), 0u);
91 EXPECT_EQ(fbl::round_down(0u, 5u), 0u);
92 EXPECT_EQ(fbl::round_down(5u, 5u), 5u);
94 EXPECT_EQ(fbl::round_down(1u, 6u), 0u);
95 EXPECT_EQ(fbl::round_down(6u, 1u), 6u);
96 EXPECT_EQ(fbl::round_down(6u, 3u), 6u);
97 EXPECT_EQ(fbl::round_down(6u, 4u), 4u);
99 EXPECT_EQ(fbl::round_down(15u, 8u), 8u);
100 EXPECT_EQ(fbl::round_down(16u, 8u), 16u);
101 EXPECT_EQ(fbl::round_down(17u, 8u), 16u);
102 EXPECT_EQ(fbl::round_down(123u, 100u), 100u);
103 EXPECT_EQ(fbl::round_down(123456u, 1000u), 123000u);
105 uint64_t large_int = fbl::numeric_limits<uint32_t>::max() + 1LLU;
106 EXPECT_EQ(fbl::round_down(large_int, 64U), large_int);
107 EXPECT_EQ(fbl::round_down(large_int, 64LLU), large_int);
108 EXPECT_EQ(fbl::round_down(large_int + 63LLU, 64U), large_int);
109 EXPECT_EQ(fbl::round_down(large_int + 63LLU, 64LLU), large_int);
110 EXPECT_EQ(fbl::round_down(large_int + 65LLU, 64U), large_int + 64LLU);
111 EXPECT_EQ(fbl::round_down(large_int + 65LLU, 64LLU), large_int + 64LLU);
112 EXPECT_EQ(fbl::round_down(large_int + 2LLU, 3U), large_int + 2LLU);
113 EXPECT_EQ(fbl::round_down(large_int + 2LLU, 3LLU), large_int + 2LLU);
115 EXPECT_EQ(fbl::round_down(2U, large_int), 0);
116 EXPECT_EQ(fbl::round_down(2LLU, large_int), 0);
126 EXPECT_FALSE(fbl::is_pow2<T>(val));
127 EXPECT_FALSE(fbl::is_pow2<T>(static_cast<T>(val - 1)));
130 EXPECT_TRUE(fbl::is_pow2<T>(val));
131 EXPECT_FALSE(fbl::is_pow2<T>(static_cast<T>(val - 5u)));
132 EXPECT_FALSE(fbl::is_pow2<T>(static_cast<T>(val + 5u)));
141 EXPECT_EQ(fbl::max_element(null, null), null);
144 EXPECT_EQ(fbl::max_element(&value, &value), &value);
147 constexpr size_t count = fbl::count_of(values);
150 EXPECT_EQ(fbl::max_element(first, last), values + 2);
162 EXPECT_EQ(fbl::max_element(null, null, max_compare), null);
165 EXPECT_EQ(fbl::max_element(&value, &value, max_compare), &value);
168 constexpr size_t count = fbl::count_of(values);
171 EXPECT_EQ(fbl::max_element(first, last, max_compare), values + 2);
179 EXPECT_EQ(fbl::min_element(null, null), null);
182 EXPECT_EQ(fbl::min_element(&value, &value), &value);
185 constexpr size_t count = fbl::count_of(values);
188 EXPECT_EQ(fbl::min_element(first, last), values + 2);
200 EXPECT_EQ(fbl::min_element(null, null, min_compare), null);
203 EXPECT_EQ(fbl::min_element(&value, &value, min_compare), &value);
206 constexpr size_t count = fbl::count_of(values);
209 EXPECT_EQ(fbl::min_element(first, last, min_compare), values + 2);
218 EXPECT_EQ(fbl::lower_bound(null, null, 0), null);
221 EXPECT_EQ(fbl::lower_bound(&value, &value, 4), &value);
222 EXPECT_EQ(fbl::lower_bound(&value, &value, 5), &value);
223 EXPECT_EQ(fbl::lower_bound(&value, &value, 6), &value);
225 EXPECT_EQ(fbl::lower_bound(&value, &value + 1, 4), &value);
226 EXPECT_EQ(fbl::lower_bound(&value, &value + 1, 5), &value);
227 EXPECT_EQ(fbl::lower_bound(&value, &value + 1, 6), &value + 1);
234 EXPECT_EQ(*fbl::lower_bound(first, last, 0), 1);
235 EXPECT_EQ(*fbl::lower_bound(first, last, 1), 1);
236 EXPECT_EQ(*fbl::lower_bound(first, last, 2), 3);
237 EXPECT_EQ(*fbl::lower_bound(first, last, 3), 3);
238 EXPECT_EQ(*fbl::lower_bound(first, last, 4), 5);
239 EXPECT_EQ(*fbl::lower_bound(first, last, 5), 5);
240 EXPECT_EQ(*fbl::lower_bound(first, last, 6), 7);
241 EXPECT_EQ(*fbl::lower_bound(first, last, 7), 7);
242 EXPECT_EQ(fbl::lower_bound(first, last, 8), last);
245 EXPECT_EQ(fbl::lower_bound(first, first, 0), first);
246 EXPECT_EQ(fbl::lower_bound(first, last, 0), last);
263 EXPECT_EQ(fbl::lower_bound(null, null, 0, lessThan), null);
266 EXPECT_EQ(fbl::lower_bound(&value, &value, 4, lessThan), &value);
267 EXPECT_EQ(fbl::lower_bound(&value, &value, 5, lessThan), &value);
268 EXPECT_EQ(fbl::lower_bound(&value, &value, 6, lessThan), &value);
270 EXPECT_EQ(fbl::lower_bound(&value, &value + 1, 4, lessThan), &value);
271 EXPECT_EQ(fbl::lower_bound(&value, &value + 1, 5, lessThan), &value);
272 EXPECT_EQ(fbl::lower_bound(&value, &value + 1, 6, lessThan), &value + 1);
279 EXPECT_EQ(*fbl::lower_bound(first, last, 0, lessThan), 1);
280 EXPECT_EQ(*fbl::lower_bound(first, last, 1, lessThan), 1);
281 EXPECT_EQ(*fbl::lower_bound(first, last, 2, lessThan), 3);
282 EXPECT_EQ(*fbl::lower_bound(first, last, 3, lessThan), 3);
283 EXPECT_EQ(*fbl::lower_bound(first, last, 4, lessThan), 5);
284 EXPECT_EQ(*fbl::lower_bound(first, last, 5, lessThan), 5);
285 EXPECT_EQ(*fbl::lower_bound(first, last, 6, lessThan), 7);
286 EXPECT_EQ(*fbl::lower_bound(first, last, 7, lessThan), 7);
287 EXPECT_EQ(fbl::lower_bound(first, last, 8, lessThan), last);
290 EXPECT_EQ(fbl::lower_bound(first, first, 0, lessThan), first);
291 EXPECT_EQ(fbl::lower_bound(first, last, 0, lessThan), last);
302 EXPECT_EQ(fbl::gcd(val0, val0), val0);
306 EXPECT_EQ(fbl::gcd(val1, val1), val1);
309 EXPECT_EQ(fbl::gcd(val0, val1), val1);
310 EXPECT_EQ(fbl::gcd(val1, val0), val1);
313 T val2 = fbl::numeric_limits<T>::max();
315 EXPECT_EQ(fbl::gcd(val0, val2), val2);
316 EXPECT_EQ(fbl::gcd(val3, val0), val3);
319 EXPECT_EQ(fbl::gcd(val1, val3), val1);
320 EXPECT_EQ(fbl::gcd(val2, val1), val1);
323 EXPECT_EQ(fbl::gcd(val2, val2), val2);
328 EXPECT_EQ(fbl::gcd(val4, val5), val3);
335 EXPECT_EQ(fbl::gcd(val441, val48), expected);
348 EXPECT_EQ(fbl::lcm(val0, val0), val0);
352 EXPECT_EQ(fbl::lcm(val1, val1), val1);
355 EXPECT_EQ(fbl::lcm(val0, val1), val0);
356 EXPECT_EQ(fbl::lcm(val1, val0), val0);
359 T val2 = fbl::numeric_limits<T>::max();
361 EXPECT_EQ(fbl::lcm(val0, val3), val0);
362 EXPECT_EQ(fbl::lcm(val2, val0), val0);
365 EXPECT_EQ(fbl::lcm(val1, val2), val2);
366 EXPECT_EQ(fbl::lcm(val3, val1), val3);
369 EXPECT_EQ(fbl::lcm(val2, val2), val2);
373 EXPECT_EQ(fbl::lcm(val3, val4), val3 * val4);
377 EXPECT_EQ(fbl::lcm(val5, val4), val3 * val4);
383 EXPECT_EQ(fbl::lcm(val441, val24), expected);
393 EXPECT_EQ(fbl::accumulate(null, null, 42), 42);
396 EXPECT_EQ(fbl::accumulate(&value, &value, 42), 42);
399 constexpr size_t count = fbl::count_of(values);
402 EXPECT_EQ(fbl::accumulate(first, last, 2), 42);
415 EXPECT_EQ(fbl::accumulate(null, null, 42, accumulate_op), 42);
418 EXPECT_EQ(fbl::accumulate(&value, &value, 42, accumulate_op), 42);
421 constexpr size_t count = fbl::count_of(values);
424 EXPECT_EQ(fbl::accumulate(first, last, 2, accumulate_op), 42);