| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 
							- #include <limits>
 
- #include "gmock/gmock.h"
 
- #include "lib/histogram.h"
 
- using namespace testing;
 
- using namespace prometheus;
 
- class HistogramTest : public Test {};
 
- TEST_F(HistogramTest, initialize_with_zero) {
 
-   Histogram histogram{{}};
 
-   auto metric = histogram.Collect();
 
-   ASSERT_TRUE(metric.has_histogram());
 
-   auto h = metric.histogram();
 
-   EXPECT_EQ(h.sample_count(), 0);
 
-   EXPECT_EQ(h.sample_sum(), 0);
 
- }
 
- TEST_F(HistogramTest, sample_count) {
 
-   Histogram histogram{{1}};
 
-   histogram.Observe(0);
 
-   histogram.Observe(200);
 
-   auto metric = histogram.Collect();
 
-   ASSERT_TRUE(metric.has_histogram());
 
-   auto h = metric.histogram();
 
-   EXPECT_EQ(h.sample_count(), 2);
 
- }
 
- TEST_F(HistogramTest, sample_sum) {
 
-   Histogram histogram{{1}};
 
-   histogram.Observe(0);
 
-   histogram.Observe(1);
 
-   histogram.Observe(101);
 
-   auto metric = histogram.Collect();
 
-   ASSERT_TRUE(metric.has_histogram());
 
-   auto h = metric.histogram();
 
-   EXPECT_EQ(h.sample_sum(), 102);
 
- }
 
- TEST_F(HistogramTest, bucket_size) {
 
-   Histogram histogram{{1, 2}};
 
-   auto metric = histogram.Collect();
 
-   ASSERT_TRUE(metric.has_histogram());
 
-   auto h = metric.histogram();
 
-   EXPECT_EQ(h.bucket_size(), 3);
 
- }
 
- TEST_F(HistogramTest, bucket_count) {
 
-   Histogram histogram{{1, 2}};
 
-   histogram.Observe(0);
 
-   histogram.Observe(0.5);
 
-   histogram.Observe(1.5);
 
-   histogram.Observe(1.5);
 
-   histogram.Observe(3);
 
-   auto metric = histogram.Collect();
 
-   ASSERT_TRUE(metric.has_histogram());
 
-   auto h = metric.histogram();
 
-   ASSERT_EQ(h.bucket_size(), 3);
 
-   auto firstBucket = h.bucket(0);
 
-   EXPECT_EQ(firstBucket.cumulative_count(), 2);
 
-   auto secondBucket = h.bucket(1);
 
-   EXPECT_EQ(secondBucket.cumulative_count(), 2);
 
-   auto thirdBucket = h.bucket(2);
 
-   EXPECT_EQ(thirdBucket.cumulative_count(), 1);
 
- }
 
- TEST_F(HistogramTest, bucket_bounds) {
 
-   Histogram histogram{{1, 2}};
 
-   auto metric = histogram.Collect();
 
-   ASSERT_TRUE(metric.has_histogram());
 
-   auto h = metric.histogram();
 
-   ASSERT_EQ(h.bucket_size(), 3);
 
-   EXPECT_EQ(h.bucket(0).upper_bound(), 1);
 
-   EXPECT_EQ(h.bucket(1).upper_bound(), 2);
 
-   EXPECT_EQ(h.bucket(2).upper_bound(), std::numeric_limits<double>::infinity());
 
- }
 
 
  |