package common import ( "bytes" "testing" ) var ( testCase = map[uint32][4]byte { 0: [...]byte{0, 0, 0, 0}, 1: [...]byte{0, 0, 0, 1}, 256: [...]byte{0, 0, 1, 0}, 256 * 256: [...]byte{0, 1, 0, 0}, 256 * 256 * 256: [...]byte{1, 0, 0, 0}, 256 * 256 * 256 + 256 * 256 + 256 + 1: [...]byte{1, 1, 1, 1}, 4294967295 : [...]byte{0xFF, 0xFF, 0xFF, 0xFF}, } ) func TestUint32ToBytes(t *testing.T) { for k, v := range testCase { b := Uint32ToBytes(k) if bytes.Compare(b[:], v[:]) != 0 { t.Errorf("%v was expected, but %v was got", v, b) } } } func TestBytesToUint32s(t *testing.T) { for k, v := range testCase { u := BytesToUint32([4]byte(v)) if u != k { t.Errorf("%v was expected, but %v was got", k, u) } } } func BenchmarkByteToUnit32(b * testing.B) { for i := 0; i < b.N; i++ { BytesToUint32([4]byte{0xF, 0xF, 0xF, 0xF}); } } func BenchmarkUint32ToByte(b *testing.B) { for i := 0; i < b.N; i++ { Uint32ToBytes(123456); } }