requireEqualSeriesSets is like require.Equal for SeriesSets and supports NaN.
(t *testing.T, expected []TimeSeries, actual SeriesSet)
| 3567 | |
| 3568 | // requireEqualSeriesSets is like require.Equal for SeriesSets and supports NaN. |
| 3569 | func requireEqualSeriesSets(t *testing.T, expected []TimeSeries, actual SeriesSet) { |
| 3570 | require.Equal(t, len(expected), len(actual)) |
| 3571 | |
| 3572 | for _, eTS := range expected { |
| 3573 | k := eTS.Labels.MapKey() |
| 3574 | aTS, ok := actual[k] |
| 3575 | require.True(t, ok, "expected series %s to be in result", k) |
| 3576 | require.Equal(t, eTS.Labels, aTS.Labels, "expected labels %v, got %v", eTS.Labels, aTS.Labels) |
| 3577 | |
| 3578 | eSamples := eTS.Values |
| 3579 | aSamples := aTS.Values |
| 3580 | |
| 3581 | require.Equal(t, len(eSamples), len(aSamples), "expected %d samples for %s, got %d", len(eSamples), k, len(aSamples)) |
| 3582 | for i := range eSamples { |
| 3583 | if math.IsNaN(eSamples[i]) { |
| 3584 | require.True(t, math.IsNaN(aSamples[i])) |
| 3585 | } else { |
| 3586 | require.InDelta(t, eSamples[i], aSamples[i], 0.001, "expected %v, got %v, for %s[%d]", eSamples[i], aSamples[i], k, i) |
| 3587 | } |
| 3588 | } |
| 3589 | } |
| 3590 | } |
| 3591 | |
| 3592 | func TestHistogramAggregator_LatencySpike(t *testing.T) { |
| 3593 | // Simulate a latency spike: normal traffic, then a spike, then normal again |
no test coverage detected