github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/crypto/hash/merkle_bench_test.go (about) 1 package hash 2 3 import ( 4 "math/rand" 5 "testing" 6 "time" 7 8 "github.com/nspcc-dev/neo-go/pkg/util" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func BenchmarkMerkle(t *testing.B) { 13 var err error 14 var hashes = make([]util.Uint256, 100000) 15 var h = make([]byte, 32) 16 r := rand.New(rand.NewSource(time.Now().UnixNano())) 17 for i := range hashes { 18 r.Read(h) 19 hashes[i], err = util.Uint256DecodeBytesBE(h) 20 require.NoError(t, err) 21 } 22 23 t.Run("NewMerkleTree", func(t *testing.B) { 24 t.ResetTimer() 25 for n := 0; n < t.N; n++ { 26 tr, err := NewMerkleTree(hashes) 27 require.NoError(t, err) 28 _ = tr.Root() 29 } 30 }) 31 t.Run("CalcMerkleRoot", func(t *testing.B) { 32 t.ResetTimer() 33 for n := 0; n < t.N; n++ { 34 _ = CalcMerkleRoot(hashes) 35 } 36 }) 37 }