blob: 7cbf9d36d35a351135c29371b9f6b5055c7637bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;
}
|