arnaucube
arnaucube/go-merkletree-iden3Public Self-hosted repository
go-merkletree-iden3/merkletree_test.go
merkletree_test.goRaw
 1package merkletree
 2
 3import (
 4	"math/big"
 5	"testing"
 6
 7	"github.com/iden3/go-iden3-core/db"
 8	"github.com/stretchr/testify/assert"
 9)
10
11func TestNewTree(t *testing.T) {
12	mt, err := NewMerkleTree(db.NewMemoryStorage(), 10)
13	assert.Nil(t, err)
14	assert.Equal(t, "0", mt.Root().String())
15
16	// test vectors generated using https://github.com/iden3/circomlib smt.js
17	err = mt.Add(big.NewInt(1), big.NewInt(2))
18	assert.Nil(t, err)
19	assert.Equal(t, "4932297968297298434239270129193057052722409868268166443802652458940273154854", mt.Root().BigInt().String())
20
21	err = mt.Add(big.NewInt(33), big.NewInt(44))
22	assert.Nil(t, err)
23	assert.Equal(t, "13563340744765267202993741297198970774200042973817962221376874695587906013050", mt.Root().BigInt().String())
24
25	err = mt.Add(big.NewInt(1234), big.NewInt(9876))
26	assert.Nil(t, err)
27	assert.Equal(t, "16970503620176669663662021947486532860010370357132361783766545149750777353066", mt.Root().BigInt().String())
28}