Skip to content

Commit 2a6f320

Browse files
author
James Cor
committed
test with epsilon
1 parent ce10c83 commit 2a6f320

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

sql/expression/function/aggregation/std_test.go

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package aggregation
1616

1717
import (
18+
"math"
1819
"testing"
1920

2021
"github.com/stretchr/testify/require"
@@ -23,6 +24,10 @@ import (
2324
"github.com/dolthub/go-mysql-server/sql/expression"
2425
)
2526

27+
func isFloatEqual(a, b float64) bool {
28+
return math.Abs(a - b) < 1e-9
29+
}
30+
2631
func TestStd(t *testing.T) {
2732
sum := NewStdDevPop(expression.NewGetField(0, nil, "", false))
2833

@@ -90,7 +95,11 @@ func TestStd(t *testing.T) {
9095

9196
result, err := buf.Eval(sql.NewEmptyContext())
9297
require.NoError(err)
93-
require.Equal(tt.expected, result)
98+
if tt.expected == nil {
99+
require.Equal(tt.expected, nil)
100+
return
101+
}
102+
require.True(isFloatEqual(tt.expected.(float64), result.(float64)))
94103
})
95104
}
96105
}
@@ -162,7 +171,11 @@ func TestStdSamp(t *testing.T) {
162171

163172
result, err := buf.Eval(sql.NewEmptyContext())
164173
require.NoError(err)
165-
require.Equal(tt.expected, result)
174+
if tt.expected == nil {
175+
require.Equal(tt.expected, nil)
176+
return
177+
}
178+
require.True(isFloatEqual(tt.expected.(float64), result.(float64)))
166179
})
167180
}
168181
}
@@ -234,7 +247,11 @@ func TestVariance(t *testing.T) {
234247

235248
result, err := buf.Eval(sql.NewEmptyContext())
236249
require.NoError(err)
237-
require.Equal(tt.expected, result)
250+
if tt.expected == nil {
251+
require.Equal(tt.expected, nil)
252+
return
253+
}
254+
require.True(isFloatEqual(tt.expected.(float64), result.(float64)))
238255
})
239256
}
240257
}
@@ -306,7 +323,11 @@ func TestVarSamp(t *testing.T) {
306323

307324
result, err := buf.Eval(sql.NewEmptyContext())
308325
require.NoError(err)
309-
require.Equal(tt.expected, result)
326+
if tt.expected == nil {
327+
require.Equal(tt.expected, nil)
328+
return
329+
}
330+
require.True(isFloatEqual(tt.expected.(float64), result.(float64)))
310331
})
311332
}
312333
}

0 commit comments

Comments
 (0)