diff options
author | zelig <viktor.tron@gmail.com> | 2015-03-16 23:46:29 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-03-16 23:46:29 +0800 |
commit | 5e7702fd050ed5520a03cc2cfc8b1f45a70f35fb (patch) | |
tree | d5ba6197a8c0c8e36bb92ee9fc8aad717cb2d178 /common/value_test.go | |
parent | 8393dab470c40678caf36ada82e312d29c4cf5c4 (diff) | |
parent | 22893b7ac925c49168c119f293ea8befc3aff5cc (diff) | |
download | dexon-5e7702fd050ed5520a03cc2cfc8b1f45a70f35fb.tar dexon-5e7702fd050ed5520a03cc2cfc8b1f45a70f35fb.tar.gz dexon-5e7702fd050ed5520a03cc2cfc8b1f45a70f35fb.tar.bz2 dexon-5e7702fd050ed5520a03cc2cfc8b1f45a70f35fb.tar.lz dexon-5e7702fd050ed5520a03cc2cfc8b1f45a70f35fb.tar.xz dexon-5e7702fd050ed5520a03cc2cfc8b1f45a70f35fb.tar.zst dexon-5e7702fd050ed5520a03cc2cfc8b1f45a70f35fb.zip |
Merge remote-tracking branch 'upstream/develop' into frontier/js
Conflicts:
cmd/ethereum/js.go
javascript/types.go
Diffstat (limited to 'common/value_test.go')
-rw-r--r-- | common/value_test.go | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/common/value_test.go b/common/value_test.go new file mode 100644 index 000000000..09d37802d --- /dev/null +++ b/common/value_test.go @@ -0,0 +1,70 @@ +package common + +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) +} |