diff --git a/pkg/schema/field/number.go b/pkg/schema/field/number.go index 22e6bb71a6124fd725fd0a230aa637b1d4f08a69..00c264a2801f33f70129237d8072f7dfe5730c82 100644 --- a/pkg/schema/field/number.go +++ b/pkg/schema/field/number.go @@ -89,7 +89,7 @@ func (NumberType) decode(_ context.Context, field *Field, v interface{}) (interf return i, nil case float64: if i >= math.MaxInt64 || i <= math.MinInt64 { - return nil, errors.Errorf("the passed value must be no more than %d and no less than %d", math.MaxInt64, math.MinInt64) + return nil, errors.Errorf("the passed value %f must be no more than %d and no less than %d", i, math.MaxInt64, math.MinInt64) } return int64(math.Round(i)), nil } diff --git a/pkg/schema/field/number_test.go b/pkg/schema/field/number_test.go index c9739a758e35551abf38379bc121db7363a30d8e..82a4c219ab39323a8a114074b1c4d98f39581497 100644 --- a/pkg/schema/field/number_test.go +++ b/pkg/schema/field/number_test.go @@ -14,21 +14,25 @@ func TestNumberField_Decode(t *testing.T) { want interface{} wantErr bool }{ - {"Correct", Number("int"), int64(2), int64(2), false}, // #0 - {"Correct", Number("int"), 2.2, int64(2), false}, // #1 - {"Correct", Number("int"), 2, int64(2), false}, // #2 - {"Correct", Number("int"), float32(2.2), int64(2), false}, // #3 - {"Correct", Number("int"), float64(2.6), int64(3), false}, // #4 - {"Correct", Number("int"), 2.6, int64(3), false}, // #5 - {"Convert error", Number(NumberFormatInt), math.MaxFloat64, nil, true}, // #6 - {"Convert error", Number(NumberFormatInt), float64(-9223372036854776000.0), nil, true}, // #7 - {"Convert error", Number(NumberFormatInt), float64(9223372036854776000.0), nil, true}, // #8 + {"Correct", Number("int"), int64(2), int64(2), false}, // #0 + {"Correct", Number("int"), 2.2, int64(2), false}, // #1 + {"Correct", Number("int"), 2, int64(2), false}, // #2 + {"Correct", Number("int"), float32(2.2), int64(2), false}, // #3 + {"Correct", Number("int"), float64(2.6), int64(3), false}, // #4 + {"Correct", Number("int"), 2.6, int64(3), false}, // #5 + {"MaxInt64", Number(NumberFormatInt), int64(math.MaxInt64), int64(math.MaxInt64), false}, // #6 + {"MinInt64", Number(NumberFormatInt), int64(math.MinInt64), int64(math.MinInt64), false}, // #7 + {"Convert error", Number(NumberFormatInt), math.MaxFloat64, nil, true}, // #8 + {"Convert error", Number(NumberFormatInt), -9223372036854776000.0, nil, true}, // #9 + {"Convert error", Number(NumberFormatInt), 9223372036854776000.0, nil, true}, // #10 + {"Convert error", Number(NumberFormatInt), float64(math.MaxInt64), nil, true}, // #11 + {"Convert error", Number(NumberFormatInt), float64(math.MinInt64), nil, true}, // #12 - {"Correct", Number("float"), int8(2), 2.0, false}, // #9 - {"Correct", Number("float"), 2.2, 2.2, false}, // #10 - {"Correct", Number("float"), 2, 2.0, false}, // #11 - {"Correct", Number("float"), float32(2.2), 2.200000047683716, false}, // #12 - {"Correct", Number("float"), int64(2), 2.0, false}, // #13 + {"Correct", Number("float"), int8(2), 2.0, false}, // #13 + {"Correct", Number("float"), 2.2, 2.2, false}, // #14 + {"Correct", Number("float"), 2, 2.0, false}, // #15 + {"Correct", Number("float"), float32(2.2), 2.200000047683716, false}, // #16 + {"Correct", Number("float"), int64(2), 2.0, false}, // #17 {"Wrong data", Number("int"), "", nil, true}, // #0 {"Wrong data", Number("int"), []byte(""), nil, true}, // #1