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

Unified Diff: webrtc/common_audio/smoothing_filter_unittest.cc

Issue 2582043002: Fixing init time error in smoothing filter. (Closed)
Patch Set: on Ivo's comments Created 4 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/common_audio/smoothing_filter.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/common_audio/smoothing_filter_unittest.cc
diff --git a/webrtc/common_audio/smoothing_filter_unittest.cc b/webrtc/common_audio/smoothing_filter_unittest.cc
index ff06d50d8c6e2015b4c9ddd4e0de1233c3d70d39..9ffbf3c5f5aa9921439e7e372efb5e8a9e736c41 100644
--- a/webrtc/common_audio/smoothing_filter_unittest.cc
+++ b/webrtc/common_audio/smoothing_filter_unittest.cc
@@ -18,7 +18,6 @@ namespace webrtc {
namespace {
-constexpr int kInitTimeMs = 795;
constexpr float kMaxAbsError = 1e-5f;
constexpr int64_t kClockInitialTime = 123456;
@@ -27,11 +26,11 @@ struct SmoothingFilterStates {
std::unique_ptr<SmoothingFilterImpl> smoothing_filter;
};
-SmoothingFilterStates CreateSmoothingFilter() {
+SmoothingFilterStates CreateSmoothingFilter(int init_time_ms) {
SmoothingFilterStates states;
states.simulated_clock.reset(new SimulatedClock(kClockInitialTime));
states.smoothing_filter.reset(
- new SmoothingFilterImpl(kInitTimeMs, states.simulated_clock.get()));
+ new SmoothingFilterImpl(init_time_ms, states.simulated_clock.get()));
return states;
}
@@ -54,7 +53,8 @@ void CheckOutput(SmoothingFilterStates* states,
} // namespace
TEST(SmoothingFilterTest, NoOutputWhenNoSampleAdded) {
- auto states = CreateSmoothingFilter();
+ constexpr int kInitTimeMs = 100;
+ auto states = CreateSmoothingFilter(kInitTimeMs);
EXPECT_FALSE(states.smoothing_filter->GetAverage());
}
@@ -103,7 +103,8 @@ TEST(SmoothingFilterTest, NoOutputWhenNoSampleAdded) {
// filter.add_sample(1.0)
// print filter.state
TEST(SmoothingFilterTest, CheckBehaviorAroundInitTime) {
- auto states = CreateSmoothingFilter();
+ constexpr int kInitTimeMs = 795;
+ auto states = CreateSmoothingFilter(kInitTimeMs);
CheckOutput(&states, 1.0f, 500, 1.0f);
CheckOutput(&states, 0.5f, 100, 0.680562264029f);
CheckOutput(&states, 1.0f, 100, 0.794207139813f);
@@ -113,8 +114,23 @@ TEST(SmoothingFilterTest, CheckBehaviorAroundInitTime) {
CheckOutput(&states, 1.0f, 100, 0.815545922911f);
}
+TEST(SmoothingFilterTest, InitTimeEqualsZero) {
+ constexpr int kInitTimeMs = 0;
+ auto states = CreateSmoothingFilter(kInitTimeMs);
+ CheckOutput(&states, 1.0f, 1, 1.0f);
+ CheckOutput(&states, 0.5f, 1, 0.5f);
+}
+
+TEST(SmoothingFilterTest, InitTimeEqualsOne) {
+ constexpr int kInitTimeMs = 1;
+ auto states = CreateSmoothingFilter(kInitTimeMs);
+ CheckOutput(&states, 1.0f, 1, 1.0f);
+ CheckOutput(&states, 0.5f, 1, 1.0f * exp(-1.0f) + (1.0f - exp(-1.0f)) * 0.5f);
+}
+
TEST(SmoothingFilterTest, GetAverageOutputsEmptyBeforeFirstSample) {
- auto states = CreateSmoothingFilter();
+ constexpr int kInitTimeMs = 100;
+ auto states = CreateSmoothingFilter(kInitTimeMs);
EXPECT_FALSE(states.smoothing_filter->GetAverage());
constexpr float kFirstSample = 1.2345f;
states.smoothing_filter->AddSample(kFirstSample);
@@ -123,7 +139,8 @@ TEST(SmoothingFilterTest, GetAverageOutputsEmptyBeforeFirstSample) {
}
TEST(SmoothingFilterTest, CannotChangeTimeConstantDuringInitialization) {
- auto states = CreateSmoothingFilter();
+ constexpr int kInitTimeMs = 100;
+ auto states = CreateSmoothingFilter(kInitTimeMs);
states.smoothing_filter->AddSample(0.0);
// During initialization, |SetTimeConstantMs| does not take effect.
« no previous file with comments | « webrtc/common_audio/smoothing_filter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698