Index: chrome/browser/ui/webui/performance_monitor/performance_monitor_ui_util_unittest.cc |
diff --git a/chrome/browser/ui/webui/performance_monitor/performance_monitor_ui_util_unittest.cc b/chrome/browser/ui/webui/performance_monitor/performance_monitor_ui_util_unittest.cc |
deleted file mode 100644 |
index 6841ea880b94ddaadca9574c147c4f66e35e7082..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/webui/performance_monitor/performance_monitor_ui_util_unittest.cc |
+++ /dev/null |
@@ -1,252 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <string> |
- |
-#include "base/strings/string_number_conversions.h" |
-#include "base/time/time.h" |
-#include "chrome/browser/performance_monitor/metric.h" |
-#include "chrome/browser/ui/webui/performance_monitor/performance_monitor_ui_util.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace performance_monitor { |
- |
-class PerformanceMonitorUtilTest : public ::testing::Test { |
- protected: |
- // Helper method in order to access the otherwise-private AggregateInterval |
- // method within the aggregation classes, so that we can test specific |
- // aggregation methods without the extra burden of interval separation (which |
- // is tested separately). |
- scoped_ptr<Database::MetricVector> AggregateSingleInterval( |
- MetricType type, |
- const Database::MetricVector* metrics, |
- const base::Time& start, |
- const base::TimeDelta& resolution, |
- AggregationMethod method) { |
- const base::Time kMaxTime = base::Time::FromDoubleT(100); |
- Database::MetricVector::const_iterator metric = metrics->begin(); |
- while (metric != metrics->end() && metric->time < start) |
- ++metric; |
- |
- scoped_ptr<Aggregator> aggregator; |
- switch (method) { |
- case AGGREGATION_METHOD_NONE: |
- aggregator.reset(new NoAggregation()); |
- break; |
- case AGGREGATION_METHOD_MEDIAN: |
- aggregator.reset(new MedianAggregation()); |
- break; |
- case AGGREGATION_METHOD_MEAN: |
- aggregator.reset(new MeanAggregation()); |
- break; |
- default: |
- NOTREACHED(); |
- return scoped_ptr<Database::MetricVector>(); |
- } |
- return aggregator->AggregateInterval( |
- type, &metric, metrics->end(), start, kMaxTime, resolution); |
- } |
-}; |
- |
-TEST_F(PerformanceMonitorUtilTest, AggregateMetricEmptyTest) { |
- Database::MetricVector metric_vector; |
- const base::Time data_time = base::Time::FromDoubleT(1); |
- metric_vector.push_back(Metric(METRIC_CPU_USAGE, data_time, 1)); |
- |
- const base::Time results_time = base::Time::FromDoubleT(3); |
- const base::TimeDelta resolution = base::TimeDelta::FromSeconds(1); |
- scoped_ptr<Database::MetricVector> aggregated_metric = |
- AggregateSingleInterval(METRIC_CPU_USAGE, |
- &metric_vector, |
- results_time, |
- resolution, |
- AGGREGATION_METHOD_MEAN); |
- ASSERT_EQ(0u, aggregated_metric->size()); |
- aggregated_metric = AggregateSingleInterval(METRIC_CPU_USAGE, |
- &metric_vector, |
- results_time, |
- resolution, |
- AGGREGATION_METHOD_MEDIAN); |
- ASSERT_EQ(0u, aggregated_metric->size()); |
-} |
- |
-TEST_F(PerformanceMonitorUtilTest, AggregateMetricSimpleTest) { |
- const base::Time data_time = base::Time::FromDoubleT(2); |
- const base::Time results_time = base::Time::FromDoubleT(1); |
- const base::TimeDelta results_resolution = base::TimeDelta::FromSeconds(2); |
- |
- const double value = 3.14; |
- Database::MetricVector metric_vector; |
- metric_vector.push_back(Metric(METRIC_CPU_USAGE, data_time, value)); |
- Database::MetricVector aggregated_metric = |
- *AggregateSingleInterval(METRIC_CPU_USAGE, |
- &metric_vector, |
- results_time, |
- results_resolution, |
- AGGREGATION_METHOD_MEAN); |
- |
- ASSERT_EQ(1u, aggregated_metric.size()); |
- EXPECT_EQ(results_time + results_resolution, aggregated_metric[0].time); |
- EXPECT_EQ(value, aggregated_metric[0].value); |
- |
- aggregated_metric = *AggregateSingleInterval(METRIC_CPU_USAGE, |
- &metric_vector, |
- results_time, |
- results_resolution, |
- AGGREGATION_METHOD_MEDIAN); |
- ASSERT_EQ(1u, aggregated_metric.size()); |
- EXPECT_EQ(results_time + results_resolution, aggregated_metric[0].time); |
- EXPECT_EQ(value, aggregated_metric[0].value); |
-} |
- |
-TEST_F(PerformanceMonitorUtilTest, AggregateMetricDenseTest) { |
- base::Time current_data_time = base::Time::FromDoubleT(2); |
- const base::TimeDelta data_resolution = base::TimeDelta::FromSeconds(1); |
- const base::Time results_time = base::Time::FromDoubleT(6); |
- const base::TimeDelta results_resolution = base::TimeDelta::FromSeconds(4); |
- double current_value = 1; |
- int num_points = 12; |
- Database::MetricVector metric_vector; |
- |
- for (int i = 0; i < num_points; ++i) { |
- metric_vector.push_back(Metric(METRIC_CPU_USAGE, |
- current_data_time, |
- current_value)); |
- current_value *= 2; |
- current_data_time += data_resolution; |
- } |
- Database::MetricVector aggregated_metric = |
- *AggregateSingleInterval(METRIC_CPU_USAGE, |
- &metric_vector, |
- results_time, |
- results_resolution, |
- AGGREGATION_METHOD_MEAN); |
- // The first 4 points get ignored because they are before the start time. |
- // The remaining 8 points are aggregated into two data points. |
- ASSERT_EQ(2u, aggregated_metric.size()); |
- EXPECT_EQ(results_time + results_resolution, aggregated_metric[0].time); |
- EXPECT_DOUBLE_EQ((32 + 64 + 128 + 256) / 4.0, aggregated_metric[0].value); |
- EXPECT_EQ(results_time + (2 * results_resolution), |
- aggregated_metric[1].time); |
- // Since we don't have data for the time of 14, we stretch out the 2048. |
- EXPECT_DOUBLE_EQ((512 + 1024 + 2048 + 2048) / 4.0, |
- aggregated_metric[1].value); |
- |
- aggregated_metric = *AggregateSingleInterval(METRIC_CPU_USAGE, |
- &metric_vector, |
- results_time, |
- results_resolution, |
- AGGREGATION_METHOD_MEDIAN); |
- ASSERT_EQ(2u, aggregated_metric.size()); |
- EXPECT_EQ(results_time + results_resolution, aggregated_metric[0].time); |
- EXPECT_EQ(results_time + 2 * results_resolution, |
- aggregated_metric[1].time); |
- EXPECT_EQ(48, aggregated_metric[0].value); |
- EXPECT_EQ(768, aggregated_metric[1].value); |
-} |
- |
-TEST_F(PerformanceMonitorUtilTest, AggregateMetricSparseTest) { |
- Database::MetricVector metric_vector; |
- |
- const base::Time data_time1 = base::Time::FromDoubleT(20); |
- const double value1 = 3.14; |
- metric_vector.push_back(Metric(METRIC_CPU_USAGE, data_time1, value1)); |
- const base::Time data_time2 = base::Time::FromDoubleT(40); |
- const double value2 = 6.28; |
- metric_vector.push_back(Metric(METRIC_CPU_USAGE, data_time2, value2)); |
- const base::Time data_time3 = base::Time::FromDoubleT(60); |
- const double value3 = 9.42; |
- metric_vector.push_back(Metric(METRIC_CPU_USAGE, data_time3, value3)); |
- |
- const base::Time results_time = base::Time::FromDoubleT(19); |
- const base::TimeDelta results_resolution = base::TimeDelta::FromSeconds(2); |
- Database::MetricVector aggregated_metric = |
- *AggregateSingleInterval(METRIC_CPU_USAGE, |
- &metric_vector, |
- results_time, |
- results_resolution, |
- AGGREGATION_METHOD_MEAN); |
- |
- // The first aggregation point is split between the first value and the second |
- // value. The second is split between the second and third. The third doesn't |
- // have any data after it so the aggregation is the same value. |
- ASSERT_EQ(3u, aggregated_metric.size()); |
- EXPECT_EQ(results_time + 1 * results_resolution, |
- aggregated_metric[0].time); |
- EXPECT_EQ((value1 + value2) / 2, aggregated_metric[0].value); |
- EXPECT_EQ(results_time + 11 * results_resolution, |
- aggregated_metric[1].time); |
- EXPECT_EQ((value2 + value3) / 2, aggregated_metric[1].value); |
- EXPECT_EQ(results_time + 21 * results_resolution, |
- aggregated_metric[2].time); |
- EXPECT_EQ(value3, aggregated_metric[2].value); |
- |
- // For median values, we go from [start, end). Thus, since each of these are |
- // one window apart, each value will have it's own window. |
- aggregated_metric = *AggregateSingleInterval(METRIC_CPU_USAGE, |
- &metric_vector, |
- results_time, |
- results_resolution, |
- AGGREGATION_METHOD_MEDIAN); |
- ASSERT_EQ(3u, aggregated_metric.size()); |
- EXPECT_EQ(results_time + 1 * results_resolution, |
- aggregated_metric[0].time); |
- EXPECT_EQ(value1, aggregated_metric[0].value); |
- EXPECT_EQ(results_time + 11 * results_resolution, |
- aggregated_metric[1].time); |
- EXPECT_EQ(value2, aggregated_metric[1].value); |
- EXPECT_EQ(results_time + 21 * results_resolution, |
- aggregated_metric[2].time); |
- EXPECT_EQ(value3, aggregated_metric[2].value); |
-} |
- |
-TEST_F(PerformanceMonitorUtilTest, AggregateMetricMultipleIntervals) { |
- base::Time current_data_time = base::Time::FromDoubleT(1); |
- Database::MetricVector metric_vector; |
- |
- const int kNumMetrics = 20; |
- for (int i = 0; i < kNumMetrics; ++i) { |
- metric_vector.push_back(Metric(METRIC_CPU_USAGE, |
- current_data_time, |
- i + 1)); |
- current_data_time += base::TimeDelta::FromSeconds(1); |
- } |
- |
- std::vector<TimeRange> time_ranges; |
- time_ranges.push_back(TimeRange(base::Time::FromDoubleT(2), |
- base::Time::FromDoubleT(10))); |
- time_ranges.push_back(TimeRange(base::Time::FromDoubleT(12), |
- base::Time::FromDoubleT(22))); |
- |
- std::vector<Database::MetricVector> results = |
- *AggregateMetric(METRIC_CPU_USAGE, |
- &metric_vector, |
- base::Time::FromDoubleT(2), |
- time_ranges, |
- base::TimeDelta::FromSeconds(1), |
- AGGREGATION_METHOD_NONE); |
- |
- ASSERT_EQ(2u, results.size()); |
- Database::MetricVector metric_series = results[0]; |
- ASSERT_EQ(9u, metric_series.size()); |
- double expected = 2; |
- for (Database::MetricVector::const_iterator iter = metric_series.begin(); |
- iter != metric_series.end(); ++iter) { |
- EXPECT_EQ(expected, iter->value); |
- EXPECT_EQ(base::Time::FromDoubleT(expected), iter->time); |
- ++expected; |
- } |
- |
- metric_series = results[1]; |
- ASSERT_EQ(9u, metric_series.size()); |
- expected = 12; |
- for (Database::MetricVector::const_iterator iter = metric_series.begin(); |
- iter != metric_series.end(); ++iter) { |
- EXPECT_EQ(expected, iter->value); |
- EXPECT_EQ(base::Time::FromDoubleT(expected), iter->time); |
- ++expected; |
- } |
-} |
- |
-} // namespace performance_monitor |