Skip to content

Commit c345628

Browse files
authored
Use InDelta for floating point comparisons for Histogram Unittest (#1868)
1 parent aed725a commit c345628

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

plugins/outputs/cloudwatch/convert_otel_test.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package cloudwatch
55

66
import (
7+
"math"
78
"strconv"
89
"strings"
910
"testing"
@@ -1000,20 +1001,28 @@ func TestConvertOtelExponentialHistogram(t *testing.T) {
10001001
},
10011002
}
10021003

1004+
// Since some of the values could be zero, we can't use InEpsilon (requires non-zero values to form relative error)
1005+
// We calculate the relative error directly and then use InDelta instead
1006+
const epsilon = 0.0001
1007+
10031008
for _, tc := range testCases {
10041009
t.Run(tc.name, func(_ *testing.T) {
10051010
dps := convertOtelExponentialHistogramDataPoints(tc.histogramDPS, "foo", "none", 1, entity)
10061011

10071012
assert.Equal(t, 1, len(dps))
10081013
for i, expectedDP := range tc.expected {
1009-
assert.Equal(t, dps[i].distribution.Maximum(), *expectedDP.StatisticValues.Maximum, "datapoint Maximum mismatch at index %d", i)
1010-
assert.Equal(t, dps[i].distribution.Minimum(), *expectedDP.StatisticValues.Minimum, "datapoint Minimum mismatch at index %d", i)
1011-
assert.Equal(t, dps[i].distribution.Sum(), *expectedDP.StatisticValues.Sum, "datapoint Sum mismatch at index %d", i)
1014+
assert.InDelta(t, *expectedDP.StatisticValues.Maximum, dps[i].distribution.Maximum(), math.Abs(*expectedDP.StatisticValues.Maximum)*epsilon, "datapoint Maximum mismatch at index %d", i)
1015+
assert.InDelta(t, *expectedDP.StatisticValues.Minimum, dps[i].distribution.Minimum(), math.Abs(*expectedDP.StatisticValues.Minimum)*epsilon, "datapoint Minimum mismatch at index %d", i)
1016+
assert.InDelta(t, *expectedDP.StatisticValues.Sum, dps[i].distribution.Sum(), math.Abs(*expectedDP.StatisticValues.Sum)*epsilon, "datapoint Sum mismatch at index %d", i)
10121017
assert.Equal(t, dps[i].distribution.SampleCount(), *expectedDP.StatisticValues.SampleCount, "datapoint Samplecount mismatch at index %d", i)
10131018

10141019
values, counts := dps[i].distribution.ValuesAndCounts()
1015-
assert.Equal(t, tc.expectedValues[i], values, "datapoint values mismatch at index %d", i)
1016-
assert.Equal(t, tc.expectedCounts[i], counts, "datapoint counts mismatch at index %d", i)
1020+
for j, expectedValue := range tc.expectedValues[i] {
1021+
assert.InDelta(t, expectedValue, values[j], math.Abs(expectedValue)*epsilon, "datapoint values mismatch at index %d, value %d", i, j)
1022+
}
1023+
for j, expectedCount := range tc.expectedCounts[i] {
1024+
assert.InDelta(t, expectedCount, counts[j], math.Abs(expectedCount)*epsilon, "datapoint counts mismatch at index %d, count %d", i, j)
1025+
}
10171026
}
10181027
})
10191028
}

0 commit comments

Comments
 (0)