value_test.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package common
  2. import (
  3. "math/big"
  4. checker "gopkg.in/check.v1"
  5. )
  6. type ValueSuite struct{}
  7. var _ = checker.Suite(&ValueSuite{})
  8. func (s *ValueSuite) TestValueCmp(c *checker.C) {
  9. val1 := NewValue("hello")
  10. val2 := NewValue("world")
  11. c.Assert(val1.Cmp(val2), checker.Equals, false)
  12. val3 := NewValue("hello")
  13. val4 := NewValue("hello")
  14. c.Assert(val3.Cmp(val4), checker.Equals, true)
  15. }
  16. func (s *ValueSuite) TestValueTypes(c *checker.C) {
  17. str := NewValue("str")
  18. num := NewValue(1)
  19. inter := NewValue([]interface{}{1})
  20. byt := NewValue([]byte{1, 2, 3, 4})
  21. bigInt := NewValue(big.NewInt(10))
  22. strExp := "str"
  23. numExp := uint64(1)
  24. interExp := []interface{}{1}
  25. bytExp := []byte{1, 2, 3, 4}
  26. bigExp := big.NewInt(10)
  27. c.Assert(str.Str(), checker.Equals, strExp)
  28. c.Assert(num.Uint(), checker.Equals, numExp)
  29. c.Assert(NewValue(inter.Interface()).Cmp(NewValue(interExp)), checker.Equals, true)
  30. c.Assert(byt.Bytes(), checker.DeepEquals, bytExp)
  31. c.Assert(bigInt.BigInt(), checker.DeepEquals, bigExp)
  32. }
  33. func (s *ValueSuite) TestIterator(c *checker.C) {
  34. value := NewValue([]interface{}{1, 2, 3})
  35. iter := value.NewIterator()
  36. values := []uint64{1, 2, 3}
  37. i := 0
  38. for iter.Next() {
  39. c.Assert(values[i], checker.Equals, iter.Value().Uint())
  40. i++
  41. }
  42. }
  43. func (s *ValueSuite) TestMath(c *checker.C) {
  44. data1 := NewValue(1)
  45. data1.Add(1).Add(1)
  46. exp1 := NewValue(3)
  47. data2 := NewValue(2)
  48. data2.Sub(1).Sub(1)
  49. exp2 := NewValue(0)
  50. c.Assert(data1.DeepCmp(exp1), checker.Equals, true)
  51. c.Assert(data2.DeepCmp(exp2), checker.Equals, true)
  52. }
  53. func (s *ValueSuite) TestString(c *checker.C) {
  54. data := "10"
  55. exp := int64(10)
  56. c.Assert(NewValue(data).Int(), checker.DeepEquals, exp)
  57. }