mirror of https://github.com/poanetwork/gecko.git
82 lines
1.8 KiB
Go
82 lines
1.8 KiB
Go
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package ids
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestID(t *testing.T) {
|
|
hash := [32]byte{24}
|
|
id := NewID(hash)
|
|
|
|
if key := id.Key(); !bytes.Equal(hash[:], key[:]) {
|
|
t.Fatalf("ID.Key returned wrong bytes")
|
|
}
|
|
|
|
prefixed := id.Prefix(0)
|
|
|
|
if key := id.Key(); !bytes.Equal(hash[:], key[:]) {
|
|
t.Fatalf("ID.Prefix mutated the ID")
|
|
}
|
|
|
|
if nextPrefix := id.Prefix(0); !prefixed.Equals(nextPrefix) {
|
|
t.Fatalf("ID.Prefix not consistant")
|
|
}
|
|
|
|
if b := id.Bytes(); !bytes.Equal(hash[:], b) {
|
|
t.Fatalf("ID.Bytes returned wrong bytes")
|
|
}
|
|
|
|
if str := id.String(); str != "Ba3mm8Ra8JYYebeZ9p7zw1ayorDbeD1euwxhgzSLsncKqGoNt" {
|
|
t.Fatalf("ID.String returned wrong string: %s", str)
|
|
}
|
|
}
|
|
|
|
func TestIDBit(t *testing.T) {
|
|
id0 := NewID([32]byte{1 << 0})
|
|
id1 := NewID([32]byte{1 << 1})
|
|
id2 := NewID([32]byte{1 << 2})
|
|
id3 := NewID([32]byte{1 << 3})
|
|
id4 := NewID([32]byte{1 << 4})
|
|
id5 := NewID([32]byte{1 << 5})
|
|
id6 := NewID([32]byte{1 << 6})
|
|
id7 := NewID([32]byte{1 << 7})
|
|
id8 := NewID([32]byte{0, 1 << 0})
|
|
|
|
if id0.Bit(0) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
} else if id1.Bit(1) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
} else if id2.Bit(2) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
} else if id3.Bit(3) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
} else if id4.Bit(4) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
} else if id5.Bit(5) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
} else if id6.Bit(6) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
} else if id7.Bit(7) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
} else if id8.Bit(8) != 1 {
|
|
t.Fatalf("Wrong bit")
|
|
}
|
|
}
|
|
|
|
func TestFromString(t *testing.T) {
|
|
key := [32]byte{'a', 'v', 'a', ' ', 'l', 'a', 'b', 's'}
|
|
id := NewID(key)
|
|
idStr := id.String()
|
|
id2, err := FromString(idStr)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if id.Key() != id2.Key() {
|
|
t.Fatal("Expected FromString to be inverse of String but it wasn't")
|
|
}
|
|
}
|