diff options
Diffstat (limited to 'trie/trie_test.go')
-rw-r--r-- | trie/trie_test.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/trie/trie_test.go b/trie/trie_test.go index 4c7e621dc..d00671c6a 100644 --- a/trie/trie_test.go +++ b/trie/trie_test.go @@ -444,3 +444,59 @@ func TestRndCase(t *testing.T) { fmt.Printf("%x\n", trie.Get(string(ethutil.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")))) } */ + +func TestOtherSomething(t *testing.T) { + _, trie := NewTrie() + + vals := []struct{ k, v string }{ + {"do", "verb"}, + {"ether", "wookiedoo"}, + {"horse", "stallion"}, + {"shaman", "horse"}, + {"doge", "coin"}, + {"ether", ""}, + {"dog", "puppy"}, + {"shaman", ""}, + } + for _, val := range vals { + trie.Update(val.k, val.v) + } + + exp := ethutil.Hex2Bytes("5991bb8c6514148a29db676a14ac506cd2cd5775ace63c30a4fe457715e9ac84") + hash := trie.Root.([]byte) + if !bytes.Equal(hash, exp) { + t.Errorf("expected %x got %x", exp, hash) + } +} + +func BenchmarkGets(b *testing.B) { + _, trie := NewTrie() + vals := []struct{ k, v string }{ + {"do", "verb"}, + {"ether", "wookiedoo"}, + {"horse", "stallion"}, + {"shaman", "horse"}, + {"doge", "coin"}, + {"ether", ""}, + {"dog", "puppy"}, + {"shaman", ""}, + {"somethingveryoddindeedthis is", "myothernodedata"}, + } + for _, val := range vals { + trie.Update(val.k, val.v) + } + + b.ResetTimer() + for i := 0; i < b.N; i++ { + trie.Get("horse") + } +} + +func BenchmarkUpdate(b *testing.B) { + _, trie := NewTrie() + + b.ResetTimer() + for i := 0; i < b.N; i++ { + trie.Update(fmt.Sprintf("aaaaaaaaaaaaaaa%d", j), "value") + } +} |