package main import ( "bytes" "testing" ) func testMerkle(mtype string) bool { m := NewMerkle(mtype, 4, "test.db") root := m.Build() id := m.Size() / 2 proof := m.Proof(id) v := verify(id, proof) if !bytes.Equal(v, root) { return false } id = m.Size()/2 + 1 proof = m.Proof(id) v = verify(id, proof) if !bytes.Equal(v, root) { return false } return true } func TestMerkle(t *testing.T) { tests := []string{"bfs", "post"} for _, test := range tests { if !testMerkle(test) { t.Error(test) } } }