| Index: webrtc/base/analytics/percentile_filter_unittest.cc
|
| diff --git a/webrtc/modules/video_coding/percentile_filter_unittest.cc b/webrtc/base/analytics/percentile_filter_unittest.cc
|
| similarity index 64%
|
| rename from webrtc/modules/video_coding/percentile_filter_unittest.cc
|
| rename to webrtc/base/analytics/percentile_filter_unittest.cc
|
| index 56cd99b39d2b644306f96bb300134d8f70ee422f..76e2657891c24130f92b4cd12aa96ef27054ca24 100644
|
| --- a/webrtc/modules/video_coding/percentile_filter_unittest.cc
|
| +++ b/webrtc/base/analytics/percentile_filter_unittest.cc
|
| @@ -9,9 +9,10 @@
|
| */
|
|
|
| #include <algorithm>
|
| +#include <climits>
|
|
|
| +#include "webrtc/base/analytics/percentile_filter.h"
|
| #include "webrtc/base/constructormagic.h"
|
| -#include "webrtc/modules/video_coding/percentile_filter.h"
|
| #include "webrtc/test/gtest.h"
|
|
|
| namespace webrtc {
|
| @@ -24,7 +25,7 @@ class PercentileFilterTest : public ::testing::TestWithParam<float> {
|
| }
|
|
|
| protected:
|
| - PercentileFilter filter_;
|
| + PercentileFilter<int64_t> filter_;
|
|
|
| private:
|
| RTC_DISALLOW_COPY_AND_ASSIGN(PercentileFilterTest);
|
| @@ -35,41 +36,66 @@ INSTANTIATE_TEST_CASE_P(PercentileFilterTests,
|
| ::testing::Values(0.0f, 0.1f, 0.5f, 0.9f, 1.0f));
|
|
|
| TEST(PercentileFilterTest, MinFilter) {
|
| - PercentileFilter filter(0.0f);
|
| - filter.Insert(4);
|
| + PercentileFilter<int64_t> filter(0.0f);
|
| + filter.Push(4);
|
| EXPECT_EQ(4, filter.GetPercentileValue());
|
| - filter.Insert(3);
|
| + filter.Push(3);
|
| EXPECT_EQ(3, filter.GetPercentileValue());
|
| }
|
|
|
| TEST(PercentileFilterTest, MaxFilter) {
|
| - PercentileFilter filter(1.0f);
|
| - filter.Insert(3);
|
| + PercentileFilter<int64_t> filter(1.0f);
|
| + filter.Push(3);
|
| EXPECT_EQ(3, filter.GetPercentileValue());
|
| - filter.Insert(4);
|
| + filter.Push(4);
|
| EXPECT_EQ(4, filter.GetPercentileValue());
|
| }
|
|
|
| -TEST_P(PercentileFilterTest, EmptyFilter) {
|
| - EXPECT_EQ(0, filter_.GetPercentileValue());
|
| - filter_.Insert(3);
|
| - filter_.Erase(3);
|
| - EXPECT_EQ(0, filter_.GetPercentileValue());
|
| +TEST(PercentileFilterTest, MedianFilterDouble) {
|
| + PercentileFilter<double> filter(0.5f);
|
| + filter.Push(2.71828);
|
| + filter.Push(3.14159);
|
| + filter.Push(1.41421);
|
| + EXPECT_EQ(2.71828, filter.GetPercentileValue());
|
| }
|
|
|
| -TEST_P(PercentileFilterTest, EraseNonExistingElement) {
|
| - filter_.Erase(3);
|
| +TEST(PercentileFilterTest, MedianFilterInt) {
|
| + PercentileFilter<int> filter(0.5f);
|
| + filter.Push(INT_MIN);
|
| + filter.Push(1);
|
| + filter.Push(2);
|
| + EXPECT_EQ(1, filter.GetPercentileValue());
|
| + filter.Push(INT_MAX);
|
| + filter.Pop();
|
| + EXPECT_EQ(2, filter.GetPercentileValue());
|
| +}
|
| +
|
| +TEST(PercentileFilterTest, MedianFilterUnsigned) {
|
| + PercentileFilter<unsigned> filter(0.5f);
|
| + filter.Push(UINT_MAX);
|
| + filter.Push(2u);
|
| + filter.Push(1u);
|
| + EXPECT_EQ(2u, filter.GetPercentileValue());
|
| + filter.Push(0u);
|
| + filter.Pop();
|
| + EXPECT_EQ(1u, filter.GetPercentileValue());
|
| +}
|
| +
|
| +TEST_P(PercentileFilterTest, EmptyFilter) {
|
| + EXPECT_EQ(0, filter_.GetPercentileValue());
|
| + EXPECT_EQ(0, filter_.Size());
|
| + filter_.Push(3);
|
| + filter_.Pop();
|
| EXPECT_EQ(0, filter_.GetPercentileValue());
|
| - filter_.Insert(4);
|
| - filter_.Erase(3);
|
| - EXPECT_EQ(4, filter_.GetPercentileValue());
|
| + EXPECT_EQ(0, filter_.Size());
|
| }
|
|
|
| TEST_P(PercentileFilterTest, DuplicateElements) {
|
| - filter_.Insert(3);
|
| - filter_.Insert(3);
|
| - filter_.Erase(3);
|
| + filter_.Push(3);
|
| + filter_.Push(3);
|
| + filter_.Pop();
|
| EXPECT_EQ(3, filter_.GetPercentileValue());
|
| + EXPECT_EQ(1, filter_.Size());
|
| }
|
|
|
| TEST_P(PercentileFilterTest, InsertAndEraseTenValuesInRandomOrder) {
|
| @@ -81,7 +107,7 @@ TEST_P(PercentileFilterTest, InsertAndEraseTenValuesInRandomOrder) {
|
| for (int i = 0; i < 2; ++i) {
|
| std::random_shuffle(zero_to_nine, zero_to_nine + 10);
|
| for (int64_t value : zero_to_nine)
|
| - filter_.Insert(value);
|
| + filter_.Push(value);
|
| // After inserting a full set of |zero_to_nine|, the percentile should
|
| // stay constant.
|
| EXPECT_EQ(expected_value, filter_.GetPercentileValue());
|
| @@ -89,14 +115,13 @@ TEST_P(PercentileFilterTest, InsertAndEraseTenValuesInRandomOrder) {
|
|
|
| // Insert and erase sets of |zero_to_nine| in random order a few times.
|
| for (int i = 0; i < 3; ++i) {
|
| - std::random_shuffle(zero_to_nine, zero_to_nine + 10);
|
| - for (int64_t value : zero_to_nine)
|
| - filter_.Erase(value);
|
| + for (int j = 0; j < 10; ++j)
|
| + filter_.Pop();
|
| EXPECT_EQ(expected_value, filter_.GetPercentileValue());
|
|
|
| std::random_shuffle(zero_to_nine, zero_to_nine + 10);
|
| for (int64_t value : zero_to_nine)
|
| - filter_.Insert(value);
|
| + filter_.Push(value);
|
| EXPECT_EQ(expected_value, filter_.GetPercentileValue());
|
| }
|
| }
|
|
|