| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // Copyright 2019 The go-ethereum Authors
- // This file is part of the go-ethereum library.
- //
- // The go-ethereum library is free software: you can redistribute it and/or modify
- // it under the terms of the GNU Lesser General Public License as published by
- // the Free Software Foundation, either version 3 of the License, or
- // (at your option) any later version.
- //
- // The go-ethereum library is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU Lesser General Public License for more details.
- //
- // You should have received a copy of the GNU Lesser General Public License
- // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
- package core
- import (
- "math/big"
- "testing"
- )
- func TestParseInteger(t *testing.T) {
- for i, tt := range []struct {
- t string
- v interface{}
- exp *big.Int
- }{
- {"uint32", "-123", nil},
- {"int32", "-123", big.NewInt(-123)},
- {"uint32", "0xff", big.NewInt(0xff)},
- {"int8", "0xffff", nil},
- } {
- res, err := parseInteger(tt.t, tt.v)
- if tt.exp == nil && res == nil {
- continue
- }
- if tt.exp == nil && res != nil {
- t.Errorf("test %d, got %v, expected nil", i, res)
- continue
- }
- if tt.exp != nil && res == nil {
- t.Errorf("test %d, got '%v', expected %v", i, err, tt.exp)
- continue
- }
- if tt.exp.Cmp(res) != 0 {
- t.Errorf("test %d, got %v expected %v", i, res, tt.exp)
- }
- }
- }
|