Added more tests

This commit is contained in:
obscuren 2014-02-16 20:30:33 +01:00
parent 066940f134
commit c95a27e394
2 changed files with 24 additions and 8 deletions

@ -84,6 +84,8 @@ func (val *Value) BigInt() *big.Int {
b := new(big.Int).SetBytes(a) b := new(big.Int).SetBytes(a)
return b return b
} else if a, ok := val.Val.(*big.Int); ok {
return a
} else { } else {
return big.NewInt(int64(val.Uint())) return big.NewInt(int64(val.Uint()))
} }
@ -106,7 +108,7 @@ func (val *Value) Bytes() []byte {
return a return a
} }
return make([]byte, 0) return []byte{}
} }
func (val *Value) Slice() []interface{} { func (val *Value) Slice() []interface{} {
@ -144,7 +146,7 @@ func (val *Value) Get(idx int) *Value {
} }
if idx < 0 { if idx < 0 {
panic("negative idx for Rlp Get") panic("negative idx for Value Get")
} }
return NewValue(d[idx]) return NewValue(d[idx])
@ -162,9 +164,9 @@ func (val *Value) Encode() []byte {
return Encode(val.Val) return Encode(val.Val)
} }
func NewValueFromBytes(rlpData []byte) *Value { func NewValueFromBytes(data []byte) *Value {
if len(rlpData) != 0 { if len(data) != 0 {
data, _ := Decode(rlpData, 0) data, _ := Decode(data, 0)
return NewValue(data) return NewValue(data)
} }

@ -1,6 +1,8 @@
package ethutil package ethutil
import ( import (
"bytes"
"math/big"
"testing" "testing"
) )
@ -22,6 +24,8 @@ func TestValueTypes(t *testing.T) {
str := NewValue("str") str := NewValue("str")
num := NewValue(1) num := NewValue(1)
inter := NewValue([]interface{}{1}) inter := NewValue([]interface{}{1})
byt := NewValue([]byte{1, 2, 3, 4})
bigInt := NewValue(big.NewInt(10))
if str.Str() != "str" { if str.Str() != "str" {
t.Errorf("expected Str to return 'str', got %s", str.Str()) t.Errorf("expected Str to return 'str', got %s", str.Str())
@ -31,8 +35,18 @@ func TestValueTypes(t *testing.T) {
t.Errorf("expected Uint to return '1', got %d", num.Uint()) t.Errorf("expected Uint to return '1', got %d", num.Uint())
} }
exp := []interface{}{1} interExp := []interface{}{1}
if !NewValue(inter.Interface()).Cmp(NewValue(exp)) { if !NewValue(inter.Interface()).Cmp(NewValue(interExp)) {
t.Errorf("expected Interface to return '%v', got %v", exp, num.Interface()) t.Errorf("expected Interface to return '%v', got %v", interExp, num.Interface())
}
bytExp := []byte{1, 2, 3, 4}
if bytes.Compare(byt.Bytes(), bytExp) != 0 {
t.Errorf("expected Bytes to return '%v', got %v", bytExp, byt.Bytes())
}
bigExp := big.NewInt(10)
if bigInt.BigInt().Cmp(bigExp) != 0 {
t.Errorf("expected BigInt to return '%v', got %v", bigExp, bigInt.BigInt())
} }
} }