diff options
author | obscuren <geffobscura@gmail.com> | 2014-12-20 09:34:12 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-12-20 09:34:12 +0800 |
commit | 3983dd2428137211f84f299f9ce8690c22f50afd (patch) | |
tree | 3a2dc53b365e6f377fc82a3514150d1297fe549c /ethutil/value_test.go | |
parent | 7daa8c2f6eb25511c6a54ad420709af911fc6748 (diff) | |
parent | 0a9dc1536c5d776844d6947a0090ff7e1a7c6ab4 (diff) | |
download | dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.gz dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.bz2 dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.lz dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.xz dexon-3983dd2428137211f84f299f9ce8690c22f50afd.tar.zst dexon-3983dd2428137211f84f299f9ce8690c22f50afd.zip |
Merge branch 'release/v0.7.10'
Diffstat (limited to 'ethutil/value_test.go')
-rw-r--r-- | ethutil/value_test.go | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/ethutil/value_test.go b/ethutil/value_test.go new file mode 100644 index 000000000..861d35184 --- /dev/null +++ b/ethutil/value_test.go @@ -0,0 +1,70 @@ +package ethutil + +import ( + "math/big" + + checker "gopkg.in/check.v1" +) + +type ValueSuite struct{} + +var _ = checker.Suite(&ValueSuite{}) + +func (s *ValueSuite) TestValueCmp(c *checker.C) { + val1 := NewValue("hello") + val2 := NewValue("world") + c.Assert(val1.Cmp(val2), checker.Equals, false) + + val3 := NewValue("hello") + val4 := NewValue("hello") + c.Assert(val3.Cmp(val4), checker.Equals, true) +} + +func (s *ValueSuite) TestValueTypes(c *checker.C) { + str := NewValue("str") + num := NewValue(1) + inter := NewValue([]interface{}{1}) + byt := NewValue([]byte{1, 2, 3, 4}) + bigInt := NewValue(big.NewInt(10)) + + strExp := "str" + numExp := uint64(1) + interExp := []interface{}{1} + bytExp := []byte{1, 2, 3, 4} + bigExp := big.NewInt(10) + + c.Assert(str.Str(), checker.Equals, strExp) + c.Assert(num.Uint(), checker.Equals, numExp) + c.Assert(NewValue(inter.Interface()).Cmp(NewValue(interExp)), checker.Equals, true) + c.Assert(byt.Bytes(), checker.DeepEquals, bytExp) + c.Assert(bigInt.BigInt(), checker.DeepEquals, bigExp) +} + +func (s *ValueSuite) TestIterator(c *checker.C) { + value := NewValue([]interface{}{1, 2, 3}) + iter := value.NewIterator() + values := []uint64{1, 2, 3} + i := 0 + for iter.Next() { + c.Assert(values[i], checker.Equals, iter.Value().Uint()) + i++ + } +} + +func (s *ValueSuite) TestMath(c *checker.C) { + data1 := NewValue(1) + data1.Add(1).Add(1) + exp1 := NewValue(3) + data2 := NewValue(2) + data2.Sub(1).Sub(1) + exp2 := NewValue(0) + + c.Assert(data1.DeepCmp(exp1), checker.Equals, true) + c.Assert(data2.DeepCmp(exp2), checker.Equals, true) +} + +func (s *ValueSuite) TestString(c *checker.C) { + data := "10" + exp := int64(10) + c.Assert(NewValue(data).Int(), checker.DeepEquals, exp) +} |