github.com/tendermint/tmlibs@v0.9.0/merkle/simple_map_test.go (about) 1 package merkle 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 type strHasher string 11 12 func (str strHasher) Hash() []byte { 13 return SimpleHashFromBytes([]byte(str)) 14 } 15 16 func TestSimpleMap(t *testing.T) { 17 { 18 db := NewSimpleMap() 19 db.Set("key1", strHasher("value1")) 20 assert.Equal(t, "3dafc06a52039d029be57c75c9d16356a4256ef4", fmt.Sprintf("%x", db.Hash()), "Hash didn't match") 21 } 22 { 23 db := NewSimpleMap() 24 db.Set("key1", strHasher("value2")) 25 assert.Equal(t, "03eb5cfdff646bc4e80fec844e72fd248a1c6b2c", fmt.Sprintf("%x", db.Hash()), "Hash didn't match") 26 } 27 { 28 db := NewSimpleMap() 29 db.Set("key1", strHasher("value1")) 30 db.Set("key2", strHasher("value2")) 31 assert.Equal(t, "acc3971eab8513171cc90ce8b74f368c38f9657d", fmt.Sprintf("%x", db.Hash()), "Hash didn't match") 32 } 33 { 34 db := NewSimpleMap() 35 db.Set("key2", strHasher("value2")) // NOTE: out of order 36 db.Set("key1", strHasher("value1")) 37 assert.Equal(t, "acc3971eab8513171cc90ce8b74f368c38f9657d", fmt.Sprintf("%x", db.Hash()), "Hash didn't match") 38 } 39 { 40 db := NewSimpleMap() 41 db.Set("key1", strHasher("value1")) 42 db.Set("key2", strHasher("value2")) 43 db.Set("key3", strHasher("value3")) 44 assert.Equal(t, "0cd117ad14e6cd22edcd9aa0d84d7063b54b862f", fmt.Sprintf("%x", db.Hash()), "Hash didn't match") 45 } 46 { 47 db := NewSimpleMap() 48 db.Set("key2", strHasher("value2")) // NOTE: out of order 49 db.Set("key1", strHasher("value1")) 50 db.Set("key3", strHasher("value3")) 51 assert.Equal(t, "0cd117ad14e6cd22edcd9aa0d84d7063b54b862f", fmt.Sprintf("%x", db.Hash()), "Hash didn't match") 52 } 53 }