You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.6 KiB

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