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

Side by Side Diff: webrtc/modules/audio_processing/echo_detector/sliding_window_minimum_unittest.cc

Issue 2419563003: Add algorithm for Residual Echo Detector. (Closed)
Patch Set: Added better handling of clock drift on render side. Created 4 years, 2 months 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 unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #include "webrtc/modules/audio_processing/echo_detector/sliding_window_minimum.h "
12
13 #include <algorithm>
14
15 #include "webrtc/base/random.h"
16 #include "webrtc/test/gtest.h"
17
18 namespace webrtc {
19
20 TEST(SlidingWindowMinimumTests, HandMadeTest) {
21 SlidingWindowMinimum min_calculator(3);
22 min_calculator.AddValue(3);
23 EXPECT_EQ(0ul, min_calculator.GetMinimum());
24 min_calculator.AddValue(0);
25 EXPECT_EQ(0ul, min_calculator.GetMinimum());
26 min_calculator.AddValue(7);
27 EXPECT_EQ(0ul, min_calculator.GetMinimum());
28 min_calculator.AddValue(8);
29 EXPECT_EQ(0ul, min_calculator.GetMinimum());
30 min_calculator.AddValue(2);
31 EXPECT_EQ(2ul, min_calculator.GetMinimum());
32 min_calculator.AddValue(11);
33 EXPECT_EQ(2ul, min_calculator.GetMinimum());
34 min_calculator.AddValue(10);
35 EXPECT_EQ(2ul, min_calculator.GetMinimum());
36 min_calculator.AddValue(1);
37 EXPECT_EQ(1ul, min_calculator.GetMinimum());
38 min_calculator.AddValue(2);
39 EXPECT_EQ(1ul, min_calculator.GetMinimum());
40 min_calculator.AddValue(0);
41 EXPECT_EQ(0ul, min_calculator.GetMinimum());
42 min_calculator.AddValue(6);
43 EXPECT_EQ(0ul, min_calculator.GetMinimum());
44 min_calculator.AddValue(1);
45 EXPECT_EQ(0ul, min_calculator.GetMinimum());
46 min_calculator.AddValue(7);
47 EXPECT_EQ(1ul, min_calculator.GetMinimum());
48 min_calculator.AddValue(2);
49 EXPECT_EQ(1ul, min_calculator.GetMinimum());
50 min_calculator.AddValue(8);
51 EXPECT_EQ(2ul, min_calculator.GetMinimum());
52 }
53
54 TEST(SlidingWindowMinimumTests, RandomTest) {
55 SlidingWindowMinimum min_calculator(10);
56 Random rng(123);
57 std::vector<size_t> latest_values(10);
58 size_t latest_values_index = 0;
59 for (size_t i = 0; i < 10000; i++) {
60 size_t next_number = static_cast<size_t>(rng.Rand(10000));
61 min_calculator.AddValue(next_number);
62 latest_values[latest_values_index] = next_number;
63 size_t actual_minimum =
64 *std::min_element(latest_values.begin(), latest_values.end());
65 EXPECT_EQ(actual_minimum, min_calculator.GetMinimum());
66 ++latest_values_index;
67 latest_values_index %= 10;
68 }
69 }
70
71 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698