improve: number range compare left and righ value (#2315)

Co-authored-by: wanglonghui7 <wanglonghui7@jd.com>
This commit is contained in:
lowang-bh
2022-08-28 17:17:22 +08:00
committed by GitHub
parent 813625d995
commit 1b477bbef9
2 changed files with 24 additions and 0 deletions

View File

@@ -261,6 +261,26 @@ func TestMarshal_RangeOut(t *testing.T) {
} }
} }
func TestMarshal_RangeIllegal(t *testing.T) {
tests := []interface{}{
struct {
Int int `json:"int,range=[3:1]"`
}{
Int: 2,
},
struct {
Int int `json:"int,range=(3:1]"`
}{
Int: 2,
},
}
for _, test := range tests {
_, err := Marshal(test)
assert.Equal(t, err, errNumberRange)
}
}
func TestMarshal_FromString(t *testing.T) { func TestMarshal_FromString(t *testing.T) {
v := struct { v := struct {
Age int `json:"age,string"` Age int `json:"age,string"`

View File

@@ -311,6 +311,10 @@ func parseNumberRange(str string) (*numberRange, error) {
right = math.MaxFloat64 right = math.MaxFloat64
} }
if left >= right {
return nil, errNumberRange
}
return &numberRange{ return &numberRange{
left: left, left: left,
leftInclude: leftInclude, leftInclude: leftInclude,