00001 #include <gtest/gtest.h> 00002 #include <stdint.h> 00003 #include "robot_instance/BitWizard.h" 00004 00005 using namespace std; 00006 00007 TEST(BitWizardTest, Constructors) 00008 { 00009 BitWizard<uint32_t> bitWizard; 00010 } 00011 00012 TEST(BitWizardTest, GetBit8) 00013 { 00014 BitWizard<uint8_t> bitWizard; 00015 00016 uint8_t value = 0; 00017 00018 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00019 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00020 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00021 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00022 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00023 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00024 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00025 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00026 00027 value = -1; 00028 00029 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00030 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00031 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00032 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00033 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00034 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00035 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00036 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00037 00038 value = 0xAA; 00039 00040 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00041 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00042 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00043 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00044 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00045 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00046 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00047 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00048 } 00049 00050 TEST(BitWizardTest, GetBit16) 00051 { 00052 BitWizard<uint16_t> bitWizard; 00053 00054 uint16_t value = 0; 00055 00056 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00057 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00058 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00059 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00060 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00061 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00062 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00063 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00064 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_EIGHT_INDEX, value)); 00065 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_NINE_INDEX, value)); 00066 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TEN_INDEX, value)); 00067 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ELEVEN_INDEX, value)); 00068 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWELVE_INDEX, value)); 00069 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THIRTEEN_INDEX, value)); 00070 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOURTEEN_INDEX, value)); 00071 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, value)); 00072 00073 value = -1; 00074 00075 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00076 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00077 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00078 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00079 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00080 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00081 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00082 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00083 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_EIGHT_INDEX, value)); 00084 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_NINE_INDEX, value)); 00085 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TEN_INDEX, value)); 00086 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ELEVEN_INDEX, value)); 00087 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWELVE_INDEX, value)); 00088 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTEEN_INDEX, value)); 00089 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FOURTEEN_INDEX, value)); 00090 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, value)); 00091 00092 value = 0xAAAA; 00093 00094 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00095 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00096 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00097 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00098 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00099 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00100 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00101 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00102 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_EIGHT_INDEX, value)); 00103 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_NINE_INDEX, value)); 00104 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TEN_INDEX, value)); 00105 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ELEVEN_INDEX, value)); 00106 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWELVE_INDEX, value)); 00107 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTEEN_INDEX, value)); 00108 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOURTEEN_INDEX, value)); 00109 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, value)); 00110 } 00111 00112 TEST(BitWizardTest, GetBit32) 00113 { 00114 BitWizard<uint32_t> bitWizard; 00115 00116 uint32_t value = 0; 00117 00118 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00119 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00120 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00121 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00122 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00123 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00124 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00125 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00126 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_EIGHT_INDEX, value)); 00127 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_NINE_INDEX, value)); 00128 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TEN_INDEX, value)); 00129 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ELEVEN_INDEX, value)); 00130 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWELVE_INDEX, value)); 00131 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THIRTEEN_INDEX, value)); 00132 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOURTEEN_INDEX, value)); 00133 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, value)); 00134 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SIXTEEN_INDEX, value)); 00135 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SEVENTEEN_INDEX, value)); 00136 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_EIGHTEEN_INDEX, value)); 00137 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_NINETEEN_INDEX, value)); 00138 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTY_INDEX, value)); 00139 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYONE_INDEX, value)); 00140 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYTWO_INDEX, value)); 00141 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYTHREE_INDEX, value)); 00142 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYFOUR_INDEX, value)); 00143 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYFIVE_INDEX, value)); 00144 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYSIX_INDEX, value)); 00145 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYSEVEN_INDEX, value)); 00146 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYEIGHT_INDEX, value)); 00147 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYNINE_INDEX, value)); 00148 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THIRTY_INDEX, value)); 00149 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THIRTYONE_INDEX, value)); 00150 00151 value = -1; 00152 00153 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00154 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00155 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00156 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00157 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00158 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00159 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00160 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00161 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_EIGHT_INDEX, value)); 00162 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_NINE_INDEX, value)); 00163 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TEN_INDEX, value)); 00164 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ELEVEN_INDEX, value)); 00165 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWELVE_INDEX, value)); 00166 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTEEN_INDEX, value)); 00167 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FOURTEEN_INDEX, value)); 00168 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, value)); 00169 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SIXTEEN_INDEX, value)); 00170 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVENTEEN_INDEX, value)); 00171 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_EIGHTEEN_INDEX, value)); 00172 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_NINETEEN_INDEX, value)); 00173 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTY_INDEX, value)); 00174 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYONE_INDEX, value)); 00175 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYTWO_INDEX, value)); 00176 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYTHREE_INDEX, value)); 00177 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYFOUR_INDEX, value)); 00178 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYFIVE_INDEX, value)); 00179 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYSIX_INDEX, value)); 00180 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYSEVEN_INDEX, value)); 00181 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYEIGHT_INDEX, value)); 00182 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYNINE_INDEX, value)); 00183 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTY_INDEX, value)); 00184 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTYONE_INDEX, value)); 00185 00186 value = 0xAAAAAAAA; 00187 00188 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, value)); 00189 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ONE_INDEX, value)); 00190 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWO_INDEX, value)); 00191 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THREE_INDEX, value)); 00192 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOUR_INDEX, value)); 00193 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIVE_INDEX, value)); 00194 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SIX_INDEX, value)); 00195 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, value)); 00196 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_EIGHT_INDEX, value)); 00197 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_NINE_INDEX, value)); 00198 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TEN_INDEX, value)); 00199 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ELEVEN_INDEX, value)); 00200 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWELVE_INDEX, value)); 00201 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTEEN_INDEX, value)); 00202 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FOURTEEN_INDEX, value)); 00203 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, value)); 00204 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SIXTEEN_INDEX, value)); 00205 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVENTEEN_INDEX, value)); 00206 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_EIGHTEEN_INDEX, value)); 00207 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_NINETEEN_INDEX, value)); 00208 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTY_INDEX, value)); 00209 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYONE_INDEX, value)); 00210 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYTWO_INDEX, value)); 00211 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYTHREE_INDEX, value)); 00212 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYFOUR_INDEX, value)); 00213 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYFIVE_INDEX, value)); 00214 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYSIX_INDEX, value)); 00215 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYSEVEN_INDEX, value)); 00216 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_TWENTYEIGHT_INDEX, value)); 00217 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_TWENTYNINE_INDEX, value)); 00218 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THIRTY_INDEX, value)); 00219 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTYONE_INDEX, value)); 00220 } 00221 00222 TEST(BitWizardTest, GetBitMismatch) 00223 { 00224 BitWizard<uint32_t> bitWizard32; 00225 uint8_t value8 = 0xAA; 00226 00227 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_ZERO_INDEX, value8)); 00228 EXPECT_TRUE(bitWizard32.getBit(BitMinion::BIT_ONE_INDEX, value8)); 00229 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWO_INDEX, value8)); 00230 EXPECT_TRUE(bitWizard32.getBit(BitMinion::BIT_THREE_INDEX, value8)); 00231 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_FOUR_INDEX, value8)); 00232 EXPECT_TRUE(bitWizard32.getBit(BitMinion::BIT_FIVE_INDEX, value8)); 00233 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_SIX_INDEX, value8)); 00234 EXPECT_TRUE(bitWizard32.getBit(BitMinion::BIT_SEVEN_INDEX, value8)); 00236 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_EIGHT_INDEX, value8)); 00237 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_NINE_INDEX, value8)); 00238 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TEN_INDEX, value8)); 00239 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_ELEVEN_INDEX, value8)); 00240 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWELVE_INDEX, value8)); 00241 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_THIRTEEN_INDEX, value8)); 00242 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_FOURTEEN_INDEX, value8)); 00243 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_FIFTEEN_INDEX, value8)); 00244 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_SIXTEEN_INDEX, value8)); 00245 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_SEVENTEEN_INDEX, value8)); 00246 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_EIGHTEEN_INDEX, value8)); 00247 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_NINETEEN_INDEX, value8)); 00248 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTY_INDEX, value8)); 00249 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYONE_INDEX, value8)); 00250 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYTWO_INDEX, value8)); 00251 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYTHREE_INDEX, value8)); 00252 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYFOUR_INDEX, value8)); 00253 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYFIVE_INDEX, value8)); 00254 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYSIX_INDEX, value8)); 00255 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYSEVEN_INDEX, value8)); 00256 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYEIGHT_INDEX, value8)); 00257 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_TWENTYNINE_INDEX, value8)); 00258 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_THIRTY_INDEX, value8)); 00259 EXPECT_FALSE(bitWizard32.getBit(BitMinion::BIT_THIRTYONE_INDEX, value8)); 00260 00261 BitWizard<uint8_t> bitWizard8; 00262 uint32_t value32 = 0xAAAAAAAA; 00263 00264 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_ZERO_INDEX, value32)); 00265 EXPECT_TRUE(bitWizard8.getBit(BitMinion::BIT_ONE_INDEX, value32)); 00266 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWO_INDEX, value32)); 00267 EXPECT_TRUE(bitWizard8.getBit(BitMinion::BIT_THREE_INDEX, value32)); 00268 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_FOUR_INDEX, value32)); 00269 EXPECT_TRUE(bitWizard8.getBit(BitMinion::BIT_FIVE_INDEX, value32)); 00270 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_SIX_INDEX, value32)); 00271 EXPECT_TRUE(bitWizard8.getBit(BitMinion::BIT_SEVEN_INDEX, value32)); 00273 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_EIGHT_INDEX, value32)); 00274 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_NINE_INDEX, value32)); 00275 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TEN_INDEX, value32)); 00276 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_ELEVEN_INDEX, value32)); 00277 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWELVE_INDEX, value32)); 00278 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_THIRTEEN_INDEX, value32)); 00279 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_FOURTEEN_INDEX, value32)); 00280 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_FIFTEEN_INDEX, value32)); 00281 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_SIXTEEN_INDEX, value32)); 00282 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_SEVENTEEN_INDEX, value32)); 00283 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_EIGHTEEN_INDEX, value32)); 00284 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_NINETEEN_INDEX, value32)); 00285 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTY_INDEX, value32)); 00286 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYONE_INDEX, value32)); 00287 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYTWO_INDEX, value32)); 00288 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYTHREE_INDEX, value32)); 00289 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYFOUR_INDEX, value32)); 00290 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYFIVE_INDEX, value32)); 00291 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYSIX_INDEX, value32)); 00292 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYSEVEN_INDEX, value32)); 00293 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYEIGHT_INDEX, value32)); 00294 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_TWENTYNINE_INDEX, value32)); 00295 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_THIRTY_INDEX, value32)); 00296 EXPECT_FALSE(bitWizard8.getBit(BitMinion::BIT_THIRTYONE_INDEX, value32)); 00297 } 00298 00299 TEST(BitWizardTest, TestBit8) 00300 { 00301 BitWizard<uint8_t> bitWizard; 00302 00303 uint8_t value = 0xAA; 00304 00305 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_ZERO_INDEX, value)); 00306 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_ZERO_INDEX, value)); 00307 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_ONE_INDEX, value)); 00308 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_ONE_INDEX, value)); 00309 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWO_INDEX, value)); 00310 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWO_INDEX, value)); 00311 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_THREE_INDEX, value)); 00312 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_THREE_INDEX, value)); 00313 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_FOUR_INDEX, value)); 00314 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_FOUR_INDEX, value)); 00315 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_FIVE_INDEX, value)); 00316 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_FIVE_INDEX, value)); 00317 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_SIX_INDEX, value)); 00318 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_SIX_INDEX, value)); 00319 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_SEVEN_INDEX, value)); 00320 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_SEVEN_INDEX, value)); 00321 } 00322 00323 TEST(BitWizardTest, TestBit16) 00324 { 00325 BitWizard<uint16_t> bitWizard; 00326 00327 uint16_t value = 0xAAAA; 00328 00329 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_ZERO_INDEX, value)); 00330 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_ZERO_INDEX, value)); 00331 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_ONE_INDEX, value)); 00332 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_ONE_INDEX, value)); 00333 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWO_INDEX, value)); 00334 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWO_INDEX, value)); 00335 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_THREE_INDEX, value)); 00336 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_THREE_INDEX, value)); 00337 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_FOUR_INDEX, value)); 00338 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_FOUR_INDEX, value)); 00339 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_FIVE_INDEX, value)); 00340 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_FIVE_INDEX, value)); 00341 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_SIX_INDEX, value)); 00342 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_SIX_INDEX, value)); 00343 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_SEVEN_INDEX, value)); 00344 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_SEVEN_INDEX, value)); 00345 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_EIGHT_INDEX, value)); 00346 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_EIGHT_INDEX, value)); 00347 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_NINE_INDEX, value)); 00348 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_NINE_INDEX, value)); 00349 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TEN_INDEX, value)); 00350 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TEN_INDEX, value)); 00351 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_ELEVEN_INDEX, value)); 00352 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_ELEVEN_INDEX, value)); 00353 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWELVE_INDEX, value)); 00354 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWELVE_INDEX, value)); 00355 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_THIRTEEN_INDEX, value)); 00356 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_THIRTEEN_INDEX, value)); 00357 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_FOURTEEN_INDEX, value)); 00358 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_FOURTEEN_INDEX, value)); 00359 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_FIFTEEN_INDEX, value)); 00360 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_FIFTEEN_INDEX, value)); 00361 } 00362 00363 TEST(BitWizardTest, TestBit32) 00364 { 00365 BitWizard<uint32_t> bitWizard; 00366 00367 uint32_t value = 0xAAAAAAAA; 00368 00369 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_ZERO_INDEX, value)); 00370 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_ZERO_INDEX, value)); 00371 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_ONE_INDEX, value)); 00372 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_ONE_INDEX, value)); 00373 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWO_INDEX, value)); 00374 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWO_INDEX, value)); 00375 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_THREE_INDEX, value)); 00376 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_THREE_INDEX, value)); 00377 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_FOUR_INDEX, value)); 00378 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_FOUR_INDEX, value)); 00379 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_FIVE_INDEX, value)); 00380 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_FIVE_INDEX, value)); 00381 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_SIX_INDEX, value)); 00382 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_SIX_INDEX, value)); 00383 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_SEVEN_INDEX, value)); 00384 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_SEVEN_INDEX, value)); 00385 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_EIGHT_INDEX, value)); 00386 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_EIGHT_INDEX, value)); 00387 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_NINE_INDEX, value)); 00388 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_NINE_INDEX, value)); 00389 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TEN_INDEX, value)); 00390 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TEN_INDEX, value)); 00391 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_ELEVEN_INDEX, value)); 00392 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_ELEVEN_INDEX, value)); 00393 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWELVE_INDEX, value)); 00394 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWELVE_INDEX, value)); 00395 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_THIRTEEN_INDEX, value)); 00396 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_THIRTEEN_INDEX, value)); 00397 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_FOURTEEN_INDEX, value)); 00398 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_FOURTEEN_INDEX, value)); 00399 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_FIFTEEN_INDEX, value)); 00400 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_FIFTEEN_INDEX, value)); 00401 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_SIXTEEN_INDEX, value)); 00402 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_SIXTEEN_INDEX, value)); 00403 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_SEVENTEEN_INDEX, value)); 00404 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_SEVENTEEN_INDEX, value)); 00405 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_EIGHTEEN_INDEX, value)); 00406 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_EIGHTEEN_INDEX, value)); 00407 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_NINETEEN_INDEX, value)); 00408 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_NINETEEN_INDEX, value)); 00409 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWENTY_INDEX, value)); 00410 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWENTY_INDEX, value)); 00411 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_TWENTYONE_INDEX, value)); 00412 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_TWENTYONE_INDEX, value)); 00413 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWENTYTWO_INDEX, value)); 00414 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWENTYTWO_INDEX, value)); 00415 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_TWENTYTHREE_INDEX, value)); 00416 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_TWENTYTHREE_INDEX, value)); 00417 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWENTYFOUR_INDEX, value)); 00418 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWENTYFOUR_INDEX, value)); 00419 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_TWENTYFIVE_INDEX, value)); 00420 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_TWENTYFIVE_INDEX, value)); 00421 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWENTYSIX_INDEX, value)); 00422 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWENTYSIX_INDEX, value)); 00423 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_TWENTYSEVEN_INDEX, value)); 00424 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_TWENTYSEVEN_INDEX, value)); 00425 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_TWENTYEIGHT_INDEX, value)); 00426 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_TWENTYEIGHT_INDEX, value)); 00427 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_TWENTYNINE_INDEX, value)); 00428 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_TWENTYNINE_INDEX, value)); 00429 EXPECT_FALSE(bitWizard.testBit(true, BitMinion::BIT_THIRTY_INDEX, value)); 00430 EXPECT_TRUE( bitWizard.testBit(false, BitMinion::BIT_THIRTY_INDEX, value)); 00431 EXPECT_TRUE( bitWizard.testBit(true, BitMinion::BIT_THIRTYONE_INDEX, value)); 00432 EXPECT_FALSE(bitWizard.testBit(false, BitMinion::BIT_THIRTYONE_INDEX, value)); 00433 } 00434 00435 TEST(BitWizardTest, TestBitMismatch) 00436 { 00437 BitWizard<uint32_t> bitWizard32; 00438 uint8_t value8 = 0xAA; 00439 00440 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_ZERO_INDEX, value8)); 00441 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_ZERO_INDEX, value8)); 00442 EXPECT_TRUE( bitWizard32.testBit(true, BitMinion::BIT_ONE_INDEX, value8)); 00443 EXPECT_FALSE(bitWizard32.testBit(false, BitMinion::BIT_ONE_INDEX, value8)); 00444 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWO_INDEX, value8)); 00445 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWO_INDEX, value8)); 00446 EXPECT_TRUE( bitWizard32.testBit(true, BitMinion::BIT_THREE_INDEX, value8)); 00447 EXPECT_FALSE(bitWizard32.testBit(false, BitMinion::BIT_THREE_INDEX, value8)); 00448 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_FOUR_INDEX, value8)); 00449 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_FOUR_INDEX, value8)); 00450 EXPECT_TRUE( bitWizard32.testBit(true, BitMinion::BIT_FIVE_INDEX, value8)); 00451 EXPECT_FALSE(bitWizard32.testBit(false, BitMinion::BIT_FIVE_INDEX, value8)); 00452 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_SIX_INDEX, value8)); 00453 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_SIX_INDEX, value8)); 00454 EXPECT_TRUE( bitWizard32.testBit(true, BitMinion::BIT_SEVEN_INDEX, value8)); 00455 EXPECT_FALSE(bitWizard32.testBit(false, BitMinion::BIT_SEVEN_INDEX, value8)); 00457 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_EIGHT_INDEX, value8)); 00458 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_EIGHT_INDEX, value8)); 00459 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_NINE_INDEX, value8)); 00460 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_NINE_INDEX, value8)); 00461 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TEN_INDEX, value8)); 00462 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TEN_INDEX, value8)); 00463 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_ELEVEN_INDEX, value8)); 00464 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_ELEVEN_INDEX, value8)); 00465 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWELVE_INDEX, value8)); 00466 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWELVE_INDEX, value8)); 00467 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_THIRTEEN_INDEX, value8)); 00468 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_THIRTEEN_INDEX, value8)); 00469 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_FOURTEEN_INDEX, value8)); 00470 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_FOURTEEN_INDEX, value8)); 00471 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_FIFTEEN_INDEX, value8)); 00472 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_FIFTEEN_INDEX, value8)); 00473 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_SIXTEEN_INDEX, value8)); 00474 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_SIXTEEN_INDEX, value8)); 00475 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_SEVENTEEN_INDEX, value8)); 00476 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_SEVENTEEN_INDEX, value8)); 00477 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_EIGHTEEN_INDEX, value8)); 00478 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_EIGHTEEN_INDEX, value8)); 00479 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_NINETEEN_INDEX, value8)); 00480 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_NINETEEN_INDEX, value8)); 00481 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTY_INDEX, value8)); 00482 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTY_INDEX, value8)); 00483 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYONE_INDEX, value8)); 00484 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYONE_INDEX, value8)); 00485 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYTWO_INDEX, value8)); 00486 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYTWO_INDEX, value8)); 00487 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYTHREE_INDEX, value8)); 00488 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYTHREE_INDEX, value8)); 00489 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYFOUR_INDEX, value8)); 00490 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYFOUR_INDEX, value8)); 00491 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYFIVE_INDEX, value8)); 00492 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYFIVE_INDEX, value8)); 00493 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYSIX_INDEX, value8)); 00494 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYSIX_INDEX, value8)); 00495 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYSEVEN_INDEX, value8)); 00496 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYSEVEN_INDEX, value8)); 00497 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYEIGHT_INDEX, value8)); 00498 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYEIGHT_INDEX, value8)); 00499 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_TWENTYNINE_INDEX, value8)); 00500 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_TWENTYNINE_INDEX, value8)); 00501 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_THIRTY_INDEX, value8)); 00502 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_THIRTY_INDEX, value8)); 00503 EXPECT_FALSE(bitWizard32.testBit(true, BitMinion::BIT_THIRTYONE_INDEX, value8)); 00504 EXPECT_TRUE( bitWizard32.testBit(false, BitMinion::BIT_THIRTYONE_INDEX, value8)); 00505 00506 BitWizard<uint8_t> bitWizard8; 00507 uint32_t value32 = 0xAAAAAAAA; 00508 00509 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_ZERO_INDEX, value32)); 00510 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_ZERO_INDEX, value32)); 00511 EXPECT_TRUE( bitWizard8.testBit(true, BitMinion::BIT_ONE_INDEX, value32)); 00512 EXPECT_FALSE(bitWizard8.testBit(false, BitMinion::BIT_ONE_INDEX, value32)); 00513 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWO_INDEX, value32)); 00514 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWO_INDEX, value32)); 00515 EXPECT_TRUE( bitWizard8.testBit(true, BitMinion::BIT_THREE_INDEX, value32)); 00516 EXPECT_FALSE(bitWizard8.testBit(false, BitMinion::BIT_THREE_INDEX, value32)); 00517 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_FOUR_INDEX, value32)); 00518 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_FOUR_INDEX, value32)); 00519 EXPECT_TRUE( bitWizard8.testBit(true, BitMinion::BIT_FIVE_INDEX, value32)); 00520 EXPECT_FALSE(bitWizard8.testBit(false, BitMinion::BIT_FIVE_INDEX, value32)); 00521 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_SIX_INDEX, value32)); 00522 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_SIX_INDEX, value32)); 00523 EXPECT_TRUE( bitWizard8.testBit(true, BitMinion::BIT_SEVEN_INDEX, value32)); 00524 EXPECT_FALSE(bitWizard8.testBit(false, BitMinion::BIT_SEVEN_INDEX, value32)); 00526 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_EIGHT_INDEX, value32)); 00527 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_EIGHT_INDEX, value32)); 00528 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_NINE_INDEX, value32)); 00529 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_NINE_INDEX, value32)); 00530 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TEN_INDEX, value32)); 00531 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TEN_INDEX, value32)); 00532 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_ELEVEN_INDEX, value32)); 00533 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_ELEVEN_INDEX, value32)); 00534 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWELVE_INDEX, value32)); 00535 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWELVE_INDEX, value32)); 00536 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_THIRTEEN_INDEX, value32)); 00537 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_THIRTEEN_INDEX, value32)); 00538 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_FOURTEEN_INDEX, value32)); 00539 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_FOURTEEN_INDEX, value32)); 00540 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_FIFTEEN_INDEX, value32)); 00541 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_FIFTEEN_INDEX, value32)); 00542 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_SIXTEEN_INDEX, value32)); 00543 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_SIXTEEN_INDEX, value32)); 00544 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_SEVENTEEN_INDEX, value32)); 00545 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_SEVENTEEN_INDEX, value32)); 00546 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_EIGHTEEN_INDEX, value32)); 00547 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_EIGHTEEN_INDEX, value32)); 00548 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_NINETEEN_INDEX, value32)); 00549 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_NINETEEN_INDEX, value32)); 00550 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTY_INDEX, value32)); 00551 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTY_INDEX, value32)); 00552 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYONE_INDEX, value32)); 00553 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYONE_INDEX, value32)); 00554 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYTWO_INDEX, value32)); 00555 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYTWO_INDEX, value32)); 00556 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYTHREE_INDEX, value32)); 00557 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYTHREE_INDEX, value32)); 00558 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYFOUR_INDEX, value32)); 00559 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYFOUR_INDEX, value32)); 00560 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYFIVE_INDEX, value32)); 00561 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYFIVE_INDEX, value32)); 00562 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYSIX_INDEX, value32)); 00563 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYSIX_INDEX, value32)); 00564 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYSEVEN_INDEX, value32)); 00565 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYSEVEN_INDEX, value32)); 00566 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYEIGHT_INDEX, value32)); 00567 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYEIGHT_INDEX, value32)); 00568 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_TWENTYNINE_INDEX, value32)); 00569 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_TWENTYNINE_INDEX, value32)); 00570 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_THIRTY_INDEX, value32)); 00571 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_THIRTY_INDEX, value32)); 00572 EXPECT_FALSE(bitWizard8.testBit(true, BitMinion::BIT_THIRTYONE_INDEX, value32)); 00573 EXPECT_TRUE( bitWizard8.testBit(false, BitMinion::BIT_THIRTYONE_INDEX, value32)); 00574 } 00575 00576 TEST(BitWizardTest, SetBit8) 00577 { 00578 BitWizard<uint8_t> bitWizard; 00579 00580 uint8_t registerValue = 0x00; 00581 bitWizard.setBit(true, BitMinion::BIT_ZERO_INDEX, registerValue); 00582 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00583 bitWizard.setBit(false, BitMinion::BIT_ZERO_INDEX, registerValue); 00584 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00585 00586 registerValue = 0xFF; 00587 bitWizard.setBit(true, BitMinion::BIT_SEVEN_INDEX, registerValue); 00588 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, registerValue)); 00589 bitWizard.setBit(false, BitMinion::BIT_SEVEN_INDEX, registerValue); 00590 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, registerValue)); 00591 } 00592 00593 TEST(BitWizardTest, SetBit16) 00594 { 00595 BitWizard<uint16_t> bitWizard; 00596 00597 uint16_t registerValue = 0x0000; 00598 bitWizard.setBit(true, BitMinion::BIT_ZERO_INDEX, registerValue); 00599 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00600 bitWizard.setBit(false, BitMinion::BIT_ZERO_INDEX, registerValue); 00601 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00602 00603 registerValue = 0xFFFF; 00604 bitWizard.setBit(true, BitMinion::BIT_FIFTEEN_INDEX, registerValue); 00605 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, registerValue)); 00606 bitWizard.setBit(false, BitMinion::BIT_FIFTEEN_INDEX, registerValue); 00607 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, registerValue)); 00608 } 00609 00610 TEST(BitWizardTest, SetBit32) 00611 { 00612 BitWizard<uint32_t> bitWizard; 00613 00614 uint32_t registerValue = 0x00000000; 00615 bitWizard.setBit(true, BitMinion::BIT_ZERO_INDEX, registerValue); 00616 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00617 bitWizard.setBit(false, BitMinion::BIT_ZERO_INDEX, registerValue); 00618 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00619 00620 registerValue = 0xFFFFFFFF; 00621 bitWizard.setBit(true, BitMinion::BIT_THIRTYONE_INDEX, registerValue); 00622 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTYONE_INDEX, registerValue)); 00623 bitWizard.setBit(false, BitMinion::BIT_THIRTYONE_INDEX, registerValue); 00624 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THIRTYONE_INDEX, registerValue)); 00625 } 00626 00627 TEST(BitWizardTest, ToggleBit8) 00628 { 00629 BitWizard<uint8_t> bitWizard; 00630 00631 uint8_t registerValue = 0x00; 00632 bitWizard.toggleBit(BitMinion::BIT_ZERO_INDEX, registerValue); 00633 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00634 bitWizard.toggleBit(BitMinion::BIT_ZERO_INDEX, registerValue); 00635 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00636 00637 registerValue = 0xFF; 00638 bitWizard.toggleBit(BitMinion::BIT_SEVEN_INDEX, registerValue); 00639 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, registerValue)); 00640 bitWizard.toggleBit(BitMinion::BIT_SEVEN_INDEX, registerValue); 00641 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_SEVEN_INDEX, registerValue)); 00642 } 00643 00644 TEST(BitWizardTest, ToggleBit16) 00645 { 00646 BitWizard<uint16_t> bitWizard; 00647 00648 uint16_t registerValue = 0x0000; 00649 bitWizard.toggleBit(BitMinion::BIT_ZERO_INDEX, registerValue); 00650 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00651 bitWizard.toggleBit(BitMinion::BIT_ZERO_INDEX, registerValue); 00652 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00653 00654 registerValue = 0xFFFF; 00655 bitWizard.toggleBit(BitMinion::BIT_FIFTEEN_INDEX, registerValue); 00656 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, registerValue)); 00657 bitWizard.toggleBit(BitMinion::BIT_FIFTEEN_INDEX, registerValue); 00658 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_FIFTEEN_INDEX, registerValue)); 00659 } 00660 00661 TEST(BitWizardTest, ToggleBit32) 00662 { 00663 BitWizard<uint32_t> bitWizard; 00664 00665 uint32_t registerValue = 0x00000000; 00666 bitWizard.toggleBit(BitMinion::BIT_ZERO_INDEX, registerValue); 00667 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00668 bitWizard.toggleBit(BitMinion::BIT_ZERO_INDEX, registerValue); 00669 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_ZERO_INDEX, registerValue)); 00670 00671 registerValue = 0xFFFFFFFF; 00672 bitWizard.toggleBit(BitMinion::BIT_THIRTYONE_INDEX, registerValue); 00673 EXPECT_FALSE(bitWizard.getBit(BitMinion::BIT_THIRTYONE_INDEX, registerValue)); 00674 bitWizard.toggleBit(BitMinion::BIT_THIRTYONE_INDEX, registerValue); 00675 EXPECT_TRUE(bitWizard.getBit(BitMinion::BIT_THIRTYONE_INDEX, registerValue)); 00676 } 00677 00678 TEST(BitWizardTest, GetBits8) 00679 { 00680 BitWizard<uint8_t> bitWizard; 00681 00682 uint8_t value = 0; 00683 00684 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00685 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00686 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00687 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00688 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00689 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00690 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00691 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00692 00693 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00694 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00695 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00696 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00697 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00698 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00700 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00701 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00702 00703 value = -1; 00704 00705 EXPECT_EQ(0x01, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00706 EXPECT_EQ(0x03, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00707 EXPECT_EQ(0x07, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00708 EXPECT_EQ(0x0F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00709 EXPECT_EQ(0x1F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00710 EXPECT_EQ(0x3F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00711 EXPECT_EQ(0x7F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00712 EXPECT_EQ(0xFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00713 00714 EXPECT_EQ(0x01, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00715 EXPECT_EQ(0x03, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00716 EXPECT_EQ(0x07, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00717 EXPECT_EQ(0x0F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00718 EXPECT_EQ(0x1F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00719 EXPECT_EQ(0x3F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00721 EXPECT_EQ(0x3F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00722 EXPECT_EQ(0x3F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00723 } 00724 00725 TEST(BitWizardTest, GetBits16) 00726 { 00727 BitWizard<uint16_t> bitWizard; 00728 00729 uint16_t value = 0; 00730 00731 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00732 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00733 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00734 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00735 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00736 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00737 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00738 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00739 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value)); 00740 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value)); 00741 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value)); 00742 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value)); 00743 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value)); 00744 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value)); 00745 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value)); 00746 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value)); 00747 00748 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00749 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00750 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00751 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00752 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00753 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00754 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00755 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00756 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value)); 00757 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value)); 00758 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value)); 00759 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value)); 00760 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value)); 00761 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value)); 00763 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value)); 00764 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value)); 00765 00766 value = -1; 00767 00768 EXPECT_EQ(0x0001, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00769 EXPECT_EQ(0x0003, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00770 EXPECT_EQ(0x0007, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00771 EXPECT_EQ(0x000F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00772 EXPECT_EQ(0x001F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00773 EXPECT_EQ(0x003F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00774 EXPECT_EQ(0x007F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00775 EXPECT_EQ(0x00FF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00776 EXPECT_EQ(0x01FF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value)); 00777 EXPECT_EQ(0x03FF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value)); 00778 EXPECT_EQ(0x07FF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value)); 00779 EXPECT_EQ(0x0FFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value)); 00780 EXPECT_EQ(0x1FFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value)); 00781 EXPECT_EQ(0x3FFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value)); 00782 EXPECT_EQ(0x7FFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value)); 00783 EXPECT_EQ(0xFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value)); 00784 00785 EXPECT_EQ(0x0001, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00786 EXPECT_EQ(0x0003, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00787 EXPECT_EQ(0x0007, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00788 EXPECT_EQ(0x000F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00789 EXPECT_EQ(0x001F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00790 EXPECT_EQ(0x003F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00791 EXPECT_EQ(0x007F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00792 EXPECT_EQ(0x00FF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00793 EXPECT_EQ(0x01FF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value)); 00794 EXPECT_EQ(0x03FF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value)); 00795 EXPECT_EQ(0x07FF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value)); 00796 EXPECT_EQ(0x0FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value)); 00797 EXPECT_EQ(0x1FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value)); 00798 EXPECT_EQ(0x3FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value)); 00800 EXPECT_EQ(0x3FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value)); 00801 EXPECT_EQ(0x3FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value)); 00802 } 00803 00804 TEST(BitWizardTest, GetBits32) 00805 { 00806 BitWizard<uint32_t> bitWizard; 00807 00808 uint32_t value = 0; 00809 00810 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00811 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00812 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00813 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00814 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00815 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00816 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00817 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00818 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value)); 00819 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value)); 00820 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value)); 00821 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value)); 00822 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value)); 00823 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value)); 00824 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value)); 00825 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value)); 00826 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value)); 00827 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value)); 00828 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINETEEN_BIT_MASK, value)); 00829 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTY_BIT_MASK, value)); 00830 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value)); 00831 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value)); 00832 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value)); 00833 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value)); 00834 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value)); 00835 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value)); 00836 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value)); 00837 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value)); 00838 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value)); 00839 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTY_BIT_MASK, value)); 00840 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value)); 00841 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value)); 00842 00843 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00844 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00845 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00846 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00847 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00848 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00849 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00850 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00851 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value)); 00852 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value)); 00853 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value)); 00854 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value)); 00855 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value)); 00856 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value)); 00857 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value)); 00858 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value)); 00859 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value)); 00860 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value)); 00861 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINETEEN_BIT_MASK, value)); 00862 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTY_BIT_MASK, value)); 00863 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value)); 00864 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value)); 00865 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value)); 00866 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value)); 00867 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value)); 00868 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value)); 00869 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value)); 00870 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value)); 00871 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value)); 00872 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTY_BIT_MASK, value)); 00874 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value)); 00875 EXPECT_EQ(0, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value)); 00876 00877 value = -1; 00878 00879 EXPECT_EQ(0x00000001, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00880 EXPECT_EQ(0x00000003, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00881 EXPECT_EQ(0x00000007, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00882 EXPECT_EQ(0x0000000F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00883 EXPECT_EQ(0x0000001F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00884 EXPECT_EQ(0x0000003F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00885 EXPECT_EQ(0x0000007F, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00886 EXPECT_EQ(0x000000FF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00887 EXPECT_EQ(0x000001FF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value)); 00888 EXPECT_EQ(0x000003FF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value)); 00889 EXPECT_EQ(0x000007FF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value)); 00890 EXPECT_EQ(0x00000FFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value)); 00891 EXPECT_EQ(0x00001FFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value)); 00892 EXPECT_EQ(0x00003FFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value)); 00893 EXPECT_EQ(0x00007FFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value)); 00894 EXPECT_EQ(0x0000FFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value)); 00895 EXPECT_EQ(0x0001FFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value)); 00896 EXPECT_EQ(0x0003FFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value)); 00897 EXPECT_EQ(0x0007FFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINETEEN_BIT_MASK, value)); 00898 EXPECT_EQ(0x000FFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTY_BIT_MASK, value)); 00899 EXPECT_EQ(0x001FFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value)); 00900 EXPECT_EQ(0x003FFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value)); 00901 EXPECT_EQ(0x007FFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value)); 00902 EXPECT_EQ(0x00FFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value)); 00903 EXPECT_EQ(0x01FFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value)); 00904 EXPECT_EQ(0x03FFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value)); 00905 EXPECT_EQ(0x07FFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value)); 00906 EXPECT_EQ(0x0FFFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value)); 00907 EXPECT_EQ(0x1FFFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value)); 00908 EXPECT_EQ(0x3FFFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTY_BIT_MASK, value)); 00909 EXPECT_EQ(0x7FFFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value)); 00910 EXPECT_EQ(0xFFFFFFFF, bitWizard.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value)); 00911 00912 EXPECT_EQ(0x00000001, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value)); 00913 EXPECT_EQ(0x00000003, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value)); 00914 EXPECT_EQ(0x00000007, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value)); 00915 EXPECT_EQ(0x0000000F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value)); 00916 EXPECT_EQ(0x0000001F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value)); 00917 EXPECT_EQ(0x0000003F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value)); 00918 EXPECT_EQ(0x0000007F, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value)); 00919 EXPECT_EQ(0x000000FF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value)); 00920 EXPECT_EQ(0x000001FF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value)); 00921 EXPECT_EQ(0x000003FF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value)); 00922 EXPECT_EQ(0x000007FF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value)); 00923 EXPECT_EQ(0x00000FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value)); 00924 EXPECT_EQ(0x00001FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value)); 00925 EXPECT_EQ(0x00003FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value)); 00926 EXPECT_EQ(0x00007FFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value)); 00927 EXPECT_EQ(0x0000FFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value)); 00928 EXPECT_EQ(0x0001FFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value)); 00929 EXPECT_EQ(0x0003FFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value)); 00930 EXPECT_EQ(0x0007FFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINETEEN_BIT_MASK, value)); 00931 EXPECT_EQ(0x000FFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTY_BIT_MASK, value)); 00932 EXPECT_EQ(0x001FFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value)); 00933 EXPECT_EQ(0x003FFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value)); 00934 EXPECT_EQ(0x007FFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value)); 00935 EXPECT_EQ(0x00FFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value)); 00936 EXPECT_EQ(0x01FFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value)); 00937 EXPECT_EQ(0x03FFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value)); 00938 EXPECT_EQ(0x07FFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value)); 00939 EXPECT_EQ(0x0FFFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value)); 00940 EXPECT_EQ(0x1FFFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value)); 00941 EXPECT_EQ(0x3FFFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTY_BIT_MASK, value)); 00943 EXPECT_EQ(0x3FFFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value)); 00944 EXPECT_EQ(0x3FFFFFFF, bitWizard.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value)); 00945 } 00946 00947 TEST(BitWizardTest, GetBitsMismatch) 00948 { 00949 BitWizard<uint32_t> bitWizard32; 00950 uint8_t value8 = 0xFF; 00951 00952 EXPECT_EQ(0x00000001, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value8)); 00953 EXPECT_EQ(0x00000003, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value8)); 00954 EXPECT_EQ(0x00000007, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value8)); 00955 EXPECT_EQ(0x0000000F, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value8)); 00956 EXPECT_EQ(0x0000001F, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value8)); 00957 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value8)); 00958 EXPECT_EQ(0x0000007F, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value8)); 00959 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value8)); 00960 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value8)); 00961 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value8)); 00962 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value8)); 00963 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value8)); 00964 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value8)); 00965 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value8)); 00966 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value8)); 00967 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value8)); 00968 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value8)); 00969 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value8)); 00970 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINETEEN_BIT_MASK, value8)); 00971 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTY_BIT_MASK, value8)); 00972 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value8)); 00973 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value8)); 00974 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value8)); 00975 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value8)); 00976 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value8)); 00977 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value8)); 00978 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value8)); 00979 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value8)); 00980 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value8)); 00981 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTY_BIT_MASK, value8)); 00982 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value8)); 00983 EXPECT_EQ(0x000000FF, bitWizard32.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value8)); 00984 00985 EXPECT_EQ(0x00000001, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value8)); 00986 EXPECT_EQ(0x00000003, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value8)); 00987 EXPECT_EQ(0x00000007, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value8)); 00988 EXPECT_EQ(0x0000000F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value8)); 00989 EXPECT_EQ(0x0000001F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value8)); 00990 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value8)); 00991 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value8)); 00992 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value8)); 00993 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value8)); 00994 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value8)); 00995 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value8)); 00996 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value8)); 00997 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value8)); 00998 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value8)); 00999 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value8)); 01000 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value8)); 01001 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value8)); 01002 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value8)); 01003 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINETEEN_BIT_MASK, value8)); 01004 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTY_BIT_MASK, value8)); 01005 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value8)); 01006 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value8)); 01007 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value8)); 01008 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value8)); 01009 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value8)); 01010 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value8)); 01011 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value8)); 01012 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value8)); 01013 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value8)); 01014 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTY_BIT_MASK, value8)); 01015 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value8)); 01016 EXPECT_EQ(0x0000003F, bitWizard32.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value8)); 01017 01018 BitWizard<uint8_t> bitWizard8; 01019 uint32_t value32 = 0xFFFFFFFF; 01020 01021 EXPECT_EQ(0x01, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value32)); 01022 EXPECT_EQ(0x03, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value32)); 01023 EXPECT_EQ(0x07, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value32)); 01024 EXPECT_EQ(0x0F, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value32)); 01025 EXPECT_EQ(0x1F, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value32)); 01026 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value32)); 01027 EXPECT_EQ(0x7F, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value32)); 01028 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value32)); 01029 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value32)); 01030 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value32)); 01031 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value32)); 01032 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value32)); 01033 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value32)); 01034 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value32)); 01035 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value32)); 01036 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value32)); 01037 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value32)); 01038 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value32)); 01039 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::NINETEEN_BIT_MASK, value32)); 01040 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTY_BIT_MASK, value32)); 01041 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value32)); 01042 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value32)); 01043 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value32)); 01044 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value32)); 01045 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value32)); 01046 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value32)); 01047 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value32)); 01048 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value32)); 01049 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value32)); 01050 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTY_BIT_MASK, value32)); 01051 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value32)); 01052 EXPECT_EQ(0xFF, bitWizard8.getBits(BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value32)); 01053 01054 EXPECT_EQ(0x01, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value32)); 01055 EXPECT_EQ(0x03, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value32)); 01056 EXPECT_EQ(0x07, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value32)); 01057 EXPECT_EQ(0x0F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value32)); 01058 EXPECT_EQ(0x1F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value32)); 01059 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value32)); 01060 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value32)); 01061 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value32)); 01062 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value32)); 01063 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value32)); 01064 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value32)); 01065 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value32)); 01066 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value32)); 01067 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value32)); 01068 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value32)); 01069 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value32)); 01070 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value32)); 01071 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value32)); 01072 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::NINETEEN_BIT_MASK, value32)); 01073 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTY_BIT_MASK, value32)); 01074 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value32)); 01075 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value32)); 01076 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value32)); 01077 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value32)); 01078 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value32)); 01079 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value32)); 01080 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value32)); 01081 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value32)); 01082 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value32)); 01083 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTY_BIT_MASK, value32)); 01084 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value32)); 01085 EXPECT_EQ(0x3F, bitWizard8.getBits(BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value32)); 01086 } 01087 01088 TEST(BitWizardTest, SetBits8) 01089 { 01090 BitWizard<uint8_t> bitWizard; 01091 01092 uint8_t value = 0; 01093 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value); 01094 EXPECT_EQ(0, value); 01095 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value); 01096 EXPECT_EQ(0, value); 01097 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value); 01098 EXPECT_EQ(0, value); 01099 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01100 EXPECT_EQ(0, value); 01101 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01102 EXPECT_EQ(0, value); 01103 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value); 01104 EXPECT_EQ(0, value); 01105 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01106 EXPECT_EQ(0, value); 01107 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01108 EXPECT_EQ(0, value); 01109 01110 value = 0; 01111 bitWizard.setBits(0xFF, BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value); 01112 EXPECT_EQ(0x01, value); 01113 value = 0; 01114 bitWizard.setBits(0xFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value); 01115 EXPECT_EQ(0x03, value); 01116 value = 0; 01117 bitWizard.setBits(0xFF, BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value); 01118 EXPECT_EQ(0x07, value); 01119 value = 0; 01120 bitWizard.setBits(0xFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01121 EXPECT_EQ(0x0F, value); 01122 value = 0; 01123 bitWizard.setBits(0xFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01124 EXPECT_EQ(0x1F, value); 01125 value = 0; 01126 bitWizard.setBits(0xFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value); 01127 EXPECT_EQ(0x3F, value); 01128 value = 0; 01129 bitWizard.setBits(0xFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01130 EXPECT_EQ(0x7F, value); 01131 value = 0; 01132 bitWizard.setBits(0xFF, BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01133 EXPECT_EQ(0xFF, value); 01134 01135 value = 0; 01136 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value); 01137 EXPECT_EQ(0x04, value); 01138 value = 0; 01139 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value); 01140 EXPECT_EQ(0x0C, value); 01141 value = 0; 01142 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value); 01143 EXPECT_EQ(0x1C, value); 01144 value = 0; 01145 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01146 EXPECT_EQ(0x3C, value); 01147 value = 0; 01148 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01149 EXPECT_EQ(0x7C, value); 01150 value = 0; 01151 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value); 01152 EXPECT_EQ(0xFC, value); 01153 value = 0; 01154 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01155 EXPECT_EQ(0xFC, value); 01156 value = 0; 01157 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01158 EXPECT_EQ(0xFC, value); 01159 01160 value = 0x03; 01161 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value); 01162 EXPECT_EQ(0x07, value); 01163 value = 0x03; 01164 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value); 01165 EXPECT_EQ(0x0F, value); 01166 value = 0x03; 01167 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value); 01168 EXPECT_EQ(0x1F, value); 01169 value = 0x03; 01170 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01171 EXPECT_EQ(0x3F, value); 01172 value = 0x03; 01173 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01174 EXPECT_EQ(0x7F, value); 01175 value = 0x03; 01176 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value); 01177 EXPECT_EQ(0xFF, value); 01178 value = 0x03; 01179 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01180 EXPECT_EQ(0xFF, value); 01181 value = 0x03; 01182 bitWizard.setBits(0xFF, BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01183 EXPECT_EQ(0xFF, value); 01184 } 01185 01186 TEST(BitWizardTest, SetBits16) 01187 { 01188 BitWizard<uint16_t> bitWizard; 01189 01190 uint16_t value = 0; 01191 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value); 01192 EXPECT_EQ(0, value); 01193 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value); 01194 EXPECT_EQ(0, value); 01195 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value); 01196 EXPECT_EQ(0, value); 01197 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01198 EXPECT_EQ(0, value); 01199 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01200 EXPECT_EQ(0, value); 01201 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value); 01202 EXPECT_EQ(0, value); 01203 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01204 EXPECT_EQ(0, value); 01205 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01206 EXPECT_EQ(0, value); 01207 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value); 01208 EXPECT_EQ(0, value); 01209 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value); 01210 EXPECT_EQ(0, value); 01211 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value); 01212 EXPECT_EQ(0, value); 01213 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value); 01214 EXPECT_EQ(0, value); 01215 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value); 01216 EXPECT_EQ(0, value); 01217 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value); 01218 EXPECT_EQ(0, value); 01219 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value); 01220 EXPECT_EQ(0, value); 01221 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value); 01222 EXPECT_EQ(0, value); 01223 01224 value = 0; 01225 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value); 01226 EXPECT_EQ(0x0001, value); 01227 value = 0; 01228 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value); 01229 EXPECT_EQ(0x0003, value); 01230 value = 0; 01231 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value); 01232 EXPECT_EQ(0x0007, value); 01233 value = 0; 01234 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01235 EXPECT_EQ(0x000F, value); 01236 value = 0; 01237 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01238 EXPECT_EQ(0x001F, value); 01239 value = 0; 01240 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value); 01241 EXPECT_EQ(0x003F, value); 01242 value = 0; 01243 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01244 EXPECT_EQ(0x007F, value); 01245 value = 0; 01246 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01247 EXPECT_EQ(0x00FF, value); 01248 value = 0; 01249 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value); 01250 EXPECT_EQ(0x01FF, value); 01251 value = 0; 01252 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value); 01253 EXPECT_EQ(0x03FF, value); 01254 value = 0; 01255 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value); 01256 EXPECT_EQ(0x07FF, value); 01257 value = 0; 01258 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value); 01259 EXPECT_EQ(0x0FFF, value); 01260 value = 0; 01261 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value); 01262 EXPECT_EQ(0x1FFF, value); 01263 value = 0; 01264 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value); 01265 EXPECT_EQ(0x3FFF, value); 01266 value = 0; 01267 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value); 01268 EXPECT_EQ(0x7FFF, value); 01269 value = 0; 01270 bitWizard.setBits(0xFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value); 01271 EXPECT_EQ(0xFFFF, value); 01272 01273 value = 0; 01274 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value); 01275 EXPECT_EQ(0x0004, value); 01276 value = 0; 01277 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value); 01278 EXPECT_EQ(0x000C, value); 01279 value = 0; 01280 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value); 01281 EXPECT_EQ(0x001C, value); 01282 value = 0; 01283 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01284 EXPECT_EQ(0x003C, value); 01285 value = 0; 01286 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01287 EXPECT_EQ(0x007C, value); 01288 value = 0; 01289 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value); 01290 EXPECT_EQ(0x00FC, value); 01291 value = 0; 01292 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01293 EXPECT_EQ(0x01FC, value); 01294 value = 0; 01295 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01296 EXPECT_EQ(0x03FC, value); 01297 value = 0; 01298 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value); 01299 EXPECT_EQ(0x07FC, value); 01300 value = 0; 01301 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value); 01302 EXPECT_EQ(0x0FFC, value); 01303 value = 0; 01304 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value); 01305 EXPECT_EQ(0x1FFC, value); 01306 value = 0; 01307 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value); 01308 EXPECT_EQ(0x3FFC, value); 01309 value = 0; 01310 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value); 01311 EXPECT_EQ(0x7FFC, value); 01312 value = 0; 01313 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value); 01314 EXPECT_EQ(0xFFFC, value); 01315 value = 0; 01316 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value); 01317 EXPECT_EQ(0xFFFC, value); 01318 value = 0; 01319 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value); 01320 EXPECT_EQ(0xFFFC, value); 01321 01322 value = 0x0003; 01323 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value); 01324 EXPECT_EQ(0x0007, value); 01325 value = 0x0003; 01326 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value); 01327 EXPECT_EQ(0x000F, value); 01328 value = 0x0003; 01329 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value); 01330 EXPECT_EQ(0x001F, value); 01331 value = 0x0003; 01332 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01333 EXPECT_EQ(0x003F, value); 01334 value = 0x0003; 01335 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01336 EXPECT_EQ(0x007F, value); 01337 value = 0x0003; 01338 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value); 01339 EXPECT_EQ(0x00FF, value); 01340 value = 0x0003; 01341 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01342 EXPECT_EQ(0x01FF, value); 01343 value = 0x0003; 01344 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01345 EXPECT_EQ(0x03FF, value); 01346 value = 0x0003; 01347 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value); 01348 EXPECT_EQ(0x07FF, value); 01349 value = 0x0003; 01350 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value); 01351 EXPECT_EQ(0x0FFF, value); 01352 value = 0x0003; 01353 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value); 01354 EXPECT_EQ(0x1FFF, value); 01355 value = 0x0003; 01356 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value); 01357 EXPECT_EQ(0x3FFF, value); 01358 value = 0x0003; 01359 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value); 01360 EXPECT_EQ(0x7FFF, value); 01361 value = 0x0003; 01362 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value); 01363 EXPECT_EQ(0xFFFF, value); 01364 value = 0x0003; 01365 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value); 01366 EXPECT_EQ(0xFFFF, value); 01367 value = 0x0003; 01368 bitWizard.setBits(0xFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value); 01369 EXPECT_EQ(0xFFFF, value); 01370 } 01371 01372 TEST(BitWizardTest, SetBits32) 01373 { 01374 BitWizard<uint32_t> bitWizard; 01375 01376 uint32_t value = 0; 01377 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value); 01378 EXPECT_EQ(0, value); 01379 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value); 01380 EXPECT_EQ(0, value); 01381 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value); 01382 EXPECT_EQ(0, value); 01383 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01384 EXPECT_EQ(0, value); 01385 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01386 EXPECT_EQ(0, value); 01387 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value); 01388 EXPECT_EQ(0, value); 01389 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01390 EXPECT_EQ(0, value); 01391 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01392 EXPECT_EQ(0, value); 01393 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value); 01394 EXPECT_EQ(0, value); 01395 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value); 01396 EXPECT_EQ(0, value); 01397 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value); 01398 EXPECT_EQ(0, value); 01399 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value); 01400 EXPECT_EQ(0, value); 01401 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value); 01402 EXPECT_EQ(0, value); 01403 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value); 01404 EXPECT_EQ(0, value); 01405 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value); 01406 EXPECT_EQ(0, value); 01407 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value); 01408 EXPECT_EQ(0, value); 01409 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value); 01410 EXPECT_EQ(0, value); 01411 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value); 01412 EXPECT_EQ(0, value); 01413 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::NINETEEN_BIT_MASK, value); 01414 EXPECT_EQ(0, value); 01415 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTY_BIT_MASK, value); 01416 EXPECT_EQ(0, value); 01417 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value); 01418 EXPECT_EQ(0, value); 01419 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value); 01420 EXPECT_EQ(0, value); 01421 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value); 01422 EXPECT_EQ(0, value); 01423 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value); 01424 EXPECT_EQ(0, value); 01425 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value); 01426 EXPECT_EQ(0, value); 01427 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value); 01428 EXPECT_EQ(0, value); 01429 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value); 01430 EXPECT_EQ(0, value); 01431 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value); 01432 EXPECT_EQ(0, value); 01433 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value); 01434 EXPECT_EQ(0, value); 01435 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTY_BIT_MASK, value); 01436 EXPECT_EQ(0, value); 01437 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value); 01438 EXPECT_EQ(0, value); 01439 bitWizard.setBits(0, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value); 01440 EXPECT_EQ(0, value); 01441 01442 value = 0; 01443 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::ONE_BIT_MASK, value); 01444 EXPECT_EQ(0x00000001, value); 01445 value = 0; 01446 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWO_BIT_MASK, value); 01447 EXPECT_EQ(0x00000003, value); 01448 value = 0; 01449 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::THREE_BIT_MASK, value); 01450 EXPECT_EQ(0x00000007, value); 01451 value = 0; 01452 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01453 EXPECT_EQ(0x0000000F, value); 01454 value = 0; 01455 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01456 EXPECT_EQ(0x0000001F, value); 01457 value = 0; 01458 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SIX_BIT_MASK, value); 01459 EXPECT_EQ(0x0000003F, value); 01460 value = 0; 01461 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01462 EXPECT_EQ(0x0000007F, value); 01463 value = 0; 01464 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01465 EXPECT_EQ(0x000000FF, value); 01466 value = 0; 01467 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::NINE_BIT_MASK, value); 01468 EXPECT_EQ(0x000001FF, value); 01469 value = 0; 01470 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TEN_BIT_MASK, value); 01471 EXPECT_EQ(0x000003FF, value); 01472 value = 0; 01473 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::ELEVEN_BIT_MASK, value); 01474 EXPECT_EQ(0x000007FF, value); 01475 value = 0; 01476 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWELVE_BIT_MASK, value); 01477 EXPECT_EQ(0x00000FFF, value); 01478 value = 0; 01479 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value); 01480 EXPECT_EQ(0x00001FFF, value); 01481 value = 0; 01482 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value); 01483 EXPECT_EQ(0x00003FFF, value); 01484 value = 0; 01485 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value); 01486 EXPECT_EQ(0x00007FFF, value); 01487 value = 0; 01488 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value); 01489 EXPECT_EQ(0x0000FFFF, value); 01490 value = 0; 01491 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value); 01492 EXPECT_EQ(0x0001FFFF, value); 01493 value = 0; 01494 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value); 01495 EXPECT_EQ(0x0003FFFF, value); 01496 value = 0; 01497 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::NINETEEN_BIT_MASK, value); 01498 EXPECT_EQ(0x0007FFFF, value); 01499 value = 0; 01500 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTY_BIT_MASK, value); 01501 EXPECT_EQ(0x000FFFFF, value); 01502 value = 0; 01503 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value); 01504 EXPECT_EQ(0x001FFFFF, value); 01505 value = 0; 01506 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value); 01507 EXPECT_EQ(0x003FFFFF, value); 01508 value = 0; 01509 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value); 01510 EXPECT_EQ(0x007FFFFF, value); 01511 value = 0; 01512 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value); 01513 EXPECT_EQ(0x00FFFFFF, value); 01514 value = 0; 01515 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value); 01516 EXPECT_EQ(0x01FFFFFF, value); 01517 value = 0; 01518 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value); 01519 EXPECT_EQ(0x03FFFFFF, value); 01520 value = 0; 01521 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value); 01522 EXPECT_EQ(0x07FFFFFF, value); 01523 value = 0; 01524 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value); 01525 EXPECT_EQ(0x0FFFFFFF, value); 01526 value = 0; 01527 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value); 01528 EXPECT_EQ(0x1FFFFFFF, value); 01529 value = 0; 01530 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTY_BIT_MASK, value); 01531 EXPECT_EQ(0x3FFFFFFF, value); 01532 value = 0; 01533 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value); 01534 EXPECT_EQ(0x7FFFFFFF, value); 01535 value = 0; 01536 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_ZERO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value); 01537 EXPECT_EQ(0xFFFFFFFF, value); 01538 01539 value = 0; 01540 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value); 01541 EXPECT_EQ(0x00000004, value); 01542 value = 0; 01543 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value); 01544 EXPECT_EQ(0x0000000C, value); 01545 value = 0; 01546 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value); 01547 EXPECT_EQ(0x0000001C, value); 01548 value = 0; 01549 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01550 EXPECT_EQ(0x0000003C, value); 01551 value = 0; 01552 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01553 EXPECT_EQ(0x0000007C, value); 01554 value = 0; 01555 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value); 01556 EXPECT_EQ(0x000000FC, value); 01557 value = 0; 01558 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01559 EXPECT_EQ(0x000001FC, value); 01560 value = 0; 01561 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01562 EXPECT_EQ(0x000003FC, value); 01563 value = 0; 01564 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value); 01565 EXPECT_EQ(0x000007FC, value); 01566 value = 0; 01567 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value); 01568 EXPECT_EQ(0x00000FFC, value); 01569 value = 0; 01570 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value); 01571 EXPECT_EQ(0x00001FFC, value); 01572 value = 0; 01573 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value); 01574 EXPECT_EQ(0x00003FFC, value); 01575 value = 0; 01576 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value); 01577 EXPECT_EQ(0x00007FFC, value); 01578 value = 0; 01579 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value); 01580 EXPECT_EQ(0x0000FFFC, value); 01581 value = 0; 01582 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value); 01583 EXPECT_EQ(0x0001FFFC, value); 01584 value = 0; 01585 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value); 01586 EXPECT_EQ(0x0003FFFC, value); 01587 value = 0; 01588 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value); 01589 EXPECT_EQ(0x0007FFFC, value); 01590 value = 0; 01591 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value); 01592 EXPECT_EQ(0x000FFFFC, value); 01593 value = 0; 01594 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::NINETEEN_BIT_MASK, value); 01595 EXPECT_EQ(0x001FFFFC, value); 01596 value = 0; 01597 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTY_BIT_MASK, value); 01598 EXPECT_EQ(0x003FFFFC, value); 01599 value = 0; 01600 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value); 01601 EXPECT_EQ(0x007FFFFC, value); 01602 value = 0; 01603 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value); 01604 EXPECT_EQ(0x00FFFFFC, value); 01605 value = 0; 01606 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value); 01607 EXPECT_EQ(0x01FFFFFC, value); 01608 value = 0; 01609 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value); 01610 EXPECT_EQ(0x03FFFFFC, value); 01611 value = 0; 01612 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value); 01613 EXPECT_EQ(0x07FFFFFC, value); 01614 value = 0; 01615 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value); 01616 EXPECT_EQ(0x0FFFFFFC, value); 01617 value = 0; 01618 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value); 01619 EXPECT_EQ(0x1FFFFFFC, value); 01620 value = 0; 01621 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value); 01622 EXPECT_EQ(0x3FFFFFFC, value); 01623 value = 0; 01624 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value); 01625 EXPECT_EQ(0x7FFFFFFC, value); 01626 value = 0; 01627 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTY_BIT_MASK, value); 01628 EXPECT_EQ(0xFFFFFFFC, value); 01629 value = 0; 01630 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value); 01631 EXPECT_EQ(0xFFFFFFFC, value); 01632 value = 0; 01633 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value); 01634 EXPECT_EQ(0xFFFFFFFC, value); 01635 01636 value = 0x00000003; 01637 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::ONE_BIT_MASK, value); 01638 EXPECT_EQ(0x00000007, value); 01639 value = 0x00000003; 01640 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWO_BIT_MASK, value); 01641 EXPECT_EQ(0x0000000F, value); 01642 value = 0x00000003; 01643 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THREE_BIT_MASK, value); 01644 EXPECT_EQ(0x0000001F, value); 01645 value = 0x00000003; 01646 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOUR_BIT_MASK, value); 01647 EXPECT_EQ(0x0000003F, value); 01648 value = 0x00000003; 01649 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIVE_BIT_MASK, value); 01650 EXPECT_EQ(0x0000007F, value); 01651 value = 0x00000003; 01652 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIX_BIT_MASK, value); 01653 EXPECT_EQ(0x000000FF, value); 01654 value = 0x00000003; 01655 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SEVEN_BIT_MASK, value); 01656 EXPECT_EQ(0x000001FF, value); 01657 value = 0x00000003; 01658 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::EIGHT_BIT_MASK, value); 01659 EXPECT_EQ(0x000003FF, value); 01660 value = 0x00000003; 01661 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::NINE_BIT_MASK, value); 01662 EXPECT_EQ(0x000007FF, value); 01663 value = 0x00000003; 01664 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TEN_BIT_MASK, value); 01665 EXPECT_EQ(0x00000FFF, value); 01666 value = 0x00000003; 01667 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::ELEVEN_BIT_MASK, value); 01668 EXPECT_EQ(0x00001FFF, value); 01669 value = 0x00000003; 01670 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWELVE_BIT_MASK, value); 01671 EXPECT_EQ(0x00003FFF, value); 01672 value = 0x00000003; 01673 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTEEN_BIT_MASK, value); 01674 EXPECT_EQ(0x00007FFF, value); 01675 value = 0x00000003; 01676 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FOURTEEN_BIT_MASK, value); 01677 EXPECT_EQ(0x0000FFFF, value); 01678 value = 0x00000003; 01679 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::FIFTEEN_BIT_MASK, value); 01680 EXPECT_EQ(0x0001FFFF, value); 01681 value = 0x00000003; 01682 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SIXTEEN_BIT_MASK, value); 01683 EXPECT_EQ(0x0003FFFF, value); 01684 value = 0x00000003; 01685 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::SEVENTEEN_BIT_MASK, value); 01686 EXPECT_EQ(0x0007FFFF, value); 01687 value = 0x00000003; 01688 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::EIGHTEEN_BIT_MASK, value); 01689 EXPECT_EQ(0x000FFFFF, value); 01690 value = 0x00000003; 01691 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::NINETEEN_BIT_MASK, value); 01692 EXPECT_EQ(0x001FFFFF, value); 01693 value = 0x00000003; 01694 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTY_BIT_MASK, value); 01695 EXPECT_EQ(0x003FFFFF, value); 01696 value = 0x00000003; 01697 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYONE_BIT_MASK, value); 01698 EXPECT_EQ(0x007FFFFF, value); 01699 value = 0x00000003; 01700 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTWO_BIT_MASK, value); 01701 EXPECT_EQ(0x00FFFFFF, value); 01702 value = 0x00000003; 01703 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYTHREE_BIT_MASK, value); 01704 EXPECT_EQ(0x01FFFFFF, value); 01705 value = 0x00000003; 01706 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFOUR_BIT_MASK, value); 01707 EXPECT_EQ(0x03FFFFFF, value); 01708 value = 0x00000003; 01709 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYFIVE_BIT_MASK, value); 01710 EXPECT_EQ(0x07FFFFFF, value); 01711 value = 0x00000003; 01712 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSIX_BIT_MASK, value); 01713 EXPECT_EQ(0x0FFFFFFF, value); 01714 value = 0x00000003; 01715 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYSEVEN_BIT_MASK, value); 01716 EXPECT_EQ(0x1FFFFFFF, value); 01717 value = 0x00000003; 01718 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYEIGHT_BIT_MASK, value); 01719 EXPECT_EQ(0x3FFFFFFF, value); 01720 value = 0x00000003; 01721 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::TWENTYNINE_BIT_MASK, value); 01722 EXPECT_EQ(0x7FFFFFFF, value); 01723 value = 0x00000003; 01724 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTY_BIT_MASK, value); 01725 EXPECT_EQ(0xFFFFFFFF, value); 01726 value = 0x00000003; 01727 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYONE_BIT_MASK, value); 01728 EXPECT_EQ(0xFFFFFFFF, value); 01729 value = 0x00000003; 01730 bitWizard.setBits(0xFFFFFFFF, BitMinion::BIT_TWO_INDEX, BitMinion::THIRTYTWO_BIT_MASK, value); 01731 EXPECT_EQ(0xFFFFFFFF, value); 01732 } 01733 01734 int main(int argc, char** argv) 01735 { 01736 testing::InitGoogleTest(&argc, argv); 01737 return RUN_ALL_TESTS(); 01738 }