2
#include <gtest/gtest.h>
3
#include <bit_functions.h>
5
TEST(FirstZeroBit, Calculate)
7
using namespace Mcucpp;
8
EXPECT_EQ(0, FirstZeroBitPosition(0x0u));
9
EXPECT_EQ(1, FirstZeroBitPosition(0x1u));
10
EXPECT_EQ(2, FirstZeroBitPosition(0x3u));
11
EXPECT_EQ(3, FirstZeroBitPosition(0x7u));
12
EXPECT_EQ(4, FirstZeroBitPosition(0xfu));
13
EXPECT_EQ(5, FirstZeroBitPosition(0x1fu));
14
EXPECT_EQ(6, FirstZeroBitPosition(0x3fu));
15
EXPECT_EQ(7, FirstZeroBitPosition(0x7fu));
16
EXPECT_EQ(8, FirstZeroBitPosition(0xffu));
17
EXPECT_EQ(9, FirstZeroBitPosition(0x1ffu));
18
EXPECT_EQ(10, FirstZeroBitPosition(0x3ffu));
19
EXPECT_EQ(11, FirstZeroBitPosition(0x7ffu));
20
EXPECT_EQ(12, FirstZeroBitPosition(0xfffu));
21
EXPECT_EQ(13, FirstZeroBitPosition(0x1fffu));
22
EXPECT_EQ(14, FirstZeroBitPosition(0x3fffu));
23
EXPECT_EQ(15, FirstZeroBitPosition(0x7fffu));
24
EXPECT_EQ(16, FirstZeroBitPosition(0xffffu));
25
EXPECT_EQ(17, FirstZeroBitPosition(0x1ffffu));
26
EXPECT_EQ(18, FirstZeroBitPosition(0x3ffffu));
27
EXPECT_EQ(19, FirstZeroBitPosition(0x7ffffu));
28
EXPECT_EQ(20, FirstZeroBitPosition(0xfffffu));
29
EXPECT_EQ(21, FirstZeroBitPosition(0x1fffffu));
30
EXPECT_EQ(22, FirstZeroBitPosition(0x3fffffu));
31
EXPECT_EQ(23, FirstZeroBitPosition(0x7fffffu));
32
EXPECT_EQ(24, FirstZeroBitPosition(0xffffffu));
33
EXPECT_EQ(25, FirstZeroBitPosition(0x1ffffffu));
34
EXPECT_EQ(26, FirstZeroBitPosition(0x3ffffffu));
35
EXPECT_EQ(27, FirstZeroBitPosition(0x7ffffffu));
36
EXPECT_EQ(28, FirstZeroBitPosition(0xfffffffu));
37
EXPECT_EQ(29, FirstZeroBitPosition(0x1fffffffu));
38
EXPECT_EQ(30, FirstZeroBitPosition(0x3fffffffu));
39
EXPECT_EQ(31, FirstZeroBitPosition(0x7fffffffu));
40
EXPECT_EQ(255, FirstZeroBitPosition(0xffffffffu));