22
33#include < gtest/gtest.h>
44
5+ #include < forward_list>
56#include < limits>
67#include < memory>
78#include < stdexcept>
@@ -81,7 +82,7 @@ TEST(HistogramTest, cumulative_bucket_count) {
8182 EXPECT_EQ (h.bucket .at (2 ).cumulative_count , 7U );
8283}
8384
84- TEST (HistogramTest, observe_multiple_test_bucket_counts ) {
85+ TEST (HistogramTest, observe_multiple_test_bucket_counts_1 ) {
8586 Histogram histogram{{1 , 2 }};
8687 histogram.ObserveMultiple ({5 , 9 , 3 }, 20 );
8788 histogram.ObserveMultiple ({0 , 20 , 6 }, 34 );
@@ -93,6 +94,20 @@ TEST(HistogramTest, observe_multiple_test_bucket_counts) {
9394 EXPECT_EQ (h.bucket .at (2 ).cumulative_count , 43U );
9495}
9596
97+ TEST (HistogramTest, observe_multiple_test_bucket_counts_2) {
98+ Histogram histogram{{1 , 2 }};
99+ const std::forward_list<double > values1 = {5 , 9 , 3 };
100+ const std::forward_list<double > values2 = {0 , 20 , 6 };
101+ histogram.ObserveMultiple (values1.begin (), values1.end (), 20 );
102+ histogram.ObserveMultiple (values2.begin (), values2.end (), 34 );
103+ auto metric = histogram.Collect ();
104+ auto h = metric.histogram ;
105+ ASSERT_EQ (h.bucket .size (), 3U );
106+ EXPECT_EQ (h.bucket .at (0 ).cumulative_count , 5U );
107+ EXPECT_EQ (h.bucket .at (1 ).cumulative_count , 34U );
108+ EXPECT_EQ (h.bucket .at (2 ).cumulative_count , 43U );
109+ }
110+
96111TEST (HistogramTest, observe_multiple_test_total_sum) {
97112 Histogram histogram{{1 , 2 }};
98113 histogram.ObserveMultiple ({5 , 9 , 3 }, 20 );
@@ -103,13 +118,23 @@ TEST(HistogramTest, observe_multiple_test_total_sum) {
103118 EXPECT_EQ (h.sample_sum , 54 );
104119}
105120
106- TEST (HistogramTest, observe_multiple_test_length_error ) {
121+ TEST (HistogramTest, observe_multiple_test_length_error1 ) {
107122 Histogram histogram{{1 , 2 }};
108123 // 2 bucket boundaries means there are 3 buckets, so giving just 2 bucket
109124 // increments should result in a length_error.
110125 ASSERT_THROW (histogram.ObserveMultiple ({5 , 9 }, 20 ), std::length_error);
111126}
112127
128+ TEST (HistogramTest, observe_multiple_test_length_error2) {
129+ Histogram histogram{{1 , 2 }};
130+ const std::forward_list<double > values1 = {5 , 9 };
131+ ASSERT_THROW (histogram.ObserveMultiple (values1.begin (), values1.end (), 20 ),
132+ std::length_error);
133+ const std::forward_list<double > values2 = {5 , 9 , 5 , 6 };
134+ ASSERT_THROW (histogram.ObserveMultiple (values2.begin (), values2.end (), 20 ),
135+ std::length_error);
136+ }
137+
113138TEST (HistogramTest, sum_can_go_down) {
114139 Histogram histogram{{1 }};
115140 auto metric1 = histogram.Collect ();
0 commit comments