MCPcopy
hub / github.com/prometheus/prometheus / TestPopulateWithDelSeriesIterator_WithST

Function TestPopulateWithDelSeriesIterator_WithST

tsdb/querier_test.go:2065–2146  ·  view source on GitHub ↗

TestPopulateWithDelSeriesIterator_WithST tests that ST (start time) values are correctly preserved when iterating through chunks with ST support.

(t *testing.T)

Source from the content-addressed store, hash-verified

2063// TestPopulateWithDelSeriesIterator_WithST tests that ST (start time) values are
2064// correctly preserved when iterating through chunks with ST support.
2065func TestPopulateWithDelSeriesIterator_WithST(t *testing.T) {
2066 // Samples with non-zero ST values to test ST preservation.
2067 samplesWithST := [][]chunks.Sample{
2068 {
2069 sample{st: 100, t: 1000, f: 1.0},
2070 sample{st: 200, t: 2000, f: 2.0},
2071 sample{st: 300, t: 3000, f: 3.0},
2072 },
2073 }
2074
2075 // Samples with varying ST patterns.
2076 samplesVaryingST := [][]chunks.Sample{
2077 {
2078 sample{st: 0, t: 1000, f: 1.0}, // st=0
2079 sample{st: 1500, t: 1500, f: 1.5}, // st=t
2080 sample{st: 1900, t: 2000, f: 2.0}, // st=t-100
2081 sample{st: 500, t: 3000, f: 3.0}, // st < t
2082 },
2083 }
2084
2085 cases := []struct {
2086 name string
2087 samples [][]chunks.Sample
2088 expected []chunks.Sample
2089 }{
2090 {
2091 name: "all samples have non-zero ST",
2092 samples: samplesWithST,
2093 expected: []chunks.Sample{
2094 sample{st: 100, t: 1000, f: 1.0},
2095 sample{st: 200, t: 2000, f: 2.0},
2096 sample{st: 300, t: 3000, f: 3.0},
2097 },
2098 },
2099 {
2100 name: "samples with varying ST patterns",
2101 samples: samplesVaryingST,
2102 expected: []chunks.Sample{
2103 sample{st: 0, t: 1000, f: 1.0},
2104 sample{st: 1500, t: 1500, f: 1.5},
2105 sample{st: 1900, t: 2000, f: 2.0},
2106 sample{st: 500, t: 3000, f: 3.0},
2107 },
2108 },
2109 }
2110
2111 for _, tc := range cases {
2112 t.Run(tc.name, func(t *testing.T) {
2113 // Test with chunks (not iterables).
2114 t.Run("chunks", func(t *testing.T) {
2115 f, chkMetas := createFakeReaderAndNotPopulatedChunks(tc.samples...)
2116 it := &populateWithDelSeriesIterator{}
2117 it.reset(ulid.ULID{}, f, chkMetas, nil)
2118
2119 var result []chunks.Sample
2120 for it.Next() != chunkenc.ValNone {
2121 st := it.AtST()
2122 ts, v := it.At()

Callers

nothing calls this directly

Calls 8

resetMethod · 0.95
NextMethod · 0.95
AtSTMethod · 0.95
AtMethod · 0.95
ErrMethod · 0.95
RunMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…