00001
00026 #include "sr_utilities/sr_math_utils.hpp"
00027 #include <gtest/gtest.h>
00028
00029 TEST(Pow, base2)
00030 {
00031 EXPECT_EQ(sr_math_utils::ipow(2, 0), 1);
00032 EXPECT_EQ(sr_math_utils::ipow(2, 2), 4);
00033 EXPECT_EQ(sr_math_utils::ipow(2, 10), 1024);
00034
00035 EXPECT_EQ(sr_math_utils::ipow(2, 20), 1048576);
00036 }
00037
00038 TEST(Pow, base3)
00039 {
00040 EXPECT_EQ(sr_math_utils::ipow(3, 0), 1);
00041 EXPECT_EQ(sr_math_utils::ipow(3, 2), 9);
00042 EXPECT_EQ(sr_math_utils::ipow(3, 10), 59049);
00043 }
00044
00045 TEST(BitMasks, is_true__true_0)
00046 {
00047
00048 int bit_mask = 1;
00049 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_true(bit_mask, 0));
00050 }
00051
00052 TEST(BitMasks, is_true__false_1)
00053 {
00054
00055 int bit_mask = 1;
00056 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_true(bit_mask, 1));
00057 }
00058
00059 TEST(BitMasks, is_false__false_0)
00060 {
00061
00062 int bit_mask = 1;
00063 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_false(bit_mask, 0));
00064 }
00065
00066 TEST(BitMasks, is_false__true_1)
00067 {
00068
00069 int bit_mask = 1;
00070 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_false(bit_mask, 1));
00071 }
00072
00073 TEST(BitMasksGlobal, is_true__true)
00074 {
00075
00076 int bit_mask = 85;
00077 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_true(bit_mask, 0));
00078 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_true(bit_mask, 2));
00079 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_true(bit_mask, 4));
00080 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_true(bit_mask, 6));
00081 }
00082
00083 TEST(BitMasksGlobal, is_false__false)
00084 {
00085
00086 int bit_mask = 85;
00087 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_false(bit_mask, 0));
00088 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_false(bit_mask, 2));
00089 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_false(bit_mask, 4));
00090 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_false(bit_mask, 6));
00091 }
00092
00093 TEST(BitMasksGlobal, is_true__false)
00094 {
00095
00096 int bit_mask = 85;
00097 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_true(bit_mask, 1));
00098 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_true(bit_mask, 3));
00099 EXPECT_FALSE(sr_math_utils::is_bit_mask_index_true(bit_mask, 5));
00100 }
00101
00102 TEST(BitMasksGlobal, is_false__true)
00103 {
00104
00105 int bit_mask = 85;
00106 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_false(bit_mask, 1));
00107 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_false(bit_mask, 3));
00108 EXPECT_TRUE(sr_math_utils::is_bit_mask_index_false(bit_mask, 5));
00109 }
00110
00111 TEST(CounterWithOverflow, no_overflows)
00112 {
00113 int received_val, full_val = 0;
00114
00115 received_val = 1000;
00116 full_val = sr_math_utils::counter_with_overflow(full_val, received_val);
00117 EXPECT_EQ(full_val, 1000);
00118
00119 received_val = 65535;
00120 full_val = sr_math_utils::counter_with_overflow(full_val, received_val);
00121 EXPECT_EQ(full_val, 65535);
00122 }
00123
00124 TEST(CounterWithOverflow, with_overflows)
00125 {
00126 int received_val, full_val = 0;
00127
00128 full_val = 65535;
00129 received_val = 0;
00130 full_val = sr_math_utils::counter_with_overflow(full_val, received_val);
00131 EXPECT_EQ(full_val, 65536);
00132
00133 received_val = 1000;
00134 full_val = sr_math_utils::counter_with_overflow(full_val, received_val);
00135 EXPECT_EQ(full_val, 66536);
00136
00137 received_val = 0;
00138 full_val = sr_math_utils::counter_with_overflow(full_val, received_val);
00139 EXPECT_EQ(full_val, 131072);
00140 }
00141
00142
00143 int main(int argc, char **argv)
00144 {
00145 testing::InitGoogleTest(&argc, argv);
00146 return RUN_ALL_TESTS();
00147 }
00148
00149
00150
00151
00152
00153