aboutsummaryrefslogtreecommitdiffstats
path: root/accounts/abi/numbers_test.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-01-29 05:21:26 +0800
committerobscuren <geffobscura@gmail.com>2015-01-29 05:21:26 +0800
commit8284bef0727e3e7c801c68b1c7ff59127d4cd69a (patch)
tree8bff6e7b19c8891e76cfd2f3024a48f84711a369 /accounts/abi/numbers_test.go
parent32fbc0d334220c4be2c2b7af856523aafa5b8a44 (diff)
parentfd5d061d49ae32db3ebf8b8e6a14380742701661 (diff)
downloaddexon-8284bef0727e3e7c801c68b1c7ff59127d4cd69a.tar
dexon-8284bef0727e3e7c801c68b1c7ff59127d4cd69a.tar.gz
dexon-8284bef0727e3e7c801c68b1c7ff59127d4cd69a.tar.bz2
dexon-8284bef0727e3e7c801c68b1c7ff59127d4cd69a.tar.lz
dexon-8284bef0727e3e7c801c68b1c7ff59127d4cd69a.tar.xz
dexon-8284bef0727e3e7c801c68b1c7ff59127d4cd69a.tar.zst
dexon-8284bef0727e3e7c801c68b1c7ff59127d4cd69a.zip
Merge branch 'develop' into qt5.4
Diffstat (limited to 'accounts/abi/numbers_test.go')
-rw-r--r--accounts/abi/numbers_test.go72
1 files changed, 72 insertions, 0 deletions
diff --git a/accounts/abi/numbers_test.go b/accounts/abi/numbers_test.go
new file mode 100644
index 000000000..319d7fb51
--- /dev/null
+++ b/accounts/abi/numbers_test.go
@@ -0,0 +1,72 @@
+package abi
+
+import (
+ "bytes"
+ "math/big"
+ "reflect"
+ "testing"
+)
+
+func TestNumberTypes(t *testing.T) {
+ ubytes := make([]byte, 32)
+ ubytes[31] = 1
+ sbytesmin := []byte{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
+
+ unsigned := U256(big.NewInt(1))
+ if !bytes.Equal(unsigned, ubytes) {
+ t.Error("expected %x got %x", ubytes, unsigned)
+ }
+
+ signed := S256(big.NewInt(1))
+ if !bytes.Equal(signed, ubytes) {
+ t.Error("expected %x got %x", ubytes, unsigned)
+ }
+
+ signed = S256(big.NewInt(-1))
+ if !bytes.Equal(signed, sbytesmin) {
+ t.Error("expected %x got %x", ubytes, unsigned)
+ }
+}
+
+func TestPackNumber(t *testing.T) {
+ ubytes := make([]byte, 32)
+ ubytes[31] = 1
+ sbytesmin := []byte{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
+ maxunsigned := []byte{255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255}
+
+ packed := packNum(reflect.ValueOf(1), IntTy)
+ if !bytes.Equal(packed, ubytes) {
+ t.Errorf("expected %x got %x", ubytes, packed)
+ }
+ packed = packNum(reflect.ValueOf(-1), IntTy)
+ if !bytes.Equal(packed, sbytesmin) {
+ t.Errorf("expected %x got %x", ubytes, packed)
+ }
+ packed = packNum(reflect.ValueOf(1), UintTy)
+ if !bytes.Equal(packed, ubytes) {
+ t.Errorf("expected %x got %x", ubytes, packed)
+ }
+ packed = packNum(reflect.ValueOf(-1), UintTy)
+ if !bytes.Equal(packed, maxunsigned) {
+ t.Errorf("expected %x got %x", maxunsigned, packed)
+ }
+
+ packed = packNum(reflect.ValueOf("string"), UintTy)
+ if packed != nil {
+ t.Errorf("expected 'string' to pack to nil. got %x instead", packed)
+ }
+}
+
+func TestSigned(t *testing.T) {
+ if isSigned(reflect.ValueOf(uint(10))) {
+ t.Error()
+ }
+
+ if !isSigned(reflect.ValueOf(int(10))) {
+ t.Error()
+ }
+
+ if !isSigned(reflect.ValueOf(big.NewInt(10))) {
+ t.Error()
+ }
+}