87 std::vector<std::chrono::nanoseconds> values = {
88 std::chrono::nanoseconds(100),
89 std::chrono::nanoseconds(200),
90 std::chrono::nanoseconds(300),
91 std::chrono::nanoseconds(400),
92 std::chrono::nanoseconds(500)
99 EXPECT_EQ(p0, std::chrono::nanoseconds(100));
100 EXPECT_EQ(p50, std::chrono::nanoseconds(300));
101 EXPECT_EQ(p100, std::chrono::nanoseconds(500));
109 std::vector<double> empty;
112 EXPECT_EQ(stats.count, 0);
113 EXPECT_DOUBLE_EQ(stats.min, 0.0);
114 EXPECT_DOUBLE_EQ(stats.max, 0.0);
115 EXPECT_DOUBLE_EQ(stats.mean, 0.0);
116 EXPECT_DOUBLE_EQ(stats.total, 0.0);
120 std::vector<double> single = {42.0};
123 EXPECT_EQ(stats.count, 1);
124 EXPECT_DOUBLE_EQ(stats.min, 42.0);
125 EXPECT_DOUBLE_EQ(stats.max, 42.0);
126 EXPECT_DOUBLE_EQ(stats.mean, 42.0);
127 EXPECT_DOUBLE_EQ(stats.median, 42.0);
128 EXPECT_DOUBLE_EQ(stats.total, 42.0);
132 std::vector<double> values = {1.0, 2.0, 3.0, 4.0, 5.0};
135 EXPECT_EQ(stats.count, 5);
136 EXPECT_DOUBLE_EQ(stats.min, 1.0);
137 EXPECT_DOUBLE_EQ(stats.max, 5.0);
138 EXPECT_DOUBLE_EQ(stats.mean, 3.0);
139 EXPECT_DOUBLE_EQ(stats.median, 3.0);
140 EXPECT_DOUBLE_EQ(stats.total, 15.0);
144 std::vector<double> values = {5.0, 1.0, 3.0, 2.0, 4.0};
147 EXPECT_EQ(stats.count, 5);
148 EXPECT_DOUBLE_EQ(stats.min, 1.0);
149 EXPECT_DOUBLE_EQ(stats.max, 5.0);
150 EXPECT_DOUBLE_EQ(stats.mean, 3.0);
151 EXPECT_DOUBLE_EQ(stats.median, 3.0);
155 std::vector<double> values;
156 for (
int i = 1; i <= 100; ++i) {
157 values.push_back(
static_cast<double>(i));
161 EXPECT_EQ(stats.count, 100);
162 EXPECT_DOUBLE_EQ(stats.min, 1.0);
163 EXPECT_DOUBLE_EQ(stats.max, 100.0);
164 EXPECT_DOUBLE_EQ(stats.mean, 50.5);
166 EXPECT_GE(stats.p95, 94.0);
167 EXPECT_LE(stats.p95, 96.0);
168 EXPECT_GE(stats.p99, 98.0);
169 EXPECT_LE(stats.p99, 100.0);
177 std::vector<std::chrono::nanoseconds> empty;
180 EXPECT_EQ(stats.count, 0);
181 EXPECT_EQ(stats.min, std::chrono::nanoseconds::zero());
182 EXPECT_EQ(stats.max, std::chrono::nanoseconds::zero());
183 EXPECT_EQ(stats.mean, std::chrono::nanoseconds::zero());
187 std::vector<std::chrono::nanoseconds> values = {
188 std::chrono::nanoseconds(1000000),
189 std::chrono::nanoseconds(2000000),
190 std::chrono::nanoseconds(3000000),
191 std::chrono::nanoseconds(4000000),
192 std::chrono::nanoseconds(5000000)
196 EXPECT_EQ(stats.count, 5);
197 EXPECT_EQ(stats.min, std::chrono::nanoseconds(1000000));
198 EXPECT_EQ(stats.max, std::chrono::nanoseconds(5000000));
199 EXPECT_EQ(stats.mean, std::chrono::nanoseconds(3000000));
200 EXPECT_EQ(stats.median, std::chrono::nanoseconds(3000000));
201 EXPECT_EQ(stats.total, std::chrono::nanoseconds(15000000));
205 std::vector<std::chrono::nanoseconds> values;
206 for (
int i = 1; i <= 100; ++i) {
207 values.push_back(std::chrono::nanoseconds(i * 1000000));
211 EXPECT_EQ(stats.count, 100);
212 EXPECT_EQ(stats.min.count(), 1000000);
213 EXPECT_EQ(stats.max.count(), 100000000);
215 EXPECT_GE(stats.p95.count(), 94000000);
216 EXPECT_LE(stats.p95.count(), 96000000);
217 EXPECT_GE(stats.p99.count(), 98000000);
218 EXPECT_LE(stats.p99.count(), 100000000);
226 std::vector<double> sorted = {1.0, 2.0, 3.0, 4.0, 5.0};
229 EXPECT_EQ(stats.count, 5);
230 EXPECT_DOUBLE_EQ(stats.min, 1.0);
231 EXPECT_DOUBLE_EQ(stats.max, 5.0);
232 EXPECT_DOUBLE_EQ(stats.mean, 3.0);
236 std::vector<double> values = {5.0, 1.0, 3.0, 2.0, 4.0};
239 EXPECT_EQ(stats.count, 5);
240 EXPECT_DOUBLE_EQ(stats.min, 1.0);
241 EXPECT_DOUBLE_EQ(stats.max, 5.0);
243 EXPECT_DOUBLE_EQ(values[0], 1.0);
244 EXPECT_DOUBLE_EQ(values[4], 5.0);
252 std::vector<double> values = {-5.0, -3.0, -1.0, 1.0, 3.0, 5.0};
255 EXPECT_EQ(stats.count, 6);
256 EXPECT_DOUBLE_EQ(stats.min, -5.0);
257 EXPECT_DOUBLE_EQ(stats.max, 5.0);
258 EXPECT_DOUBLE_EQ(stats.mean, 0.0);
259 EXPECT_DOUBLE_EQ(stats.total, 0.0);
263 std::vector<double> values = {42.0, 42.0, 42.0, 42.0, 42.0};
266 EXPECT_EQ(stats.count, 5);
267 EXPECT_DOUBLE_EQ(stats.min, 42.0);
268 EXPECT_DOUBLE_EQ(stats.max, 42.0);
269 EXPECT_DOUBLE_EQ(stats.mean, 42.0);
270 EXPECT_DOUBLE_EQ(stats.median, 42.0);
271 EXPECT_DOUBLE_EQ(stats.p95, 42.0);
272 EXPECT_DOUBLE_EQ(stats.p99, 42.0);
276 std::vector<double> values;
277 for (
int i = 0; i < 10000; ++i) {
278 values.push_back(
static_cast<double>(i));
282 EXPECT_EQ(stats.count, 10000);
283 EXPECT_DOUBLE_EQ(stats.min, 0.0);
284 EXPECT_DOUBLE_EQ(stats.max, 9999.0);
285 EXPECT_DOUBLE_EQ(stats.mean, 4999.5);