kesto/treeinterface/arbotree/wrapper_test.go
treeinterface/arbotree/wrapper_test.goRaw
1package arbotree
2
3import (
4 "testing"
5
6 "go.vocdoni.io/dvote/censustree"
7)
8
9func TestInterface(t *testing.T) {
10 storage := t.TempDir()
11 tree := &Tree{}
12 err := tree.Init("test", storage)
13 if err != nil {
14 t.Fatal(err)
15 }
16
17 var i interface{} = tree
18 _, ok := i.(censustree.Tree)
19 if !ok {
20 t.Fatal("censustree interface not matched by arbotree wrapper")
21 }
22}
23
24func TestGenProof(t *testing.T) {
25 storage := t.TempDir()
26 tr1 := &Tree{}
27 err := tr1.Init("test1", storage)
28 if err != nil {
29 t.Fatal(err)
30 }
31
32 var keys, values [][]byte
33 for i := 0; i < 10; i++ {
34 keys = append(keys, []byte{byte(i)})
35 values = append(values, []byte{byte(i)})
36 err = tr1.Add([]byte{byte(i)}, []byte{byte(i)})
37 if err != nil {
38 t.Fatal(err)
39 }
40 }
41
42 for i := 0; i < 10; i++ {
43 p, err := tr1.GenProof(keys[i], values[i])
44 if err != nil {
45 t.Fatal(err)
46 }
47 v, err := tr1.CheckProof(keys[i], values[i], tr1.Root(), p)
48 if err != nil {
49 t.Fatal(err)
50 }
51 if !v {
52 t.Fatal("CheckProof failed")
53 }
54 }
55}