Also fix handling NaN consistently

Signed-off-by: Joshua Hesketh <josh@nitrotech.org>
This commit is contained in:
Joshua Hesketh 2024-09-19 21:46:03 +10:00
parent c55d83c933
commit 12094055ff
2 changed files with 42 additions and 1 deletions

View file

@ -2884,9 +2884,13 @@ func (ev *evaluator) aggregation(e *parser.AggregateExpr, q float64, inputMatrix
}
case parser.STDVAR, parser.STDDEV:
if h == nil {
fv := float64(0)
if math.IsNaN(f) {
fv = math.NaN()
}
*group = groupedAggregation{
seen: true,
floatValue: 0,
floatValue: fv,
floatMean: f,
incompatibleHistograms: false,
groupCount: 1,

View file

@ -599,3 +599,40 @@ eval instant at 0m stddev (series)
eval instant at 0m stdvar (series)
{} 0.25
clear
load 5m
series{label="a"} 1
series{label="b"} 2
series{label="c"} NaN
eval instant at 0m stddev (series)
{} NaN
eval instant at 0m stdvar (series)
{} NaN
clear
load 5m
series{label="a"} NaN
series{label="b"} 1
series{label="c"} 2
eval instant at 0m stddev (series)
{} NaN
eval instant at 0m stdvar (series)
{} NaN
clear
load 5m
series NaN
eval instant at 0m stddev (series)
{} NaN
eval instant at 0m stdvar (series)
{} NaN