package hash import ( "math/rand" "testing" "time" "github.com/nspcc-dev/neo-go/pkg/util" "github.com/stretchr/testify/require" ) func BenchmarkMerkle(t *testing.B) { var err error var hashes = make([]util.Uint256, 100000) var h = make([]byte, 32) r := rand.New(rand.NewSource(time.Now().UnixNano())) for i := range hashes { r.Read(h) hashes[i], err = util.Uint256DecodeBytesBE(h) require.NoError(t, err) } t.Run("NewMerkleTree", func(t *testing.B) { t.ResetTimer() for n := 0; n < t.N; n++ { tr, err := NewMerkleTree(hashes) require.NoError(t, err) _ = tr.Root() } }) t.Run("CalcMerkleRoot", func(t *testing.B) { t.ResetTimer() for n := 0; n < t.N; n++ { _ = CalcMerkleRoot(hashes) } }) }