mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-21 17:01:35 +00:00
All numbers are in BigEndian
This commit is contained in:
79
binary/int_test.go
Normal file
79
binary/int_test.go
Normal file
@ -0,0 +1,79 @@
|
||||
package binary
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestVarint(t *testing.T) {
|
||||
|
||||
check := func(i int, s string) {
|
||||
buf := new(bytes.Buffer)
|
||||
n, err := new(int64), new(error)
|
||||
WriteVarint(i, buf, n, err)
|
||||
bufBytes := buf.Bytes() // Read before consuming below.
|
||||
i_ := ReadVarint(buf, n, err)
|
||||
if i != i_ {
|
||||
fmt.Println(bufBytes)
|
||||
t.Fatalf("Encoded %v and got %v", i, i_)
|
||||
}
|
||||
if s != "" {
|
||||
if bufHex := fmt.Sprintf("%X", bufBytes); bufHex != s {
|
||||
t.Fatalf("Encoded %v, expected %v", bufHex, s)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 123457 is some prime.
|
||||
for i := -(2 << 33); i < (2 << 33); i += 123457 {
|
||||
check(i, "")
|
||||
}
|
||||
|
||||
// Near zero
|
||||
check(-1, "F101")
|
||||
check(0, "0100")
|
||||
check(1, "0101")
|
||||
// Positives
|
||||
check(1<<32-1, "04FFFFFFFF")
|
||||
check(1<<32+0, "050100000000")
|
||||
check(1<<32+1, "050100000001")
|
||||
check(1<<53-1, "071FFFFFFFFFFFFF")
|
||||
// Negatives
|
||||
check(-1<<32+1, "F4FFFFFFFF")
|
||||
check(-1<<32-0, "F50100000000")
|
||||
check(-1<<32-1, "F50100000001")
|
||||
check(-1<<53+1, "F71FFFFFFFFFFFFF")
|
||||
}
|
||||
|
||||
func TestUvarint(t *testing.T) {
|
||||
|
||||
check := func(i uint, s string) {
|
||||
buf := new(bytes.Buffer)
|
||||
n, err := new(int64), new(error)
|
||||
WriteUvarint(i, buf, n, err)
|
||||
bufBytes := buf.Bytes()
|
||||
i_ := ReadUvarint(buf, n, err)
|
||||
if i != i_ {
|
||||
fmt.Println(buf.Bytes())
|
||||
t.Fatalf("Encoded %v and got %v", i, i_)
|
||||
}
|
||||
if s != "" {
|
||||
if bufHex := fmt.Sprintf("%X", bufBytes); bufHex != s {
|
||||
t.Fatalf("Encoded %v, expected %v", bufHex, s)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 123457 is some prime.
|
||||
for i := 0; i < (2 << 33); i += 123457 {
|
||||
check(uint(i), "")
|
||||
}
|
||||
|
||||
check(1, "0101")
|
||||
check(1<<32-1, "04FFFFFFFF")
|
||||
check(1<<32+0, "050100000000")
|
||||
check(1<<32+1, "050100000001")
|
||||
check(1<<53-1, "071FFFFFFFFFFFFF")
|
||||
|
||||
}
|
Reference in New Issue
Block a user