1*57718be8SEnji CooperTesting with TEST_LENGTH = 32 2*57718be8SEnji Cooper 3*57718be8SEnji Coopertest _bit_byte, _bit_mask, and bitstr_size 4*57718be8SEnji Cooper i _bit_byte(i) _bit_mask(i) bitstr_size(i) 5*57718be8SEnji Cooper 0 0 1 0 6*57718be8SEnji Cooper 1 0 2 1 7*57718be8SEnji Cooper 2 0 4 1 8*57718be8SEnji Cooper 3 0 8 1 9*57718be8SEnji Cooper 4 0 16 1 10*57718be8SEnji Cooper 5 0 32 1 11*57718be8SEnji Cooper 6 0 64 1 12*57718be8SEnji Cooper 7 0 128 1 13*57718be8SEnji Cooper 8 1 1 1 14*57718be8SEnji Cooper 9 1 2 2 15*57718be8SEnji Cooper 10 1 4 2 16*57718be8SEnji Cooper 11 1 8 2 17*57718be8SEnji Cooper 12 1 16 2 18*57718be8SEnji Cooper 13 1 32 2 19*57718be8SEnji Cooper 14 1 64 2 20*57718be8SEnji Cooper 15 1 128 2 21*57718be8SEnji Cooper 16 2 1 2 22*57718be8SEnji Cooper 17 2 2 3 23*57718be8SEnji Cooper 18 2 4 3 24*57718be8SEnji Cooper 19 2 8 3 25*57718be8SEnji Cooper 20 2 16 3 26*57718be8SEnji Cooper 21 2 32 3 27*57718be8SEnji Cooper 22 2 64 3 28*57718be8SEnji Cooper 23 2 128 3 29*57718be8SEnji Cooper 24 3 1 3 30*57718be8SEnji Cooper 25 3 2 4 31*57718be8SEnji Cooper 26 3 4 4 32*57718be8SEnji Cooper 27 3 8 4 33*57718be8SEnji Cooper 28 3 16 4 34*57718be8SEnji Cooper 29 3 32 4 35*57718be8SEnji Cooper 30 3 64 4 36*57718be8SEnji Cooper 31 3 128 4 37*57718be8SEnji Cooper 38*57718be8SEnji Coopertest bit_alloc, clearbits, bit_ffc, bit_ffs 39*57718be8SEnji Cooperbe: 0 -1 00000000000000000000000000000000 40*57718be8SEnji Cooperis: 0 -1 00000000000000000000000000000000 41*57718be8SEnji Cooper 42*57718be8SEnji Coopertest bit_set 43*57718be8SEnji Cooperbe: 1 0 10010010010010010010010010010010 44*57718be8SEnji Cooperis: 1 0 10010010010010010010010010010010 45*57718be8SEnji Cooper 46*57718be8SEnji Coopertest bit_clear 47*57718be8SEnji Cooperbe: 0 3 00010000010000010000010000010000 48*57718be8SEnji Cooperis: 0 3 00010000010000010000010000010000 49*57718be8SEnji Cooper 50*57718be8SEnji Coopertest bit_test using previous bitstring 51*57718be8SEnji Cooper i bit_test(i) 52*57718be8SEnji Cooper 0 0 53*57718be8SEnji Cooper 1 0 54*57718be8SEnji Cooper 2 0 55*57718be8SEnji Cooper 3 8 56*57718be8SEnji Cooper 4 0 57*57718be8SEnji Cooper 5 0 58*57718be8SEnji Cooper 6 0 59*57718be8SEnji Cooper 7 0 60*57718be8SEnji Cooper 8 0 61*57718be8SEnji Cooper 9 2 62*57718be8SEnji Cooper 10 0 63*57718be8SEnji Cooper 11 0 64*57718be8SEnji Cooper 12 0 65*57718be8SEnji Cooper 13 0 66*57718be8SEnji Cooper 14 0 67*57718be8SEnji Cooper 15 128 68*57718be8SEnji Cooper 16 0 69*57718be8SEnji Cooper 17 0 70*57718be8SEnji Cooper 18 0 71*57718be8SEnji Cooper 19 0 72*57718be8SEnji Cooper 20 0 73*57718be8SEnji Cooper 21 32 74*57718be8SEnji Cooper 22 0 75*57718be8SEnji Cooper 23 0 76*57718be8SEnji Cooper 24 0 77*57718be8SEnji Cooper 25 0 78*57718be8SEnji Cooper 26 0 79*57718be8SEnji Cooper 27 8 80*57718be8SEnji Cooper 28 0 81*57718be8SEnji Cooper 29 0 82*57718be8SEnji Cooper 30 0 83*57718be8SEnji Cooper 31 0 84*57718be8SEnji Cooper 85*57718be8SEnji Coopertest clearbits 86*57718be8SEnji Cooperbe: 0 -1 00000000000000000000000000000000 87*57718be8SEnji Cooperis: 0 -1 00000000000000000000000000000000 88*57718be8SEnji Cooper 89*57718be8SEnji Coopertest bit_nset and bit_nclear 90*57718be8SEnji Cooperbe: 0 1 01111111111111111111111111111110 91*57718be8SEnji Cooperis: 0 1 01111111111111111111111111111110 92*57718be8SEnji Cooperbe: 0 1 01000000000000000000000000000010 93*57718be8SEnji Cooperis: 0 1 01000000000000000000000000000010 94*57718be8SEnji Cooperbe: 0 -1 00000000000000000000000000000000 95*57718be8SEnji Cooperis: 0 -1 00000000000000000000000000000000 96*57718be8SEnji Cooperbe: 31 0 11111111111111111111111111111110 97*57718be8SEnji Cooperis: 31 0 11111111111111111111111111111110 98*57718be8SEnji Cooperbe: 0 -1 00000000000000000000000000000000 99*57718be8SEnji Cooperis: 0 -1 00000000000000000000000000000000 100*57718be8SEnji Cooper 101*57718be8SEnji Cooperfirst 1 bit should move right 1 position each line 102*57718be8SEnji Cooper 0 -1 0 11111111111111111111111111111111 103*57718be8SEnji Cooper 1 0 1 01111111111111111111111111111111 104*57718be8SEnji Cooper 2 0 2 00111111111111111111111111111111 105*57718be8SEnji Cooper 3 0 3 00011111111111111111111111111111 106*57718be8SEnji Cooper 4 0 4 00001111111111111111111111111111 107*57718be8SEnji Cooper 5 0 5 00000111111111111111111111111111 108*57718be8SEnji Cooper 6 0 6 00000011111111111111111111111111 109*57718be8SEnji Cooper 7 0 7 00000001111111111111111111111111 110*57718be8SEnji Cooper 8 0 8 00000000111111111111111111111111 111*57718be8SEnji Cooper 9 0 9 00000000011111111111111111111111 112*57718be8SEnji Cooper 10 0 10 00000000001111111111111111111111 113*57718be8SEnji Cooper 11 0 11 00000000000111111111111111111111 114*57718be8SEnji Cooper 12 0 12 00000000000011111111111111111111 115*57718be8SEnji Cooper 13 0 13 00000000000001111111111111111111 116*57718be8SEnji Cooper 14 0 14 00000000000000111111111111111111 117*57718be8SEnji Cooper 15 0 15 00000000000000011111111111111111 118*57718be8SEnji Cooper 16 0 16 00000000000000001111111111111111 119*57718be8SEnji Cooper 17 0 17 00000000000000000111111111111111 120*57718be8SEnji Cooper 18 0 18 00000000000000000011111111111111 121*57718be8SEnji Cooper 19 0 19 00000000000000000001111111111111 122*57718be8SEnji Cooper 20 0 20 00000000000000000000111111111111 123*57718be8SEnji Cooper 21 0 21 00000000000000000000011111111111 124*57718be8SEnji Cooper 22 0 22 00000000000000000000001111111111 125*57718be8SEnji Cooper 23 0 23 00000000000000000000000111111111 126*57718be8SEnji Cooper 24 0 24 00000000000000000000000011111111 127*57718be8SEnji Cooper 25 0 25 00000000000000000000000001111111 128*57718be8SEnji Cooper 26 0 26 00000000000000000000000000111111 129*57718be8SEnji Cooper 27 0 27 00000000000000000000000000011111 130*57718be8SEnji Cooper 28 0 28 00000000000000000000000000001111 131*57718be8SEnji Cooper 29 0 29 00000000000000000000000000000111 132*57718be8SEnji Cooper 30 0 30 00000000000000000000000000000011 133*57718be8SEnji Cooper 31 0 31 00000000000000000000000000000001 134*57718be8SEnji Cooper 135*57718be8SEnji Cooperfirst 0 bit should move right 1 position each line 136*57718be8SEnji Cooper 0 0 -1 00000000000000000000000000000000 137*57718be8SEnji Cooper 1 1 0 10000000000000000000000000000000 138*57718be8SEnji Cooper 2 2 0 11000000000000000000000000000000 139*57718be8SEnji Cooper 3 3 0 11100000000000000000000000000000 140*57718be8SEnji Cooper 4 4 0 11110000000000000000000000000000 141*57718be8SEnji Cooper 5 5 0 11111000000000000000000000000000 142*57718be8SEnji Cooper 6 6 0 11111100000000000000000000000000 143*57718be8SEnji Cooper 7 7 0 11111110000000000000000000000000 144*57718be8SEnji Cooper 8 8 0 11111111000000000000000000000000 145*57718be8SEnji Cooper 9 9 0 11111111100000000000000000000000 146*57718be8SEnji Cooper 10 10 0 11111111110000000000000000000000 147*57718be8SEnji Cooper 11 11 0 11111111111000000000000000000000 148*57718be8SEnji Cooper 12 12 0 11111111111100000000000000000000 149*57718be8SEnji Cooper 13 13 0 11111111111110000000000000000000 150*57718be8SEnji Cooper 14 14 0 11111111111111000000000000000000 151*57718be8SEnji Cooper 15 15 0 11111111111111100000000000000000 152*57718be8SEnji Cooper 16 16 0 11111111111111110000000000000000 153*57718be8SEnji Cooper 17 17 0 11111111111111111000000000000000 154*57718be8SEnji Cooper 18 18 0 11111111111111111100000000000000 155*57718be8SEnji Cooper 19 19 0 11111111111111111110000000000000 156*57718be8SEnji Cooper 20 20 0 11111111111111111111000000000000 157*57718be8SEnji Cooper 21 21 0 11111111111111111111100000000000 158*57718be8SEnji Cooper 22 22 0 11111111111111111111110000000000 159*57718be8SEnji Cooper 23 23 0 11111111111111111111111000000000 160*57718be8SEnji Cooper 24 24 0 11111111111111111111111100000000 161*57718be8SEnji Cooper 25 25 0 11111111111111111111111110000000 162*57718be8SEnji Cooper 26 26 0 11111111111111111111111111000000 163*57718be8SEnji Cooper 27 27 0 11111111111111111111111111100000 164*57718be8SEnji Cooper 28 28 0 11111111111111111111111111110000 165*57718be8SEnji Cooper 29 29 0 11111111111111111111111111111000 166*57718be8SEnji Cooper 30 30 0 11111111111111111111111111111100 167*57718be8SEnji Cooper 31 31 0 11111111111111111111111111111110 168*57718be8SEnji Cooper 169*57718be8SEnji Cooperfirst 0 bit should move left 1 position each line 170*57718be8SEnji Cooper 0 -1 0 11111111111111111111111111111111 171*57718be8SEnji Cooper 1 31 0 11111111111111111111111111111110 172*57718be8SEnji Cooper 2 30 0 11111111111111111111111111111100 173*57718be8SEnji Cooper 3 29 0 11111111111111111111111111111000 174*57718be8SEnji Cooper 4 28 0 11111111111111111111111111110000 175*57718be8SEnji Cooper 5 27 0 11111111111111111111111111100000 176*57718be8SEnji Cooper 6 26 0 11111111111111111111111111000000 177*57718be8SEnji Cooper 7 25 0 11111111111111111111111110000000 178*57718be8SEnji Cooper 8 24 0 11111111111111111111111100000000 179*57718be8SEnji Cooper 9 23 0 11111111111111111111111000000000 180*57718be8SEnji Cooper 10 22 0 11111111111111111111110000000000 181*57718be8SEnji Cooper 11 21 0 11111111111111111111100000000000 182*57718be8SEnji Cooper 12 20 0 11111111111111111111000000000000 183*57718be8SEnji Cooper 13 19 0 11111111111111111110000000000000 184*57718be8SEnji Cooper 14 18 0 11111111111111111100000000000000 185*57718be8SEnji Cooper 15 17 0 11111111111111111000000000000000 186*57718be8SEnji Cooper 16 16 0 11111111111111110000000000000000 187*57718be8SEnji Cooper 17 15 0 11111111111111100000000000000000 188*57718be8SEnji Cooper 18 14 0 11111111111111000000000000000000 189*57718be8SEnji Cooper 19 13 0 11111111111110000000000000000000 190*57718be8SEnji Cooper 20 12 0 11111111111100000000000000000000 191*57718be8SEnji Cooper 21 11 0 11111111111000000000000000000000 192*57718be8SEnji Cooper 22 10 0 11111111110000000000000000000000 193*57718be8SEnji Cooper 23 9 0 11111111100000000000000000000000 194*57718be8SEnji Cooper 24 8 0 11111111000000000000000000000000 195*57718be8SEnji Cooper 25 7 0 11111110000000000000000000000000 196*57718be8SEnji Cooper 26 6 0 11111100000000000000000000000000 197*57718be8SEnji Cooper 27 5 0 11111000000000000000000000000000 198*57718be8SEnji Cooper 28 4 0 11110000000000000000000000000000 199*57718be8SEnji Cooper 29 3 0 11100000000000000000000000000000 200*57718be8SEnji Cooper 30 2 0 11000000000000000000000000000000 201*57718be8SEnji Cooper 31 1 0 10000000000000000000000000000000 202*57718be8SEnji Cooper 203*57718be8SEnji Cooperfirst 1 bit should move left 1 position each line 204*57718be8SEnji Cooper 0 0 -1 00000000000000000000000000000000 205*57718be8SEnji Cooper 1 0 31 00000000000000000000000000000001 206*57718be8SEnji Cooper 2 0 30 00000000000000000000000000000011 207*57718be8SEnji Cooper 3 0 29 00000000000000000000000000000111 208*57718be8SEnji Cooper 4 0 28 00000000000000000000000000001111 209*57718be8SEnji Cooper 5 0 27 00000000000000000000000000011111 210*57718be8SEnji Cooper 6 0 26 00000000000000000000000000111111 211*57718be8SEnji Cooper 7 0 25 00000000000000000000000001111111 212*57718be8SEnji Cooper 8 0 24 00000000000000000000000011111111 213*57718be8SEnji Cooper 9 0 23 00000000000000000000000111111111 214*57718be8SEnji Cooper 10 0 22 00000000000000000000001111111111 215*57718be8SEnji Cooper 11 0 21 00000000000000000000011111111111 216*57718be8SEnji Cooper 12 0 20 00000000000000000000111111111111 217*57718be8SEnji Cooper 13 0 19 00000000000000000001111111111111 218*57718be8SEnji Cooper 14 0 18 00000000000000000011111111111111 219*57718be8SEnji Cooper 15 0 17 00000000000000000111111111111111 220*57718be8SEnji Cooper 16 0 16 00000000000000001111111111111111 221*57718be8SEnji Cooper 17 0 15 00000000000000011111111111111111 222*57718be8SEnji Cooper 18 0 14 00000000000000111111111111111111 223*57718be8SEnji Cooper 19 0 13 00000000000001111111111111111111 224*57718be8SEnji Cooper 20 0 12 00000000000011111111111111111111 225*57718be8SEnji Cooper 21 0 11 00000000000111111111111111111111 226*57718be8SEnji Cooper 22 0 10 00000000001111111111111111111111 227*57718be8SEnji Cooper 23 0 9 00000000011111111111111111111111 228*57718be8SEnji Cooper 24 0 8 00000000111111111111111111111111 229*57718be8SEnji Cooper 25 0 7 00000001111111111111111111111111 230*57718be8SEnji Cooper 26 0 6 00000011111111111111111111111111 231*57718be8SEnji Cooper 27 0 5 00000111111111111111111111111111 232*57718be8SEnji Cooper 28 0 4 00001111111111111111111111111111 233*57718be8SEnji Cooper 29 0 3 00011111111111111111111111111111 234*57718be8SEnji Cooper 30 0 2 00111111111111111111111111111111 235*57718be8SEnji Cooper 31 0 1 01111111111111111111111111111111 236*57718be8SEnji Cooper 237*57718be8SEnji Cooper0 bit should move right 1 position each line 238*57718be8SEnji Cooper 0 0 1 01111111111111111111111111111111 239*57718be8SEnji Cooper 1 1 0 10111111111111111111111111111111 240*57718be8SEnji Cooper 2 2 0 11011111111111111111111111111111 241*57718be8SEnji Cooper 3 3 0 11101111111111111111111111111111 242*57718be8SEnji Cooper 4 4 0 11110111111111111111111111111111 243*57718be8SEnji Cooper 5 5 0 11111011111111111111111111111111 244*57718be8SEnji Cooper 6 6 0 11111101111111111111111111111111 245*57718be8SEnji Cooper 7 7 0 11111110111111111111111111111111 246*57718be8SEnji Cooper 8 8 0 11111111011111111111111111111111 247*57718be8SEnji Cooper 9 9 0 11111111101111111111111111111111 248*57718be8SEnji Cooper 10 10 0 11111111110111111111111111111111 249*57718be8SEnji Cooper 11 11 0 11111111111011111111111111111111 250*57718be8SEnji Cooper 12 12 0 11111111111101111111111111111111 251*57718be8SEnji Cooper 13 13 0 11111111111110111111111111111111 252*57718be8SEnji Cooper 14 14 0 11111111111111011111111111111111 253*57718be8SEnji Cooper 15 15 0 11111111111111101111111111111111 254*57718be8SEnji Cooper 16 16 0 11111111111111110111111111111111 255*57718be8SEnji Cooper 17 17 0 11111111111111111011111111111111 256*57718be8SEnji Cooper 18 18 0 11111111111111111101111111111111 257*57718be8SEnji Cooper 19 19 0 11111111111111111110111111111111 258*57718be8SEnji Cooper 20 20 0 11111111111111111111011111111111 259*57718be8SEnji Cooper 21 21 0 11111111111111111111101111111111 260*57718be8SEnji Cooper 22 22 0 11111111111111111111110111111111 261*57718be8SEnji Cooper 23 23 0 11111111111111111111111011111111 262*57718be8SEnji Cooper 24 24 0 11111111111111111111111101111111 263*57718be8SEnji Cooper 25 25 0 11111111111111111111111110111111 264*57718be8SEnji Cooper 26 26 0 11111111111111111111111111011111 265*57718be8SEnji Cooper 27 27 0 11111111111111111111111111101111 266*57718be8SEnji Cooper 28 28 0 11111111111111111111111111110111 267*57718be8SEnji Cooper 29 29 0 11111111111111111111111111111011 268*57718be8SEnji Cooper 30 30 0 11111111111111111111111111111101 269*57718be8SEnji Cooper 31 31 0 11111111111111111111111111111110 270*57718be8SEnji Cooper 271*57718be8SEnji Cooper1 bit should move right 1 position each line 272*57718be8SEnji Cooper 0 1 0 10000000000000000000000000000000 273*57718be8SEnji Cooper 1 0 1 01000000000000000000000000000000 274*57718be8SEnji Cooper 2 0 2 00100000000000000000000000000000 275*57718be8SEnji Cooper 3 0 3 00010000000000000000000000000000 276*57718be8SEnji Cooper 4 0 4 00001000000000000000000000000000 277*57718be8SEnji Cooper 5 0 5 00000100000000000000000000000000 278*57718be8SEnji Cooper 6 0 6 00000010000000000000000000000000 279*57718be8SEnji Cooper 7 0 7 00000001000000000000000000000000 280*57718be8SEnji Cooper 8 0 8 00000000100000000000000000000000 281*57718be8SEnji Cooper 9 0 9 00000000010000000000000000000000 282*57718be8SEnji Cooper 10 0 10 00000000001000000000000000000000 283*57718be8SEnji Cooper 11 0 11 00000000000100000000000000000000 284*57718be8SEnji Cooper 12 0 12 00000000000010000000000000000000 285*57718be8SEnji Cooper 13 0 13 00000000000001000000000000000000 286*57718be8SEnji Cooper 14 0 14 00000000000000100000000000000000 287*57718be8SEnji Cooper 15 0 15 00000000000000010000000000000000 288*57718be8SEnji Cooper 16 0 16 00000000000000001000000000000000 289*57718be8SEnji Cooper 17 0 17 00000000000000000100000000000000 290*57718be8SEnji Cooper 18 0 18 00000000000000000010000000000000 291*57718be8SEnji Cooper 19 0 19 00000000000000000001000000000000 292*57718be8SEnji Cooper 20 0 20 00000000000000000000100000000000 293*57718be8SEnji Cooper 21 0 21 00000000000000000000010000000000 294*57718be8SEnji Cooper 22 0 22 00000000000000000000001000000000 295*57718be8SEnji Cooper 23 0 23 00000000000000000000000100000000 296*57718be8SEnji Cooper 24 0 24 00000000000000000000000010000000 297*57718be8SEnji Cooper 25 0 25 00000000000000000000000001000000 298*57718be8SEnji Cooper 26 0 26 00000000000000000000000000100000 299*57718be8SEnji Cooper 27 0 27 00000000000000000000000000010000 300*57718be8SEnji Cooper 28 0 28 00000000000000000000000000001000 301*57718be8SEnji Cooper 29 0 29 00000000000000000000000000000100 302*57718be8SEnji Cooper 30 0 30 00000000000000000000000000000010 303*57718be8SEnji Cooper 31 0 31 00000000000000000000000000000001 304