1*57718be8SEnji CooperTesting with TEST_LENGTH = 27 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 33*57718be8SEnji Coopertest bit_alloc, clearbits, bit_ffc, bit_ffs 34*57718be8SEnji Cooperbe: 0 -1 000000000000000000000000000 35*57718be8SEnji Cooperis: 0 -1 000000000000000000000000000 36*57718be8SEnji Cooper 37*57718be8SEnji Coopertest bit_set 38*57718be8SEnji Cooperbe: 1 0 100100100100100100100100100 39*57718be8SEnji Cooperis: 1 0 100100100100100100100100100 40*57718be8SEnji Cooper 41*57718be8SEnji Coopertest bit_clear 42*57718be8SEnji Cooperbe: 0 3 000100000100000100000100000 43*57718be8SEnji Cooperis: 0 3 000100000100000100000100000 44*57718be8SEnji Cooper 45*57718be8SEnji Coopertest bit_test using previous bitstring 46*57718be8SEnji Cooper i bit_test(i) 47*57718be8SEnji Cooper 0 0 48*57718be8SEnji Cooper 1 0 49*57718be8SEnji Cooper 2 0 50*57718be8SEnji Cooper 3 8 51*57718be8SEnji Cooper 4 0 52*57718be8SEnji Cooper 5 0 53*57718be8SEnji Cooper 6 0 54*57718be8SEnji Cooper 7 0 55*57718be8SEnji Cooper 8 0 56*57718be8SEnji Cooper 9 2 57*57718be8SEnji Cooper 10 0 58*57718be8SEnji Cooper 11 0 59*57718be8SEnji Cooper 12 0 60*57718be8SEnji Cooper 13 0 61*57718be8SEnji Cooper 14 0 62*57718be8SEnji Cooper 15 128 63*57718be8SEnji Cooper 16 0 64*57718be8SEnji Cooper 17 0 65*57718be8SEnji Cooper 18 0 66*57718be8SEnji Cooper 19 0 67*57718be8SEnji Cooper 20 0 68*57718be8SEnji Cooper 21 32 69*57718be8SEnji Cooper 22 0 70*57718be8SEnji Cooper 23 0 71*57718be8SEnji Cooper 24 0 72*57718be8SEnji Cooper 25 0 73*57718be8SEnji Cooper 26 0 74*57718be8SEnji Cooper 75*57718be8SEnji Coopertest clearbits 76*57718be8SEnji Cooperbe: 0 -1 000000000000000000000000000 77*57718be8SEnji Cooperis: 0 -1 000000000000000000000000000 78*57718be8SEnji Cooper 79*57718be8SEnji Coopertest bit_nset and bit_nclear 80*57718be8SEnji Cooperbe: 0 1 011111111111111111111111110 81*57718be8SEnji Cooperis: 0 1 011111111111111111111111110 82*57718be8SEnji Cooperbe: 0 1 010000000000000000000000010 83*57718be8SEnji Cooperis: 0 1 010000000000000000000000010 84*57718be8SEnji Cooperbe: 0 -1 000000000000000000000000000 85*57718be8SEnji Cooperis: 0 -1 000000000000000000000000000 86*57718be8SEnji Cooperbe: 26 0 111111111111111111111111110 87*57718be8SEnji Cooperis: 26 0 111111111111111111111111110 88*57718be8SEnji Cooperbe: 0 -1 000000000000000000000000000 89*57718be8SEnji Cooperis: 0 -1 000000000000000000000000000 90*57718be8SEnji Cooper 91*57718be8SEnji Cooperfirst 1 bit should move right 1 position each line 92*57718be8SEnji Cooper 0 -1 0 111111111111111111111111111 93*57718be8SEnji Cooper 1 0 1 011111111111111111111111111 94*57718be8SEnji Cooper 2 0 2 001111111111111111111111111 95*57718be8SEnji Cooper 3 0 3 000111111111111111111111111 96*57718be8SEnji Cooper 4 0 4 000011111111111111111111111 97*57718be8SEnji Cooper 5 0 5 000001111111111111111111111 98*57718be8SEnji Cooper 6 0 6 000000111111111111111111111 99*57718be8SEnji Cooper 7 0 7 000000011111111111111111111 100*57718be8SEnji Cooper 8 0 8 000000001111111111111111111 101*57718be8SEnji Cooper 9 0 9 000000000111111111111111111 102*57718be8SEnji Cooper 10 0 10 000000000011111111111111111 103*57718be8SEnji Cooper 11 0 11 000000000001111111111111111 104*57718be8SEnji Cooper 12 0 12 000000000000111111111111111 105*57718be8SEnji Cooper 13 0 13 000000000000011111111111111 106*57718be8SEnji Cooper 14 0 14 000000000000001111111111111 107*57718be8SEnji Cooper 15 0 15 000000000000000111111111111 108*57718be8SEnji Cooper 16 0 16 000000000000000011111111111 109*57718be8SEnji Cooper 17 0 17 000000000000000001111111111 110*57718be8SEnji Cooper 18 0 18 000000000000000000111111111 111*57718be8SEnji Cooper 19 0 19 000000000000000000011111111 112*57718be8SEnji Cooper 20 0 20 000000000000000000001111111 113*57718be8SEnji Cooper 21 0 21 000000000000000000000111111 114*57718be8SEnji Cooper 22 0 22 000000000000000000000011111 115*57718be8SEnji Cooper 23 0 23 000000000000000000000001111 116*57718be8SEnji Cooper 24 0 24 000000000000000000000000111 117*57718be8SEnji Cooper 25 0 25 000000000000000000000000011 118*57718be8SEnji Cooper 26 0 26 000000000000000000000000001 119*57718be8SEnji Cooper 120*57718be8SEnji Cooperfirst 0 bit should move right 1 position each line 121*57718be8SEnji Cooper 0 0 -1 000000000000000000000000000 122*57718be8SEnji Cooper 1 1 0 100000000000000000000000000 123*57718be8SEnji Cooper 2 2 0 110000000000000000000000000 124*57718be8SEnji Cooper 3 3 0 111000000000000000000000000 125*57718be8SEnji Cooper 4 4 0 111100000000000000000000000 126*57718be8SEnji Cooper 5 5 0 111110000000000000000000000 127*57718be8SEnji Cooper 6 6 0 111111000000000000000000000 128*57718be8SEnji Cooper 7 7 0 111111100000000000000000000 129*57718be8SEnji Cooper 8 8 0 111111110000000000000000000 130*57718be8SEnji Cooper 9 9 0 111111111000000000000000000 131*57718be8SEnji Cooper 10 10 0 111111111100000000000000000 132*57718be8SEnji Cooper 11 11 0 111111111110000000000000000 133*57718be8SEnji Cooper 12 12 0 111111111111000000000000000 134*57718be8SEnji Cooper 13 13 0 111111111111100000000000000 135*57718be8SEnji Cooper 14 14 0 111111111111110000000000000 136*57718be8SEnji Cooper 15 15 0 111111111111111000000000000 137*57718be8SEnji Cooper 16 16 0 111111111111111100000000000 138*57718be8SEnji Cooper 17 17 0 111111111111111110000000000 139*57718be8SEnji Cooper 18 18 0 111111111111111111000000000 140*57718be8SEnji Cooper 19 19 0 111111111111111111100000000 141*57718be8SEnji Cooper 20 20 0 111111111111111111110000000 142*57718be8SEnji Cooper 21 21 0 111111111111111111111000000 143*57718be8SEnji Cooper 22 22 0 111111111111111111111100000 144*57718be8SEnji Cooper 23 23 0 111111111111111111111110000 145*57718be8SEnji Cooper 24 24 0 111111111111111111111111000 146*57718be8SEnji Cooper 25 25 0 111111111111111111111111100 147*57718be8SEnji Cooper 26 26 0 111111111111111111111111110 148*57718be8SEnji Cooper 149*57718be8SEnji Cooperfirst 0 bit should move left 1 position each line 150*57718be8SEnji Cooper 0 -1 0 111111111111111111111111111 151*57718be8SEnji Cooper 1 26 0 111111111111111111111111110 152*57718be8SEnji Cooper 2 25 0 111111111111111111111111100 153*57718be8SEnji Cooper 3 24 0 111111111111111111111111000 154*57718be8SEnji Cooper 4 23 0 111111111111111111111110000 155*57718be8SEnji Cooper 5 22 0 111111111111111111111100000 156*57718be8SEnji Cooper 6 21 0 111111111111111111111000000 157*57718be8SEnji Cooper 7 20 0 111111111111111111110000000 158*57718be8SEnji Cooper 8 19 0 111111111111111111100000000 159*57718be8SEnji Cooper 9 18 0 111111111111111111000000000 160*57718be8SEnji Cooper 10 17 0 111111111111111110000000000 161*57718be8SEnji Cooper 11 16 0 111111111111111100000000000 162*57718be8SEnji Cooper 12 15 0 111111111111111000000000000 163*57718be8SEnji Cooper 13 14 0 111111111111110000000000000 164*57718be8SEnji Cooper 14 13 0 111111111111100000000000000 165*57718be8SEnji Cooper 15 12 0 111111111111000000000000000 166*57718be8SEnji Cooper 16 11 0 111111111110000000000000000 167*57718be8SEnji Cooper 17 10 0 111111111100000000000000000 168*57718be8SEnji Cooper 18 9 0 111111111000000000000000000 169*57718be8SEnji Cooper 19 8 0 111111110000000000000000000 170*57718be8SEnji Cooper 20 7 0 111111100000000000000000000 171*57718be8SEnji Cooper 21 6 0 111111000000000000000000000 172*57718be8SEnji Cooper 22 5 0 111110000000000000000000000 173*57718be8SEnji Cooper 23 4 0 111100000000000000000000000 174*57718be8SEnji Cooper 24 3 0 111000000000000000000000000 175*57718be8SEnji Cooper 25 2 0 110000000000000000000000000 176*57718be8SEnji Cooper 26 1 0 100000000000000000000000000 177*57718be8SEnji Cooper 178*57718be8SEnji Cooperfirst 1 bit should move left 1 position each line 179*57718be8SEnji Cooper 0 0 -1 000000000000000000000000000 180*57718be8SEnji Cooper 1 0 26 000000000000000000000000001 181*57718be8SEnji Cooper 2 0 25 000000000000000000000000011 182*57718be8SEnji Cooper 3 0 24 000000000000000000000000111 183*57718be8SEnji Cooper 4 0 23 000000000000000000000001111 184*57718be8SEnji Cooper 5 0 22 000000000000000000000011111 185*57718be8SEnji Cooper 6 0 21 000000000000000000000111111 186*57718be8SEnji Cooper 7 0 20 000000000000000000001111111 187*57718be8SEnji Cooper 8 0 19 000000000000000000011111111 188*57718be8SEnji Cooper 9 0 18 000000000000000000111111111 189*57718be8SEnji Cooper 10 0 17 000000000000000001111111111 190*57718be8SEnji Cooper 11 0 16 000000000000000011111111111 191*57718be8SEnji Cooper 12 0 15 000000000000000111111111111 192*57718be8SEnji Cooper 13 0 14 000000000000001111111111111 193*57718be8SEnji Cooper 14 0 13 000000000000011111111111111 194*57718be8SEnji Cooper 15 0 12 000000000000111111111111111 195*57718be8SEnji Cooper 16 0 11 000000000001111111111111111 196*57718be8SEnji Cooper 17 0 10 000000000011111111111111111 197*57718be8SEnji Cooper 18 0 9 000000000111111111111111111 198*57718be8SEnji Cooper 19 0 8 000000001111111111111111111 199*57718be8SEnji Cooper 20 0 7 000000011111111111111111111 200*57718be8SEnji Cooper 21 0 6 000000111111111111111111111 201*57718be8SEnji Cooper 22 0 5 000001111111111111111111111 202*57718be8SEnji Cooper 23 0 4 000011111111111111111111111 203*57718be8SEnji Cooper 24 0 3 000111111111111111111111111 204*57718be8SEnji Cooper 25 0 2 001111111111111111111111111 205*57718be8SEnji Cooper 26 0 1 011111111111111111111111111 206*57718be8SEnji Cooper 207*57718be8SEnji Cooper0 bit should move right 1 position each line 208*57718be8SEnji Cooper 0 0 1 011111111111111111111111111 209*57718be8SEnji Cooper 1 1 0 101111111111111111111111111 210*57718be8SEnji Cooper 2 2 0 110111111111111111111111111 211*57718be8SEnji Cooper 3 3 0 111011111111111111111111111 212*57718be8SEnji Cooper 4 4 0 111101111111111111111111111 213*57718be8SEnji Cooper 5 5 0 111110111111111111111111111 214*57718be8SEnji Cooper 6 6 0 111111011111111111111111111 215*57718be8SEnji Cooper 7 7 0 111111101111111111111111111 216*57718be8SEnji Cooper 8 8 0 111111110111111111111111111 217*57718be8SEnji Cooper 9 9 0 111111111011111111111111111 218*57718be8SEnji Cooper 10 10 0 111111111101111111111111111 219*57718be8SEnji Cooper 11 11 0 111111111110111111111111111 220*57718be8SEnji Cooper 12 12 0 111111111111011111111111111 221*57718be8SEnji Cooper 13 13 0 111111111111101111111111111 222*57718be8SEnji Cooper 14 14 0 111111111111110111111111111 223*57718be8SEnji Cooper 15 15 0 111111111111111011111111111 224*57718be8SEnji Cooper 16 16 0 111111111111111101111111111 225*57718be8SEnji Cooper 17 17 0 111111111111111110111111111 226*57718be8SEnji Cooper 18 18 0 111111111111111111011111111 227*57718be8SEnji Cooper 19 19 0 111111111111111111101111111 228*57718be8SEnji Cooper 20 20 0 111111111111111111110111111 229*57718be8SEnji Cooper 21 21 0 111111111111111111111011111 230*57718be8SEnji Cooper 22 22 0 111111111111111111111101111 231*57718be8SEnji Cooper 23 23 0 111111111111111111111110111 232*57718be8SEnji Cooper 24 24 0 111111111111111111111111011 233*57718be8SEnji Cooper 25 25 0 111111111111111111111111101 234*57718be8SEnji Cooper 26 26 0 111111111111111111111111110 235*57718be8SEnji Cooper 236*57718be8SEnji Cooper1 bit should move right 1 position each line 237*57718be8SEnji Cooper 0 1 0 100000000000000000000000000 238*57718be8SEnji Cooper 1 0 1 010000000000000000000000000 239*57718be8SEnji Cooper 2 0 2 001000000000000000000000000 240*57718be8SEnji Cooper 3 0 3 000100000000000000000000000 241*57718be8SEnji Cooper 4 0 4 000010000000000000000000000 242*57718be8SEnji Cooper 5 0 5 000001000000000000000000000 243*57718be8SEnji Cooper 6 0 6 000000100000000000000000000 244*57718be8SEnji Cooper 7 0 7 000000010000000000000000000 245*57718be8SEnji Cooper 8 0 8 000000001000000000000000000 246*57718be8SEnji Cooper 9 0 9 000000000100000000000000000 247*57718be8SEnji Cooper 10 0 10 000000000010000000000000000 248*57718be8SEnji Cooper 11 0 11 000000000001000000000000000 249*57718be8SEnji Cooper 12 0 12 000000000000100000000000000 250*57718be8SEnji Cooper 13 0 13 000000000000010000000000000 251*57718be8SEnji Cooper 14 0 14 000000000000001000000000000 252*57718be8SEnji Cooper 15 0 15 000000000000000100000000000 253*57718be8SEnji Cooper 16 0 16 000000000000000010000000000 254*57718be8SEnji Cooper 17 0 17 000000000000000001000000000 255*57718be8SEnji Cooper 18 0 18 000000000000000000100000000 256*57718be8SEnji Cooper 19 0 19 000000000000000000010000000 257*57718be8SEnji Cooper 20 0 20 000000000000000000001000000 258*57718be8SEnji Cooper 21 0 21 000000000000000000000100000 259*57718be8SEnji Cooper 22 0 22 000000000000000000000010000 260*57718be8SEnji Cooper 23 0 23 000000000000000000000001000 261*57718be8SEnji Cooper 24 0 24 000000000000000000000000100 262*57718be8SEnji Cooper 25 0 25 000000000000000000000000010 263*57718be8SEnji Cooper 26 0 26 000000000000000000000000001 264