1
0
mirror of https://github.com/json-iterator/go.git synced 2025-04-23 11:37:32 +02:00

Merge pull request #104 from cch123/feature-add-bool-convert-test

add bool convert test map
This commit is contained in:
Tao Wen 2017-07-03 20:00:29 +08:00 committed by GitHub
commit f0b07a2313
4 changed files with 40 additions and 9 deletions

View File

@ -25,9 +25,7 @@ func (any *objectLazyAny) LastError() error {
}
func (any *objectLazyAny) ToBool() bool {
iter := any.cfg.BorrowIterator(any.buf)
defer any.cfg.ReturnIterator(iter)
return iter.ReadObject() != ""
return true
}
func (any *objectLazyAny) ToInt() int {

View File

@ -35,7 +35,7 @@ func (any *stringAny) LastError() error {
func (any *stringAny) ToBool() bool {
str := any.ToString()
if str == "false" {
if str == "0" {
return false
}
for _, c := range str {

View File

@ -1,12 +1,44 @@
package jsoniter
import (
"github.com/json-iterator/go/require"
"fmt"
"testing"
"github.com/json-iterator/go/require"
)
var boolConvertMap = map[string]bool{
"true": true,
"false": false,
`"true"`: true,
`"false"`: true,
"123": true,
"0": false,
`"0"`: false,
"-1": true,
"1.1": true,
"0.0": false,
"-1.1": true,
`""`: false,
"[1,2]": true,
"[]": false,
"{}": true,
`{"abc":1}`: true,
}
func Test_read_bool_as_any(t *testing.T) {
should := require.New(t)
any := Get([]byte("true"))
should.True(any.ToBool())
var any Any
for k, v := range boolConvertMap {
any = Get([]byte(k))
if v {
should.True(any.ToBool(), fmt.Sprintf("origin val is %v", k))
} else {
should.False(any.ToBool(), fmt.Sprintf("origin val is %v", k))
}
}
}

View File

@ -1,8 +1,9 @@
package jsoniter
import (
"github.com/json-iterator/go/require"
"testing"
"github.com/json-iterator/go/require"
)
func Test_read_string_as_any(t *testing.T) {
@ -13,7 +14,7 @@ func Test_read_string_as_any(t *testing.T) {
any = Get([]byte(`" "`))
should.False(any.ToBool())
any = Get([]byte(`"false"`))
should.False(any.ToBool())
should.True(any.ToBool())
any = Get([]byte(`"123"`))
should.Equal(123, any.ToInt())
}