Skip to content

Commit

Permalink
Add more integer to boolean conversions
Browse files Browse the repository at this point in the history
Signed-off-by: yveshield <yveshield@gmail.com>
Signed-off-by: Yveshield <yveshield@gmail.com>
  • Loading branch information
yveshield committed Sep 3, 2022
1 parent 2b0eb0f commit a483b8a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
22 changes: 22 additions & 0 deletions cast_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -796,6 +796,15 @@ func TestToBoolE(t *testing.T) {
iserr bool
}{
{0, false, false},
{int64(0), false, false},
{int32(0), false, false},
{int16(0), false, false},
{int8(0), false, false},
{uint(0), false, false},
{uint64(0), false, false},
{uint32(0), false, false},
{uint16(0), false, false},
{uint8(0), false, false},
{jf, false, false},
{nil, false, false},
{"false", false, false},
Expand All @@ -811,10 +820,23 @@ func TestToBoolE(t *testing.T) {
{"t", true, false},
{"T", true, false},
{1, true, false},
{int64(1), true, false},
{int32(1), true, false},
{int16(1), true, false},
{int8(1), true, false},
{uint(1), true, false},
{uint64(1), true, false},
{uint32(1), true, false},
{uint16(1), true, false},
{uint8(1), true, false},
{jt, true, false},
{je, true, false},
{true, true, false},
{-1, true, false},
{int64(-1), true, false},
{int32(-1), true, false},
{int16(-1), true, false},
{int8(-1), true, false},

// errors
{"test", false, true},
Expand Down
9 changes: 4 additions & 5 deletions caste.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,10 @@ func ToBoolE(i interface{}) (bool, error) {
return b, nil
case nil:
return false, nil
case int:
if i.(int) != 0 {
return true, nil
}
return false, nil
case int, int64, int32, int16, int8:
return ToInt64(i) != 0, nil
case uint, uint64, uint32, uint16, uint8:
return ToUint64(i) != 0, nil
case string:
return strconv.ParseBool(i.(string))
case json.Number:
Expand Down

0 comments on commit a483b8a

Please sign in to comment.