github.com/holoplot/go-evdev@v0.0.0-20220721205823-d31c64b9d636/bitmap_test.go (about) 1 package evdev 2 3 import ( 4 "reflect" 5 "testing" 6 ) 7 8 func Test_bitsToArray(t *testing.T) { 9 tests := []struct { 10 name string 11 bits []byte 12 want []int 13 }{ 14 { 15 name: "1", 16 bits: []byte{0x01, 0xff}, 17 want: []int{0, 8, 9, 10, 11, 12, 13, 14, 15}, 18 }, 19 { 20 name: "2", 21 bits: []byte{}, 22 want: []int{}, 23 }, 24 { 25 name: "3", 26 bits: []byte{0x00, 0x00, 0x00, 0x00, 0x01}, 27 want: []int{32}, 28 }, 29 } 30 for _, tt := range tests { 31 t.Run(tt.name, func(t *testing.T) { 32 bm := newBitmap(tt.bits) 33 if got := bm.setBits(); !reflect.DeepEqual(got, tt.want) { 34 t.Errorf("setBits() = %v, want %v", got, tt.want) 35 } 36 }) 37 } 38 } 39 40 func Test_bitmap_bitIsSet(t *testing.T) { 41 tests := []struct { 42 name string 43 bits []byte 44 bit int 45 want bool 46 }{ 47 { 48 name: "1", 49 bits: []byte{0x00, 0x00, 0x00, 0x00, 0x01}, 50 bit: 32, 51 want: true, 52 }, 53 { 54 name: "2", 55 bits: []byte{0x00, 0x00, 0x00, 0x00, 0x01}, 56 bit: 31, 57 want: false, 58 }, 59 } 60 for _, tt := range tests { 61 t.Run(tt.name, func(t *testing.T) { 62 bm := &bitmap{ 63 bits: tt.bits, 64 } 65 if got := bm.bitIsSet(tt.bit); got != tt.want { 66 t.Errorf("bitmap.bitIsSet() = %v, want %v", got, tt.want) 67 } 68 }) 69 } 70 }