OSDN Git Service

Merge pull request #1 from Bytom/master
[bytom/bytom.git] / protocol / bc / entry_test.go
1 package bc
2
3 import (
4         "reflect"
5         "testing"
6         "time"
7 )
8
9 func BenchmarkEntryID(b *testing.B) {
10         m := NewMux([]*ValueSource{{Position: 1}}, &Program{Code: []byte{1}, VmVersion: 1})
11
12         entries := []Entry{
13                 NewIssuance(nil, &AssetAmount{}, &Hash{}, 0),
14                 NewTxHeader(1, 1, nil, &Hash{}, uint64(time.Now().Unix()), uint64(time.Now().Unix())),
15                 m,
16                 NewNonce(&Program{Code: []byte{1}, VmVersion: 1}),
17                 NewOutput(&ValueSource{}, &Program{Code: []byte{1}, VmVersion: 1}, &Hash{}, 0),
18                 NewRetirement(&ValueSource{}, &Hash{}, 1),
19                 NewSpend(&Hash{}, &Hash{}, 0),
20         }
21
22         for _, e := range entries {
23                 name := reflect.TypeOf(e).Elem().Name()
24                 b.Run(name, func(b *testing.B) {
25                         for i := 0; i < b.N; i++ {
26                                 EntryID(e)
27                         }
28                 })
29         }
30 }