22
33#include < gtest/gtest.h>
44
5+ #include < forward_list>
56#include < limits>
67#include < memory>
78#include < stdexcept>
@@ -89,7 +90,7 @@ TEST(HistogramTest, cumulative_bucket_count) {
8990 EXPECT_EQ (h.bucket .at (2 ).cumulative_count , 7U );
9091}
9192
92- TEST (HistogramTest, observe_multiple_test_bucket_counts ) {
93+ TEST (HistogramTest, observe_multiple_test_bucket_counts_1 ) {
9394 Histogram histogram{{1 , 2 }};
9495 histogram.ObserveMultiple ({5 , 9 , 3 }, 20 );
9596 histogram.ObserveMultiple ({0 , 20 , 6 }, 34 );
@@ -101,6 +102,20 @@ TEST(HistogramTest, observe_multiple_test_bucket_counts) {
101102 EXPECT_EQ (h.bucket .at (2 ).cumulative_count , 43U );
102103}
103104
105+ TEST (HistogramTest, observe_multiple_test_bucket_counts_2) {
106+ Histogram histogram{{1 , 2 }};
107+ const std::forward_list<double > values1 = {5 , 9 , 3 };
108+ const std::forward_list<double > values2 = {0 , 20 , 6 };
109+ histogram.ObserveMultiple (values1.begin (), values1.end (), 20 );
110+ histogram.ObserveMultiple (values2.begin (), values2.end (), 34 );
111+ auto metric = histogram.Collect ();
112+ auto h = metric.histogram ;
113+ ASSERT_EQ (h.bucket .size (), 3U );
114+ EXPECT_EQ (h.bucket .at (0 ).cumulative_count , 5U );
115+ EXPECT_EQ (h.bucket .at (1 ).cumulative_count , 34U );
116+ EXPECT_EQ (h.bucket .at (2 ).cumulative_count , 43U );
117+ }
118+
104119TEST (HistogramTest, observe_multiple_test_total_sum) {
105120 Histogram histogram{{1 , 2 }};
106121 histogram.ObserveMultiple ({5 , 9 , 3 }, 20 );
@@ -111,13 +126,23 @@ TEST(HistogramTest, observe_multiple_test_total_sum) {
111126 EXPECT_EQ (h.sample_sum , 54 );
112127}
113128
114- TEST (HistogramTest, observe_multiple_test_length_error ) {
129+ TEST (HistogramTest, observe_multiple_test_length_error1 ) {
115130 Histogram histogram{{1 , 2 }};
116131 // 2 bucket boundaries means there are 3 buckets, so giving just 2 bucket
117132 // increments should result in a length_error.
118133 ASSERT_THROW (histogram.ObserveMultiple ({5 , 9 }, 20 ), std::length_error);
119134}
120135
136+ TEST (HistogramTest, observe_multiple_test_length_error2) {
137+ Histogram histogram{{1 , 2 }};
138+ const std::forward_list<double > values1 = {5 , 9 };
139+ ASSERT_THROW (histogram.ObserveMultiple (values1.begin (), values1.end (), 20 ),
140+ std::length_error);
141+ const std::forward_list<double > values2 = {5 , 9 , 5 , 6 };
142+ ASSERT_THROW (histogram.ObserveMultiple (values2.begin (), values2.end (), 20 ),
143+ std::length_error);
144+ }
145+
121146TEST (HistogramTest, sum_can_go_down) {
122147 Histogram histogram{{1 }};
123148 auto metric1 = histogram.Collect ();
0 commit comments