diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-12-13 17:50:59 -0500 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2024-12-13 17:53:52 -0500 |
commit | 57cc0523f600575feda09bd9fae13f685ce85b0f (patch) | |
tree | a99de333f2812d7c018820f39d78b8c4e744f705 /libmisc/tests/test_macro.c | |
parent | c755f88f8c6862ef1497375df2d09454c99a0632 (diff) |
Add some tests for LM_NEXT_POWER_OF_2
Diffstat (limited to 'libmisc/tests/test_macro.c')
-rw-r--r-- | libmisc/tests/test_macro.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/libmisc/tests/test_macro.c b/libmisc/tests/test_macro.c new file mode 100644 index 0000000..7cbf9d3 --- /dev/null +++ b/libmisc/tests/test_macro.c @@ -0,0 +1,32 @@ +/* libmisc/tests/test_macro.c - Tests for <libmisc/macro.h> + * + * Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com> + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +#include <libmisc/macro.h> + +#include "test.h" + +int main() { + /* valid down to 0. */ + test_assert(LM_NEXT_POWER_OF_2(0) == 1); + test_assert(LM_NEXT_POWER_OF_2(1) == 2); + test_assert(LM_NEXT_POWER_OF_2(2) == 4); + test_assert(LM_NEXT_POWER_OF_2(3) == 4); + test_assert(LM_NEXT_POWER_OF_2(4) == 8); + test_assert(LM_NEXT_POWER_OF_2(5) == 8); + test_assert(LM_NEXT_POWER_OF_2(6) == 8); + test_assert(LM_NEXT_POWER_OF_2(7) == 8); + test_assert(LM_NEXT_POWER_OF_2(8) == 16); + /* ... */ + test_assert(LM_NEXT_POWER_OF_2(16) == 32); + /* ... */ + test_assert(LM_NEXT_POWER_OF_2(0x7000000000000000) == 0x8000000000000000); + /* ... */ + test_assert(LM_NEXT_POWER_OF_2(0x8000000000000000-1) == 0x8000000000000000); + /* Valid up to 0x8000000000000000-1 = (1<<63)-1 */ + test_assert(LM_NEXT_POWER_OF_2(0x8000000000000000) == 0); /* :( */ + + return 0; +} |