test(chunkenc): appending histograms with empty buckets
Signed-off-by: György Krajcsovits <gyorgy.krajcsovits@grafana.com>
This commit is contained in:
		
							parent
							
								
									46acc974c0
								
							
						
					
					
						commit
						1ed7d20951
					
				|  | @ -1420,3 +1420,41 @@ func assertFirstFloatHistogramSampleHint(t *testing.T, chunk Chunk, expected his | ||||||
| 	_, v := it.AtFloatHistogram(nil) | 	_, v := it.AtFloatHistogram(nil) | ||||||
| 	require.Equal(t, expected, v.CounterResetHint) | 	require.Equal(t, expected, v.CounterResetHint) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func TestFloatHistogramEmptyBuckets(t *testing.T) { | ||||||
|  | 	h1 := &histogram.FloatHistogram{ | ||||||
|  | 		PositiveSpans: []histogram.Span{ | ||||||
|  | 			{Offset: -19, Length: 2}, | ||||||
|  | 			{Offset: 1, Length: 2}, | ||||||
|  | 		}, | ||||||
|  | 		PositiveBuckets: []float64{0, 0, 0, 0}, | ||||||
|  | 	} | ||||||
|  | 	c := NewFloatHistogramChunk() | ||||||
|  | 	app, err := c.Appender() | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 	_, _, _, err = app.AppendFloatHistogram(nil, 1, h1, false) | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 
 | ||||||
|  | 	h2 := &histogram.FloatHistogram{ | ||||||
|  | 		PositiveSpans: []histogram.Span{ | ||||||
|  | 			{Offset: -19, Length: 1}, | ||||||
|  | 			{Offset: 4, Length: 1}, | ||||||
|  | 			{Offset: 3, Length: 1}, | ||||||
|  | 		}, | ||||||
|  | 		PositiveBuckets: []float64{0, 0, 0}, | ||||||
|  | 	} | ||||||
|  | 	newC, recoded, _, err := app.AppendFloatHistogram(nil, 2, h2, false) | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 	require.True(t, recoded) | ||||||
|  | 	require.NotNil(t, newC) | ||||||
|  | 
 | ||||||
|  | 	it := newC.Iterator(nil) | ||||||
|  | 	require.Equal(t, ValFloatHistogram, it.Next()) | ||||||
|  | 	_, h := it.AtFloatHistogram(nil) | ||||||
|  | 	require.NoError(t, h.Validate()) | ||||||
|  | 	require.Equal(t, ValFloatHistogram, it.Next()) | ||||||
|  | 	_, h = it.AtFloatHistogram(nil) | ||||||
|  | 	require.NoError(t, h.Validate()) | ||||||
|  | 	require.Equal(t, ValNone, it.Next()) | ||||||
|  | 	require.NoError(t, it.Err()) | ||||||
|  | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue