diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-01-08 00:18:34 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-01-08 00:19:38 +0900 |
| commit | 41d24c967eb5fce3f811fc567f60204c77dada15 (patch) | |
| tree | 3290da5a5f8d04f9745cbd7809a8b31abeb84fba /tests/bitwise_operators.c | |
| parent | 1082a32431dcd8f58432a6ce610d35cf37c553ad (diff) | |
| download | ducc-41d24c967eb5fce3f811fc567f60204c77dada15.tar.gz ducc-41d24c967eb5fce3f811fc567f60204c77dada15.tar.zst ducc-41d24c967eb5fce3f811fc567f60204c77dada15.zip | |
refactor: rewrite some tests in C
Diffstat (limited to 'tests/bitwise_operators.c')
| -rw-r--r-- | tests/bitwise_operators.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/bitwise_operators.c b/tests/bitwise_operators.c new file mode 100644 index 0000000..e8a5619 --- /dev/null +++ b/tests/bitwise_operators.c @@ -0,0 +1,38 @@ +#include <helpers.h> + +int main() { + ASSERT_EQ(123, 0 | 123); + ASSERT_EQ(460, 12 | 456); + + ASSERT_EQ(8, 1 << 3); + ASSERT_EQ(336, 21 << 4); + ASSERT_EQ(13, 111 >> 3); + ASSERT_EQ(0, 15 >> 14); + + int a = 5; + int b = 3; + ASSERT_EQ(1, a & b); + ASSERT_EQ(7, a | b); + ASSERT_EQ(6, a ^ b); + ASSERT_EQ(4, 2 + 3 & 4); + + int c = 1 + 2 & 3; + int d = 4 & 5 ^ 6; + int e = 1 ^ 2 | 3; + int f = 0 | 1 & 2; + ASSERT_EQ(3, c); + ASSERT_EQ(2, d); + ASSERT_EQ(3, e); + ASSERT_EQ(0, f); + + ASSERT_EQ(-1, ~0); + ASSERT_EQ(-2, ~1); + ASSERT_EQ(-6, ~5); + ASSERT_EQ(0, ~(-1)); + ASSERT_EQ(5, ~(-6)); + + int x = 10; + ASSERT_EQ(-11, ~x); + ASSERT_EQ(-1, ~(x & 0)); + ASSERT_EQ(-16, ~(x | 5)); +} |
