Index: apps/benchmark/measurements_unittest.cc |
diff --git a/apps/benchmark/measurements_unittest.cc b/apps/benchmark/measurements_unittest.cc |
index d47ce45a1f9d4641eafa9c64bdf7ecf51aad6391..3401f0e72a814b08927d31f0e363fef19b0c9faa 100644 |
--- a/apps/benchmark/measurements_unittest.cc |
+++ b/apps/benchmark/measurements_unittest.cc |
@@ -22,18 +22,23 @@ base::TimeDelta Delta(int64 value) { |
class MeasurementsTest : public ::testing::Test { |
protected: |
void SetUp() override { |
- events_.resize(8); |
+ events_.resize(11); |
events_[0] = Event(EventType::COMPLETE, "a", "some", Ticks(10), Delta(2)); |
events_[1] = Event(EventType::COMPLETE, "a", "some", Ticks(11), Delta(4)); |
events_[2] = Event(EventType::COMPLETE, "a", "other", Ticks(12), Delta(8)); |
events_[3] = Event(EventType::COMPLETE, "b", "some", Ticks(3), Delta(16)); |
events_[4] = Event(EventType::COMPLETE, "b", "some", Ticks(13), Delta(32)); |
- events_[5] = |
+ |
+ events_[5] = Event(EventType::COMPLETE, "c", "some", Ticks(14), Delta(10)); |
+ events_[6] = Event(EventType::COMPLETE, "c", "some", Ticks(16), Delta(11)); |
+ events_[7] = Event(EventType::COMPLETE, "c", "some", Ticks(18), Delta(12)); |
+ |
+ events_[8] = |
Event(EventType::INSTANT, "instant", "another", Ticks(20), Delta(0)); |
- events_[6] = Event(EventType::INSTANT, "multi_occurence", "another", |
+ events_[9] = Event(EventType::INSTANT, "multi_occurence", "another", |
Ticks(30), Delta(0)); |
- events_[7] = Event(EventType::INSTANT, "multi_occurence", "another", |
- Ticks(40), Delta(0)); |
+ events_[10] = Event(EventType::INSTANT, "multi_occurence", "another", |
+ Ticks(40), Delta(0)); |
reversed_ = events_; |
reverse(reversed_.begin(), reversed_.end()); |
@@ -43,31 +48,39 @@ class MeasurementsTest : public ::testing::Test { |
std::vector<Event> reversed_; |
}; |
+static double MeasureSingle(const Measurements& measurements, |
+ const Measurement& measurement) { |
+ std::vector<double> result; |
+ measurements.Measure(measurement, &result); |
+ EXPECT_EQ(1U, result.size()); |
+ return result[0]; |
+} |
+ |
TEST_F(MeasurementsTest, MeasureTimeUntil) { |
// The results should be the same regardless of the order of events. |
Measurements regular(events_, base::TimeTicks::FromInternalValue(2)); |
Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(2)); |
- EXPECT_DOUBLE_EQ(0.008, |
- regular.Measure(Measurement(MeasurementType::TIME_UNTIL, |
- EventSpec("a", "some")))); |
- EXPECT_DOUBLE_EQ(0.008, |
- reversed.Measure(Measurement(MeasurementType::TIME_UNTIL, |
+ EXPECT_DOUBLE_EQ( |
+ 0.008, MeasureSingle(regular, Measurement(MeasurementType::TIME_UNTIL, |
EventSpec("a", "some")))); |
+ EXPECT_DOUBLE_EQ( |
+ 0.008, MeasureSingle(reversed, Measurement(MeasurementType::TIME_UNTIL, |
+ EventSpec("a", "some")))); |
- EXPECT_DOUBLE_EQ(0.01, |
- regular.Measure(Measurement(MeasurementType::TIME_UNTIL, |
+ EXPECT_DOUBLE_EQ( |
+ 0.01, MeasureSingle(regular, Measurement(MeasurementType::TIME_UNTIL, |
EventSpec("a", "other")))); |
- EXPECT_DOUBLE_EQ(0.01, |
- reversed.Measure(Measurement(MeasurementType::TIME_UNTIL, |
+ EXPECT_DOUBLE_EQ( |
+ 0.01, MeasureSingle(reversed, Measurement(MeasurementType::TIME_UNTIL, |
EventSpec("a", "other")))); |
- EXPECT_DOUBLE_EQ(0.001, |
- regular.Measure(Measurement(MeasurementType::TIME_UNTIL, |
- EventSpec("b", "some")))); |
- EXPECT_DOUBLE_EQ(0.001, |
- reversed.Measure(Measurement(MeasurementType::TIME_UNTIL, |
+ EXPECT_DOUBLE_EQ( |
+ 0.001, MeasureSingle(regular, Measurement(MeasurementType::TIME_UNTIL, |
EventSpec("b", "some")))); |
+ EXPECT_DOUBLE_EQ( |
+ 0.001, MeasureSingle(reversed, Measurement(MeasurementType::TIME_UNTIL, |
+ EventSpec("b", "some")))); |
} |
TEST_F(MeasurementsTest, MeasureTimeBetween) { |
@@ -75,39 +88,47 @@ TEST_F(MeasurementsTest, MeasureTimeBetween) { |
Measurements regular(events_, base::TimeTicks::FromInternalValue(2)); |
Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(2)); |
- EXPECT_DOUBLE_EQ(0.0, regular.Measure(Measurement( |
- MeasurementType::TIME_BETWEEN, |
- EventSpec("a", "some"), EventSpec("a", "some")))); |
- EXPECT_DOUBLE_EQ(0.0, reversed.Measure(Measurement( |
- MeasurementType::TIME_BETWEEN, |
- EventSpec("a", "some"), EventSpec("a", "some")))); |
- |
EXPECT_DOUBLE_EQ( |
- 0.01, regular.Measure(Measurement( |
- MeasurementType::TIME_BETWEEN, EventSpec("instant", "another"), |
- EventSpec("multi_occurence", "another")))); |
+ 0.0, MeasureSingle(regular, Measurement(MeasurementType::TIME_BETWEEN, |
+ EventSpec("a", "some"), |
+ EventSpec("a", "some")))); |
EXPECT_DOUBLE_EQ( |
- 0.01, reversed.Measure(Measurement( |
- MeasurementType::TIME_BETWEEN, EventSpec("instant", "another"), |
- EventSpec("multi_occurence", "another")))); |
+ 0.0, MeasureSingle(reversed, Measurement(MeasurementType::TIME_BETWEEN, |
+ EventSpec("a", "some"), |
+ EventSpec("a", "some")))); |
EXPECT_DOUBLE_EQ( |
- -1.0, regular.Measure(Measurement(MeasurementType::TIME_BETWEEN, |
- EventSpec("multi_occurence", "another"), |
- EventSpec("instant", "another")))); |
- EXPECT_DOUBLE_EQ(-1.0, reversed.Measure(Measurement( |
- MeasurementType::TIME_BETWEEN, |
- EventSpec("multi_occurence", "another"), |
- EventSpec("instant", "another")))); |
+ 0.01, MeasureSingle( |
+ regular, Measurement(MeasurementType::TIME_BETWEEN, |
+ EventSpec("instant", "another"), |
+ EventSpec("multi_occurence", "another")))); |
+ EXPECT_DOUBLE_EQ( |
+ 0.01, MeasureSingle(reversed, Measurement(MeasurementType::TIME_BETWEEN, |
+ EventSpec("instant", "another"), |
+ EventSpec("multi_occurence", |
+ "another")))); |
EXPECT_DOUBLE_EQ( |
- 0.01, regular.Measure(Measurement(MeasurementType::TIME_BETWEEN, |
- EventSpec("a", "some"), |
- EventSpec("instant", "another")))); |
+ -1.0, MeasureSingle(regular, |
+ Measurement(MeasurementType::TIME_BETWEEN, |
+ EventSpec("multi_occurence", "another"), |
+ EventSpec("instant", "another")))); |
+ EXPECT_DOUBLE_EQ( |
+ -1.0, MeasureSingle(reversed, |
+ Measurement(MeasurementType::TIME_BETWEEN, |
+ EventSpec("multi_occurence", "another"), |
+ EventSpec("instant", "another")))); |
+ |
EXPECT_DOUBLE_EQ( |
- 0.01, reversed.Measure(Measurement(MeasurementType::TIME_BETWEEN, |
+ 0.01, |
+ MeasureSingle(regular, Measurement(MeasurementType::TIME_BETWEEN, |
EventSpec("a", "some"), |
EventSpec("instant", "another")))); |
+ EXPECT_DOUBLE_EQ( |
+ 0.01, |
+ MeasureSingle(reversed, Measurement(MeasurementType::TIME_BETWEEN, |
+ EventSpec("a", "some"), |
+ EventSpec("instant", "another")))); |
} |
TEST_F(MeasurementsTest, MeasureAvgDuration) { |
@@ -115,26 +136,56 @@ TEST_F(MeasurementsTest, MeasureAvgDuration) { |
Measurements regular(events_, base::TimeTicks::FromInternalValue(2)); |
Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(2)); |
- EXPECT_DOUBLE_EQ(0.003, |
- regular.Measure(Measurement(MeasurementType::AVG_DURATION, |
- EventSpec("a", "some")))); |
- EXPECT_DOUBLE_EQ(0.003, |
- reversed.Measure(Measurement(MeasurementType::AVG_DURATION, |
+ EXPECT_DOUBLE_EQ( |
+ 0.003, MeasureSingle(regular, Measurement(MeasurementType::AVG_DURATION, |
EventSpec("a", "some")))); |
+ EXPECT_DOUBLE_EQ( |
+ 0.003, MeasureSingle(reversed, Measurement(MeasurementType::AVG_DURATION, |
+ EventSpec("a", "some")))); |
- EXPECT_DOUBLE_EQ(0.008, |
- regular.Measure(Measurement(MeasurementType::AVG_DURATION, |
- EventSpec("a", "other")))); |
- EXPECT_DOUBLE_EQ(0.008, |
- reversed.Measure(Measurement(MeasurementType::AVG_DURATION, |
+ EXPECT_DOUBLE_EQ( |
+ 0.008, MeasureSingle(regular, Measurement(MeasurementType::AVG_DURATION, |
EventSpec("a", "other")))); |
+ EXPECT_DOUBLE_EQ( |
+ 0.008, MeasureSingle(reversed, Measurement(MeasurementType::AVG_DURATION, |
+ EventSpec("a", "other")))); |
- EXPECT_DOUBLE_EQ(0.024, |
- regular.Measure(Measurement(MeasurementType::AVG_DURATION, |
- EventSpec("b", "some")))); |
- EXPECT_DOUBLE_EQ(0.024, |
- reversed.Measure(Measurement(MeasurementType::AVG_DURATION, |
+ EXPECT_DOUBLE_EQ( |
+ 0.024, MeasureSingle(regular, Measurement(MeasurementType::AVG_DURATION, |
EventSpec("b", "some")))); |
+ EXPECT_DOUBLE_EQ( |
+ 0.024, MeasureSingle(reversed, Measurement(MeasurementType::AVG_DURATION, |
+ EventSpec("b", "some")))); |
+} |
+ |
+TEST_F(MeasurementsTest, MeasureMedianDuration) { |
+ // The results should be the same regardless of the order of events. |
+ Measurements regular(events_, base::TimeTicks::FromInternalValue(2)); |
+ Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(2)); |
+ |
+ EXPECT_DOUBLE_EQ( |
+ 0.011, |
+ MeasureSingle(regular, Measurement(MeasurementType::MEDIAN_DURATION, |
+ EventSpec("c", "some")))); |
+ EXPECT_DOUBLE_EQ( |
+ 0.011, |
+ MeasureSingle(reversed, Measurement(MeasurementType::MEDIAN_DURATION, |
+ EventSpec("c", "some")))); |
+} |
+ |
+TEST_F(MeasurementsTest, MeasureDistDuration) { |
+ // The results should be the same regardless of the order of events. |
+ Measurements regular(events_, base::TimeTicks::FromInternalValue(2)); |
+ Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(2)); |
+ |
+ std::vector<double> results; |
+ regular.Measure( |
+ Measurement(MeasurementType::DIST_DURATION, EventSpec("c", "some")), |
+ &results); |
+ EXPECT_EQ(3U, results.size()); |
+ EXPECT_DOUBLE_EQ(0.010, results[0]); |
+ EXPECT_DOUBLE_EQ(0.011, results[1]); |
+ EXPECT_DOUBLE_EQ(0.012, results[2]); |
} |
TEST_F(MeasurementsTest, NoMatchingEvent) { |
@@ -144,23 +195,24 @@ TEST_F(MeasurementsTest, NoMatchingEvent) { |
Measurements regular(events_, base::TimeTicks::FromInternalValue(0)); |
Measurements reversed(reversed_, base::TimeTicks::FromInternalValue(0)); |
- EXPECT_DOUBLE_EQ(-1.0, |
- empty.Measure(Measurement(MeasurementType::AVG_DURATION, |
+ EXPECT_DOUBLE_EQ( |
+ -1.0, MeasureSingle(empty, Measurement(MeasurementType::AVG_DURATION, |
EventSpec("miss", "cat")))); |
- EXPECT_DOUBLE_EQ(-1.0, |
- regular.Measure(Measurement(MeasurementType::AVG_DURATION, |
+ EXPECT_DOUBLE_EQ( |
+ -1.0, MeasureSingle(regular, Measurement(MeasurementType::AVG_DURATION, |
EventSpec("miss", "cat")))); |
- EXPECT_DOUBLE_EQ(-1.0, |
- reversed.Measure(Measurement(MeasurementType::AVG_DURATION, |
+ EXPECT_DOUBLE_EQ( |
+ -1.0, MeasureSingle(reversed, Measurement(MeasurementType::AVG_DURATION, |
EventSpec("miss", "cat")))); |
- EXPECT_DOUBLE_EQ(-1.0, empty.Measure(Measurement(MeasurementType::TIME_UNTIL, |
- EventSpec("miss", "cat")))); |
EXPECT_DOUBLE_EQ(-1.0, |
- regular.Measure(Measurement(MeasurementType::TIME_UNTIL, |
+ MeasureSingle(empty, Measurement(MeasurementType::TIME_UNTIL, |
+ EventSpec("miss", "cat")))); |
+ EXPECT_DOUBLE_EQ( |
+ -1.0, MeasureSingle(regular, Measurement(MeasurementType::TIME_UNTIL, |
EventSpec("miss", "cat")))); |
- EXPECT_DOUBLE_EQ(-1.0, |
- reversed.Measure(Measurement(MeasurementType::TIME_UNTIL, |
+ EXPECT_DOUBLE_EQ( |
+ -1.0, MeasureSingle(reversed, Measurement(MeasurementType::TIME_UNTIL, |
EventSpec("miss", "cat")))); |
} |