mirror of https://github.com/stretchr/testify.git
parent
dfba5a4e3a
commit
012967472b
|
@ -1245,6 +1245,9 @@ func calcRelativeError(expected, actual interface{}) (float64, error) {
|
||||||
if !aok {
|
if !aok {
|
||||||
return 0, fmt.Errorf("expected value %q cannot be converted to float", expected)
|
return 0, fmt.Errorf("expected value %q cannot be converted to float", expected)
|
||||||
}
|
}
|
||||||
|
if math.IsNaN(af) {
|
||||||
|
return 0, errors.New("expected value must not be NaN")
|
||||||
|
}
|
||||||
if af == 0 {
|
if af == 0 {
|
||||||
return 0, fmt.Errorf("expected value must have a value other than zero to calculate the relative error")
|
return 0, fmt.Errorf("expected value must have a value other than zero to calculate the relative error")
|
||||||
}
|
}
|
||||||
|
@ -1252,6 +1255,9 @@ func calcRelativeError(expected, actual interface{}) (float64, error) {
|
||||||
if !bok {
|
if !bok {
|
||||||
return 0, fmt.Errorf("actual value %q cannot be converted to float", actual)
|
return 0, fmt.Errorf("actual value %q cannot be converted to float", actual)
|
||||||
}
|
}
|
||||||
|
if math.IsNaN(bf) {
|
||||||
|
return 0, errors.New("actual value must not be NaN")
|
||||||
|
}
|
||||||
|
|
||||||
return math.Abs(af-bf) / math.Abs(af), nil
|
return math.Abs(af-bf) / math.Abs(af), nil
|
||||||
}
|
}
|
||||||
|
@ -1261,6 +1267,9 @@ func InEpsilon(t TestingT, expected, actual interface{}, epsilon float64, msgAnd
|
||||||
if h, ok := t.(tHelper); ok {
|
if h, ok := t.(tHelper); ok {
|
||||||
h.Helper()
|
h.Helper()
|
||||||
}
|
}
|
||||||
|
if math.IsNaN(epsilon) {
|
||||||
|
return Fail(t, "epsilon must not be NaN")
|
||||||
|
}
|
||||||
actualEpsilon, err := calcRelativeError(expected, actual)
|
actualEpsilon, err := calcRelativeError(expected, actual)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Fail(t, err.Error(), msgAndArgs...)
|
return Fail(t, err.Error(), msgAndArgs...)
|
||||||
|
|
|
@ -1458,6 +1458,9 @@ func TestInEpsilon(t *testing.T) {
|
||||||
{0.1, -0.1, 1.99},
|
{0.1, -0.1, 1.99},
|
||||||
{0, 0.1, 2}, // expected must be different to zero
|
{0, 0.1, 2}, // expected must be different to zero
|
||||||
{time.Second, time.Second + 10*time.Millisecond, 0.002},
|
{time.Second, time.Second + 10*time.Millisecond, 0.002},
|
||||||
|
{math.NaN(), 0, 1},
|
||||||
|
{0, math.NaN(), 1},
|
||||||
|
{0, 0, math.NaN()},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tc := range cases {
|
for _, tc := range cases {
|
||||||
|
|
Loading…
Reference in New Issue