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

@ -1,6 +1,8 @@
package ethutil
import (
"bytes"
"math/big"
"testing"
)
@ -22,6 +24,8 @@ func TestValueTypes(t *testing.T) {
str := NewValue("str")
num := NewValue(1)
inter := NewValue([]interface{}{1})
byt := NewValue([]byte{1, 2, 3, 4})
bigInt := NewValue(big.NewInt(10))
if str.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())
}
exp := []interface{}{1}
if !NewValue(inter.Interface()).Cmp(NewValue(exp)) {
t.Errorf("expected Interface to return '%v', got %v", exp, num.Interface())
interExp := []interface{}{1}
if !NewValue(inter.Interface()).Cmp(NewValue(interExp)) {
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())
}
}