mirror of
https://github.com/arnaucube/arbo.git
synced 2026-01-08 15:01:29 +01:00
Add Pack & Unpack siblings test vectors
This commit is contained in:
70
tree_test.go
70
tree_test.go
@@ -305,6 +305,76 @@ func TestGet(t *testing.T) {
|
||||
c.Check(gettedValue, qt.DeepEquals, BigIntToBytes(bLen, big.NewInt(int64(7*2))))
|
||||
}
|
||||
|
||||
func TestPackAndUnpackSiblings(t *testing.T) {
|
||||
c := qt.New(t)
|
||||
|
||||
siblingsHex := []string{
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0100000000000000000000000000000000000000000000000000000000000000",
|
||||
"0200000000000000000000000000000000000000000000000000000000000000",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0300000000000000000000000000000000000000000000000000000000000000",
|
||||
"0400000000000000000000000000000000000000000000000000000000000000",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0500000000000000000000000000000000000000000000000000000000000000",
|
||||
}
|
||||
siblings := make([][]byte, len(siblingsHex))
|
||||
var err error
|
||||
for i := 0; i < len(siblingsHex); i++ {
|
||||
siblings[i], err = hex.DecodeString(siblingsHex[i])
|
||||
c.Assert(err, qt.IsNil)
|
||||
}
|
||||
|
||||
packed, err := PackSiblings(HashFunctionPoseidon, siblings)
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(hex.EncodeToString(packed), qt.Equals, "a6000200c604"+
|
||||
"0100000000000000000000000000000000000000000000000000000000000000"+
|
||||
"0200000000000000000000000000000000000000000000000000000000000000"+
|
||||
"0300000000000000000000000000000000000000000000000000000000000000"+
|
||||
"0400000000000000000000000000000000000000000000000000000000000000"+
|
||||
"0500000000000000000000000000000000000000000000000000000000000000")
|
||||
|
||||
unpacked, err := UnpackSiblings(HashFunctionPoseidon, packed)
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(unpacked, qt.DeepEquals, siblings)
|
||||
|
||||
// another test with other values
|
||||
siblingsHex = []string{
|
||||
"1ce165cb1124ed3a0a94b4e212aaf7e8079f49b2fbef916bc290c593fda9092a",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"33018202c57d898b84338b16d1a4960e133c6a4d656cfec1bd62a9ea00611729",
|
||||
"bdbee2bd246ba0259a37be9a8740b550eed01c566aff0dca9a07306bcf731d13",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"d43b04d7c2d0bba83b4291fea9ba0fec7830d17af54cbe9967fe90b8244d4e0d",
|
||||
"0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"7def274dbb3a72dca44f01a8d9f2f21a5be84c171eecef8e2e4112e7277e262a",
|
||||
}
|
||||
siblings = make([][]byte, len(siblingsHex))
|
||||
for i := 0; i < len(siblingsHex); i++ {
|
||||
siblings[i], err = hex.DecodeString(siblingsHex[i])
|
||||
c.Assert(err, qt.IsNil)
|
||||
}
|
||||
|
||||
packed, err = PackSiblings(HashFunctionPoseidon, siblings)
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(hex.EncodeToString(packed), qt.Equals, "a60002003105"+
|
||||
"1ce165cb1124ed3a0a94b4e212aaf7e8079f49b2fbef916bc290c593fda9092a"+
|
||||
"33018202c57d898b84338b16d1a4960e133c6a4d656cfec1bd62a9ea00611729"+
|
||||
"bdbee2bd246ba0259a37be9a8740b550eed01c566aff0dca9a07306bcf731d13"+
|
||||
"d43b04d7c2d0bba83b4291fea9ba0fec7830d17af54cbe9967fe90b8244d4e0d"+
|
||||
"7def274dbb3a72dca44f01a8d9f2f21a5be84c171eecef8e2e4112e7277e262a")
|
||||
|
||||
unpacked, err = UnpackSiblings(HashFunctionPoseidon, packed)
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(unpacked, qt.DeepEquals, siblings)
|
||||
}
|
||||
|
||||
func TestGenProofAndVerify(t *testing.T) {
|
||||
c := qt.New(t)
|
||||
database, err := badgerdb.New(badgerdb.Options{Path: c.TempDir()})
|
||||
|
||||
Reference in New Issue
Block a user