43 lines
960 B
Go
43 lines
960 B
Go
![]() |
package leb128
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestEncodeUnsigned(t *testing.T) {
|
||
|
tc := []uint64{0x00, 0x7f, 0x80, 0x8f, 0xffff, 0xfffffff7}
|
||
|
for i := range tc {
|
||
|
var buf bytes.Buffer
|
||
|
EncodeUnsigned(&buf, tc[i])
|
||
|
enc := append([]byte{}, buf.Bytes()...)
|
||
|
buf.Write([]byte{0x1, 0x2, 0x3})
|
||
|
out, c := DecodeUnsigned(&buf)
|
||
|
t.Logf("input %x output %x encoded %x", tc[i], out, enc)
|
||
|
if c != uint32(len(enc)) {
|
||
|
t.Errorf("wrong encode")
|
||
|
}
|
||
|
if out != tc[i] {
|
||
|
t.Errorf("wrong encode")
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestEncodeSigned(t *testing.T) {
|
||
|
tc := []int64{2, -2, 127, -127, 128, -128, 129, -129}
|
||
|
for i := range tc {
|
||
|
var buf bytes.Buffer
|
||
|
EncodeSigned(&buf, tc[i])
|
||
|
enc := append([]byte{}, buf.Bytes()...)
|
||
|
buf.Write([]byte{0x1, 0x2, 0x3})
|
||
|
out, c := DecodeSigned(&buf)
|
||
|
t.Logf("input %x output %x encoded %x", tc[i], out, enc)
|
||
|
if c != uint32(len(enc)) {
|
||
|
t.Errorf("wrong encode")
|
||
|
}
|
||
|
if out != tc[i] {
|
||
|
t.Errorf("wrong encode")
|
||
|
}
|
||
|
}
|
||
|
}
|