OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "apps/benchmark/measurements.h" | 5 #include "apps/benchmark/measurements.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
11 namespace benchmark { | 11 namespace benchmark { |
12 namespace { | 12 namespace { |
13 | 13 |
14 base::TimeTicks Ticks(int64 value) { | 14 base::TimeTicks Ticks(int64 value) { |
15 return base::TimeTicks::FromInternalValue(value); | 15 return base::TimeTicks::FromInternalValue(value); |
16 } | 16 } |
17 | 17 |
18 base::TimeDelta Delta(int64 value) { | 18 base::TimeDelta Delta(int64 value) { |
19 return base::TimeDelta::FromInternalValue(value); | 19 return base::TimeDelta::FromInternalValue(value); |
20 } | 20 } |
21 | 21 |
22 class MeasurementsTest : public ::testing::Test { | 22 class MeasurementsTest : public ::testing::Test { |
23 protected: | 23 protected: |
24 void SetUp() override { | 24 void SetUp() override { |
25 events_.resize(8); | 25 events_.resize(11); |
26 events_[0] = Event(EventType::COMPLETE, "a", "some", Ticks(10), Delta(2)); | 26 events_[0] = Event(EventType::COMPLETE, "a", "some", Ticks(10), Delta(2)); |
27 events_[1] = Event(EventType::COMPLETE, "a", "some", Ticks(11), Delta(4)); | 27 events_[1] = Event(EventType::COMPLETE, "a", "some", Ticks(11), Delta(4)); |
28 events_[2] = Event(EventType::COMPLETE, "a", "other", Ticks(12), Delta(8)); | 28 events_[2] = Event(EventType::COMPLETE, "a", "other", Ticks(12), Delta(8)); |
29 events_[3] = Event(EventType::COMPLETE, "b", "some", Ticks(3), Delta(16)); | 29 events_[3] = Event(EventType::COMPLETE, "b", "some", Ticks(3), Delta(16)); |
30 events_[4] = Event(EventType::COMPLETE, "b", "some", Ticks(13), Delta(32)); | 30 events_[4] = Event(EventType::COMPLETE, "b", "some", Ticks(13), Delta(32)); |
31 events_[5] = | 31 |
32 events_[5] = Event(EventType::COMPLETE, "c", "some", Ticks(14), Delta(10)); | |
33 events_[6] = Event(EventType::COMPLETE, "c", "some", Ticks(16), Delta(11)); | |
34 events_[7] = Event(EventType::COMPLETE, "c", "some", Ticks(18), Delta(12)); | |
35 | |
36 events_[8] = | |
32 Event(EventType::INSTANT, "instant", "another", Ticks(20), Delta(0)); | 37 Event(EventType::INSTANT, "instant", "another", Ticks(20), Delta(0)); |
33 events_[6] = Event(EventType::INSTANT, "multi_occurence", "another", | 38 events_[9] = Event(EventType::INSTANT, "multi_occurence", "another", |
34 Ticks(30), Delta(0)); | 39 Ticks(30), Delta(0)); |
35 events_[7] = Event(EventType::INSTANT, "multi_occurence", "another", | 40 events_[10] = Event(EventType::INSTANT, "multi_occurence", "another", |
36 Ticks(40), Delta(0)); | 41 Ticks(40), Delta(0)); |
37 | 42 |
38 reversed_ = events_; | 43 reversed_ = events_; |
39 reverse(reversed_.begin(), reversed_.end()); | 44 reverse(reversed_.begin(), reversed_.end()); |
40 } | 45 } |
41 | 46 |
42 std::vector<Event> events_; | 47 std::vector<Event> events_; |
43 std::vector<Event> reversed_; | 48 std::vector<Event> reversed_; |
44 }; | 49 }; |
45 | 50 |
46 TEST_F(MeasurementsTest, MeasureTimeUntil) { | 51 TEST_F(MeasurementsTest, MeasureTimeUntil) { |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
130 EventSpec("a", "other")))); | 135 EventSpec("a", "other")))); |
131 | 136 |
132 EXPECT_DOUBLE_EQ(0.024, | 137 EXPECT_DOUBLE_EQ(0.024, |
133 regular.Measure(Measurement(MeasurementType::AVG_DURATION, | 138 regular.Measure(Measurement(MeasurementType::AVG_DURATION, |
134 EventSpec("b", "some")))); | 139 EventSpec("b", "some")))); |
135 EXPECT_DOUBLE_EQ(0.024, | 140 EXPECT_DOUBLE_EQ(0.024, |
136 reversed.Measure(Measurement(MeasurementType::AVG_DURATION, | 141 reversed.Measure(Measurement(MeasurementType::AVG_DURATION, |
137 EventSpec("b", "some")))); | 142 EventSpec("b", "some")))); |
138 } | 143 } |
139 | 144 |
145 TEST_F(MeasurementsTest, MeasurePercentileDuration) { | |
146 // The results should be the same regardless of the order of events. | |
147 Measurements regular(events_, base::TimeTicks::FromInternalValue(2)); | |
148 Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(2)); | |
149 | |
150 Measurement measurement(MeasurementType::PERCENTILE_DURATION, | |
151 EventSpec("c", "some")); | |
152 measurement.param = 0.10; | |
153 EXPECT_DOUBLE_EQ(0.010, regular.Measure(measurement)); | |
154 measurement.param = 0.50; | |
155 EXPECT_DOUBLE_EQ(0.011, regular.Measure(measurement)); | |
156 measurement.param = 0.90; | |
157 EXPECT_DOUBLE_EQ(0.012, regular.Measure(measurement)); | |
158 | |
159 measurement.param = 0.10; | |
160 EXPECT_DOUBLE_EQ(0.010, reversed.Measure(measurement)); | |
161 measurement.param = 0.50; | |
162 EXPECT_DOUBLE_EQ(0.011, reversed.Measure(measurement)); | |
163 measurement.param = 0.90; | |
164 EXPECT_DOUBLE_EQ(0.012, reversed.Measure(measurement)); | |
165 | |
166 measurement.param = 1.0; | |
167 EXPECT_DOUBLE_EQ(0.012, regular.Measure(measurement)); | |
ppi
2015/10/12 23:15:20
Please make the measurements on the reversed list
zra
2015/10/13 03:35:39
Done.
| |
168 measurement.param = 0.0; | |
169 EXPECT_DOUBLE_EQ(0.010, regular.Measure(measurement)); | |
170 } | |
171 | |
140 TEST_F(MeasurementsTest, NoMatchingEvent) { | 172 TEST_F(MeasurementsTest, NoMatchingEvent) { |
141 // The results should be the same regardless of the order of events. | 173 // The results should be the same regardless of the order of events. |
142 Measurements empty(std::vector<Event>(), | 174 Measurements empty(std::vector<Event>(), |
143 base::TimeTicks::FromInternalValue(0)); | 175 base::TimeTicks::FromInternalValue(0)); |
144 Measurements regular(events_, base::TimeTicks::FromInternalValue(0)); | 176 Measurements regular(events_, base::TimeTicks::FromInternalValue(0)); |
145 Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(0)); | 177 Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(0)); |
146 | 178 |
147 EXPECT_DOUBLE_EQ(-1.0, | 179 EXPECT_DOUBLE_EQ(-1.0, |
148 empty.Measure(Measurement(MeasurementType::AVG_DURATION, | 180 empty.Measure(Measurement(MeasurementType::AVG_DURATION, |
149 EventSpec("miss", "cat")))); | 181 EventSpec("miss", "cat")))); |
(...skipping 10 matching lines...) Expand all Loading... | |
160 regular.Measure(Measurement(MeasurementType::TIME_UNTIL, | 192 regular.Measure(Measurement(MeasurementType::TIME_UNTIL, |
161 EventSpec("miss", "cat")))); | 193 EventSpec("miss", "cat")))); |
162 EXPECT_DOUBLE_EQ(-1.0, | 194 EXPECT_DOUBLE_EQ(-1.0, |
163 reversed.Measure(Measurement(MeasurementType::TIME_UNTIL, | 195 reversed.Measure(Measurement(MeasurementType::TIME_UNTIL, |
164 EventSpec("miss", "cat")))); | 196 EventSpec("miss", "cat")))); |
165 } | 197 } |
166 | 198 |
167 } // namespace | 199 } // namespace |
168 | 200 |
169 } // namespace benchmark | 201 } // namespace benchmark |
OLD | NEW |