Skip to content

Commit 4c7ca1a

Browse files
committed
test(sdk-metrics): test that NaN is ignored by histogram accumulations
1 parent d046310 commit 4c7ca1a

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

packages/sdk-metrics/test/aggregator/ExponentialHistogram.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,18 @@ describe('ExponentialHistogramAccumulation', () => {
215215
}
216216
});
217217
});
218+
219+
it('ignores NaN', () => {
220+
const accumulation = new ExponentialHistogramAccumulation([0, 0], 1);
221+
accumulation.record(NaN);
222+
assert.strictEqual(accumulation.scale, 0);
223+
assert.strictEqual(accumulation.max, -Infinity);
224+
assert.strictEqual(accumulation.min, Infinity);
225+
assert.strictEqual(accumulation.sum, 0);
226+
assert.strictEqual(accumulation.count, 0);
227+
assert.deepStrictEqual(getCounts(accumulation.positive), []);
228+
assert.deepStrictEqual(getCounts(accumulation.negative), []);
229+
});
218230
});
219231
describe('merge', () => {
220232
it('handles simple (even) case', () => {

packages/sdk-metrics/test/aggregator/Histogram.test.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,18 @@ describe('HistogramAccumulation', () => {
257257
accumulation.record(value);
258258
}
259259
});
260+
261+
it('ignores NaN', () => {
262+
const accumulation = new HistogramAccumulation([0, 0], [1, 10, 100]);
263+
accumulation.record(NaN);
264+
265+
const pointValue = accumulation.toPointValue();
266+
assert.strictEqual(pointValue.max, -Infinity);
267+
assert.strictEqual(pointValue.min, Infinity);
268+
assert.strictEqual(pointValue.sum, 0);
269+
assert.strictEqual(pointValue.count, 0);
270+
assert.deepStrictEqual(pointValue.buckets.counts, [0, 0, 0, 0]);
271+
});
260272
});
261273

262274
describe('setStartTime', () => {

0 commit comments

Comments
 (0)