zpp
Zephyr C++20 Framework
main.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2019 Erwin Rol <erwin@erwinrol.com>
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /*
8  * Simple test to check if all zpp headers are error free
9  */
10 
11 #include <zephyr/ztest.h>
12 
13 #include <zephyr/kernel.h>
14 
15 #include <zpp.hpp>
16 
17 ZTEST_SUITE(zpp_compile_tests, NULL, NULL, NULL, NULL, NULL);
18 
19 //
20 // check compile time power_of_two function
21 //
22 static_assert(zpp::power_of_two(0) == 1);
23 static_assert(zpp::power_of_two(1) == 2);
24 static_assert(zpp::power_of_two(2) == 4);
25 static_assert(zpp::power_of_two(3) == 8);
26 static_assert(zpp::power_of_two(4) == 16);
27 static_assert(zpp::power_of_two(10) == 1024);
28 static_assert(zpp::power_of_two(20) == 1048576);
29 
30 //
31 // check compile time is_power_of_two function
32 //
33 static_assert(zpp::is_power_of_two(1) == true);
34 static_assert(zpp::is_power_of_two(2) == true);
35 static_assert(zpp::is_power_of_two(4) == true);
36 static_assert(zpp::is_power_of_two(8) == true);
37 static_assert(zpp::is_power_of_two(16) == true);
38 static_assert(zpp::is_power_of_two(3) == false);
39 static_assert(zpp::is_power_of_two(100) == false);
40 
41 //
42 // check compile time is_multiple_of function
43 //
44 static_assert(zpp::is_multiple_of(0, 0) == false);
45 static_assert(zpp::is_multiple_of(4, 4) == true);
46 static_assert(zpp::is_multiple_of(6, 3) == true);
47 static_assert(zpp::is_multiple_of(10, 3) == false);
consteval bool is_power_of_two(uint32_t value) noexcept
check if a value is a power of two
Definition: utils.hpp:97
consteval bool is_multiple_of(uint32_t value, uint32_t base)
Check if a value is a multiple of another value.
Definition: utils.hpp:117
consteval uint32_t power_of_two(uint32_t power) noexcept
calculate a power of 2
Definition: utils.hpp:79
ZTEST_SUITE(zpp_atomic_tests, NULL, NULL, NULL, NULL, NULL)