1515package aggregation
1616
1717import (
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+
2631func 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