Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Side by Side Diff: base/metrics/histogram_unittest.cc

Issue 17451016: [UMA] Remove redundant bucket_count variable from base::Histogram. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename variables to be clearer Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/metrics/histogram_base.h ('k') | base/metrics/sample_vector.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Test of Histogram class 5 // Test of Histogram class
6 6
7 #include <climits> 7 #include <climits>
8 #include <algorithm> 8 #include <algorithm>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 "DuplicatedHistogram", 1, 101, 102, HistogramBase::kNoFlags); 83 "DuplicatedHistogram", 1, 101, 102, HistogramBase::kNoFlags);
84 84
85 scoped_ptr<HistogramSamples> samples = histogram->SnapshotSamples(); 85 scoped_ptr<HistogramSamples> samples = histogram->SnapshotSamples();
86 EXPECT_EQ(2, samples->TotalCount()); 86 EXPECT_EQ(2, samples->TotalCount());
87 EXPECT_EQ(2, samples->GetCount(10)); 87 EXPECT_EQ(2, samples->GetCount(10));
88 } 88 }
89 89
90 TEST_F(HistogramTest, ExponentialRangesTest) { 90 TEST_F(HistogramTest, ExponentialRangesTest) {
91 // Check that we got a nice exponential when there was enough rooom. 91 // Check that we got a nice exponential when there was enough rooom.
92 BucketRanges ranges(9); 92 BucketRanges ranges(9);
93 Histogram::InitializeBucketRanges(1, 64, 8, &ranges); 93 Histogram::InitializeBucketRanges(1, 64, &ranges);
94 EXPECT_EQ(0, ranges.range(0)); 94 EXPECT_EQ(0, ranges.range(0));
95 int power_of_2 = 1; 95 int power_of_2 = 1;
96 for (int i = 1; i < 8; i++) { 96 for (int i = 1; i < 8; i++) {
97 EXPECT_EQ(power_of_2, ranges.range(i)); 97 EXPECT_EQ(power_of_2, ranges.range(i));
98 power_of_2 *= 2; 98 power_of_2 *= 2;
99 } 99 }
100 EXPECT_EQ(HistogramBase::kSampleType_MAX, ranges.range(8)); 100 EXPECT_EQ(HistogramBase::kSampleType_MAX, ranges.range(8));
101 101
102 // Check the corresponding Histogram will use the correct ranges. 102 // Check the corresponding Histogram will use the correct ranges.
103 Histogram* histogram = static_cast<Histogram*>( 103 Histogram* histogram = static_cast<Histogram*>(
104 Histogram::FactoryGet("Histogram", 1, 64, 8, HistogramBase::kNoFlags)); 104 Histogram::FactoryGet("Histogram", 1, 64, 8, HistogramBase::kNoFlags));
105 EXPECT_TRUE(ranges.Equals(histogram->bucket_ranges())); 105 EXPECT_TRUE(ranges.Equals(histogram->bucket_ranges()));
106 106
107 // When bucket count is limited, exponential ranges will partially look like 107 // When bucket count is limited, exponential ranges will partially look like
108 // linear. 108 // linear.
109 BucketRanges ranges2(16); 109 BucketRanges ranges2(16);
110 Histogram::InitializeBucketRanges(1, 32, 15, &ranges2); 110 Histogram::InitializeBucketRanges(1, 32, &ranges2);
111 111
112 EXPECT_EQ(0, ranges2.range(0)); 112 EXPECT_EQ(0, ranges2.range(0));
113 EXPECT_EQ(1, ranges2.range(1)); 113 EXPECT_EQ(1, ranges2.range(1));
114 EXPECT_EQ(2, ranges2.range(2)); 114 EXPECT_EQ(2, ranges2.range(2));
115 EXPECT_EQ(3, ranges2.range(3)); 115 EXPECT_EQ(3, ranges2.range(3));
116 EXPECT_EQ(4, ranges2.range(4)); 116 EXPECT_EQ(4, ranges2.range(4));
117 EXPECT_EQ(5, ranges2.range(5)); 117 EXPECT_EQ(5, ranges2.range(5));
118 EXPECT_EQ(6, ranges2.range(6)); 118 EXPECT_EQ(6, ranges2.range(6));
119 EXPECT_EQ(7, ranges2.range(7)); 119 EXPECT_EQ(7, ranges2.range(7));
120 EXPECT_EQ(9, ranges2.range(8)); 120 EXPECT_EQ(9, ranges2.range(8));
121 EXPECT_EQ(11, ranges2.range(9)); 121 EXPECT_EQ(11, ranges2.range(9));
122 EXPECT_EQ(14, ranges2.range(10)); 122 EXPECT_EQ(14, ranges2.range(10));
123 EXPECT_EQ(17, ranges2.range(11)); 123 EXPECT_EQ(17, ranges2.range(11));
124 EXPECT_EQ(21, ranges2.range(12)); 124 EXPECT_EQ(21, ranges2.range(12));
125 EXPECT_EQ(26, ranges2.range(13)); 125 EXPECT_EQ(26, ranges2.range(13));
126 EXPECT_EQ(32, ranges2.range(14)); 126 EXPECT_EQ(32, ranges2.range(14));
127 EXPECT_EQ(HistogramBase::kSampleType_MAX, ranges2.range(15)); 127 EXPECT_EQ(HistogramBase::kSampleType_MAX, ranges2.range(15));
128 128
129 // Check the corresponding Histogram will use the correct ranges. 129 // Check the corresponding Histogram will use the correct ranges.
130 Histogram* histogram2 = static_cast<Histogram*>( 130 Histogram* histogram2 = static_cast<Histogram*>(
131 Histogram::FactoryGet("Histogram2", 1, 32, 15, HistogramBase::kNoFlags)); 131 Histogram::FactoryGet("Histogram2", 1, 32, 15, HistogramBase::kNoFlags));
132 EXPECT_TRUE(ranges2.Equals(histogram2->bucket_ranges())); 132 EXPECT_TRUE(ranges2.Equals(histogram2->bucket_ranges()));
133 } 133 }
134 134
135 TEST_F(HistogramTest, LinearRangesTest) { 135 TEST_F(HistogramTest, LinearRangesTest) {
136 BucketRanges ranges(9); 136 BucketRanges ranges(9);
137 LinearHistogram::InitializeBucketRanges(1, 7, 8, &ranges); 137 LinearHistogram::InitializeBucketRanges(1, 7, &ranges);
138 // Gets a nice linear set of bucket ranges. 138 // Gets a nice linear set of bucket ranges.
139 for (int i = 0; i < 8; i++) 139 for (int i = 0; i < 8; i++)
140 EXPECT_EQ(i, ranges.range(i)); 140 EXPECT_EQ(i, ranges.range(i));
141 EXPECT_EQ(HistogramBase::kSampleType_MAX, ranges.range(8)); 141 EXPECT_EQ(HistogramBase::kSampleType_MAX, ranges.range(8));
142 142
143 // The correspoding LinearHistogram should use the correct ranges. 143 // The correspoding LinearHistogram should use the correct ranges.
144 Histogram* histogram = static_cast<Histogram*>( 144 Histogram* histogram = static_cast<Histogram*>(
145 LinearHistogram::FactoryGet("Linear", 1, 7, 8, HistogramBase::kNoFlags)); 145 LinearHistogram::FactoryGet("Linear", 1, 7, 8, HistogramBase::kNoFlags));
146 EXPECT_TRUE(ranges.Equals(histogram->bucket_ranges())); 146 EXPECT_TRUE(ranges.Equals(histogram->bucket_ranges()));
147 147
148 // Linear ranges are not divisible. 148 // Linear ranges are not divisible.
149 BucketRanges ranges2(6); 149 BucketRanges ranges2(6);
150 LinearHistogram::InitializeBucketRanges(1, 6, 5, &ranges2); 150 LinearHistogram::InitializeBucketRanges(1, 6, &ranges2);
151 EXPECT_EQ(0, ranges2.range(0)); 151 EXPECT_EQ(0, ranges2.range(0));
152 EXPECT_EQ(1, ranges2.range(1)); 152 EXPECT_EQ(1, ranges2.range(1));
153 EXPECT_EQ(3, ranges2.range(2)); 153 EXPECT_EQ(3, ranges2.range(2));
154 EXPECT_EQ(4, ranges2.range(3)); 154 EXPECT_EQ(4, ranges2.range(3));
155 EXPECT_EQ(6, ranges2.range(4)); 155 EXPECT_EQ(6, ranges2.range(4));
156 EXPECT_EQ(HistogramBase::kSampleType_MAX, ranges2.range(5)); 156 EXPECT_EQ(HistogramBase::kSampleType_MAX, ranges2.range(5));
157 // The correspoding LinearHistogram should use the correct ranges. 157 // The correspoding LinearHistogram should use the correct ranges.
158 Histogram* histogram2 = static_cast<Histogram*>( 158 Histogram* histogram2 = static_cast<Histogram*>(
159 LinearHistogram::FactoryGet("Linear2", 1, 6, 5, HistogramBase::kNoFlags)); 159 LinearHistogram::FactoryGet("Linear2", 1, 6, 5, HistogramBase::kNoFlags));
160 EXPECT_TRUE(ranges2.Equals(histogram2->bucket_ranges())); 160 EXPECT_TRUE(ranges2.Equals(histogram2->bucket_ranges()));
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 // CustomHistogram needs at least 1 valid range. 484 // CustomHistogram needs at least 1 valid range.
485 custom_ranges.clear(); 485 custom_ranges.clear();
486 custom_ranges.push_back(0); 486 custom_ranges.push_back(0);
487 EXPECT_DEATH(CustomHistogram::FactoryGet("BadRangesCustom3", custom_ranges, 487 EXPECT_DEATH(CustomHistogram::FactoryGet("BadRangesCustom3", custom_ranges,
488 HistogramBase::kNoFlags), 488 HistogramBase::kNoFlags),
489 ""); 489 "");
490 } 490 }
491 #endif 491 #endif
492 492
493 } // namespace base 493 } // namespace base
OLDNEW
« no previous file with comments | « base/metrics/histogram_base.h ('k') | base/metrics/sample_vector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698