You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
734 B
Go
40 lines
734 B
Go
package dmr
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestBit(t *testing.T) {
|
|
var tests = []struct {
|
|
Test []byte
|
|
Want []byte
|
|
}{
|
|
{
|
|
[]byte{0x2a},
|
|
[]byte{0, 0, 1, 0, 1, 0, 1, 0},
|
|
},
|
|
{
|
|
[]byte{0xbe, 0xef},
|
|
[]byte{1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1},
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
got := BytesToBits(test.Test)
|
|
if len(got) != len(test.Want) {
|
|
t.Fatalf("expected length %d, got %d [%s]", len(test.Want), len(got), string(got))
|
|
}
|
|
for i, b := range got {
|
|
if b != test.Want[i] {
|
|
t.Fatalf("bit %d is off: %v != %v", i, got, test.Want)
|
|
}
|
|
}
|
|
|
|
rev := BitsToBytes(got)
|
|
if !bytes.Equal(rev, test.Test) {
|
|
t.Fatalf("reverse bits to bytes failed, %v != %v", rev, test.Test)
|
|
}
|
|
}
|
|
}
|