Index: webrtc/modules/audio_processing/high_pass_filter_bitexactness_unittest.cc |
diff --git a/webrtc/modules/audio_processing/high_pass_filter_bitexactness_unittest.cc b/webrtc/modules/audio_processing/high_pass_filter_bitexactness_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ac7e9c3718d01e13f58f9131f6a48d7ae01f62b3 |
--- /dev/null |
+++ b/webrtc/modules/audio_processing/high_pass_filter_bitexactness_unittest.cc |
@@ -0,0 +1,319 @@ |
+/* |
+ * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. |
+ * |
+ * Use of this source code is governed by a BSD-style license |
+ * that can be found in the LICENSE file in the root of the source |
+ * tree. An additional intellectual property rights grant can be found |
+ * in the file PATENTS. All contributing project authors may |
+ * be found in the AUTHORS file in the root of the source tree. |
+ */ |
+#include <vector> |
+ |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include "webrtc/base/scoped_ptr.h" |
+#include "webrtc/modules/audio_processing/audio_buffer.h" |
+#include "webrtc/modules/audio_processing/audio_processing_impl.h" |
+#include "webrtc/modules/audio_processing/high_pass_filter_impl.h" |
+#include "webrtc/modules/audio_processing/test/audio_buffer_tools.h" |
+ |
+namespace webrtc { |
+namespace { |
+ |
+// Main test class. |
+class HighPassFilterBitExactnessTest { |
the sun
2016/01/07 14:35:35
Great stuff!
I think this would be even more read
peah-webrtc
2016/02/22 13:38:36
Good! I made this into functions, which definitely
|
+ public: |
+ explicit HighPassFilterBitExactnessTest(int sample_rate, |
the sun
2016/01/07 14:35:35
explicit is not necessary
hlundin-webrtc
2016/01/08 09:24:38
Acknowledged.
peah-webrtc
2016/02/22 13:38:36
Thanks! I removed this since there is no longer an
|
+ std::vector<float> input, |
the sun
2016/01/07 14:35:35
const &
peah-webrtc
2016/02/22 13:38:36
Done.
|
+ std::vector<float> reference) |
+ : input_(input), |
+ reference_(reference), |
+ stream_config_(sample_rate, 1, false), |
+ high_pass_filter_(&crit_) { |
+ high_pass_filter_.Initialize(1, sample_rate); |
+ high_pass_filter_.Enable(true); |
+ } |
+ |
+ // Processes a specified amount of frames, verifies the results and reports |
+ // any errors. |
+ void Run() { |
+ std::vector<float> output; |
+ for (size_t frame_no = 0; |
+ frame_no < input_.size() / stream_config_.num_frames(); ++frame_no) { |
+ output = ProcessOneFrame(); |
+ } |
+ |
+ EXPECT_PRED_FORMAT2(AssertVectorsNotEqual, output, reference_); |
the sun
2016/01/07 14:35:35
Why do you just check the last frame?
In this cas
peah-webrtc
2016/02/22 13:38:36
The idea is to be able to avoid having to store al
|
+ } |
+ |
+ private: |
+ ::testing::AssertionResult AssertVectorsNotEqual( |
the sun
2016/01/07 14:35:35
Move out from class; it doesn't really have anythi
peah-webrtc
2016/02/22 13:38:36
Done.
|
+ const char* m_expr, |
+ const char* n_expr, |
+ const std::vector<float>& output, |
+ const std::vector<float>& reference) { |
+ // Compare the output in the reference in a soft manner. |
+ bool equal = true; |
+ const float threshold = 1.0f / 32768.0f; |
+ for (size_t k = 0; k < reference.size(); ++k) { |
+ equal &= (fabs(output[k] - reference[k]) <= threshold); |
+ } |
+ |
+ // If the vectors are deemed not to be similar, return a report of the |
+ // difference. |
+ if (!equal) { |
+ // Lambda function that produces a formatted string with the data in the |
+ // vector. |
+ auto print_vector_in_c_format = [](std::vector<float> v, |
+ size_t num_values_to_print) { |
+ std::string s = "{ "; |
+ for (size_t k = 0; k < num_values_to_print; ++k) { |
+ s += std::to_string(v[k]) + "f"; |
+ s += (k < (num_values_to_print - 1)) ? ", " : ""; |
+ } |
+ return s + " }"; |
+ }; |
+ |
+ return ::testing::AssertionFailure() |
+ << "Actual: " << print_vector_in_c_format(output, reference.size()) |
+ << std::endl |
+ << std::endl |
+ << "Expected: " |
+ << print_vector_in_c_format(reference, reference.size()) |
+ << std::endl; |
+ } |
+ return ::testing::AssertionSuccess(); |
+ } |
+ |
+ // Process one frame of data and produce the output |
+ std::vector<float> ProcessOneFrame() { |
+ AudioBuffer audio_buffer( |
+ stream_config_.num_frames(), stream_config_.num_channels(), |
+ stream_config_.num_frames(), stream_config_.num_channels(), |
+ stream_config_.num_frames()); |
+ std::vector<float> input( |
+ input_.begin() + stream_config_.num_frames() * num_frames_processed_, |
+ input_.begin() + |
+ stream_config_.num_frames() * (num_frames_processed_ + 1)); |
+ |
+ CopyVectorToAudioBuffer(stream_config_, input, &audio_buffer); |
+ high_pass_filter_.ProcessCaptureAudio(&audio_buffer); |
+ std::vector<float> output = |
+ ExtractVectorFromAudioBuffer(stream_config_, &audio_buffer); |
+ ++num_frames_processed_; |
+ return output; |
+ } |
+ |
+ const std::vector<float> input_; |
+ const std::vector<float> reference_; |
+ const StreamConfig stream_config_; |
+ mutable rtc::CriticalSection crit_; |
+ HighPassFilterImpl high_pass_filter_; |
+ int num_frames_processed_ = 0; |
+}; |
+ |
+} // namespace |
+ |
+TEST(HighPassFilterBitExactnessTest, Mono8kHzInitial) { |
+ const std::vector<float> kReferenceInput = { |
the sun
2016/01/07 14:35:35
This type of initialization is banned: http://chro
peah-webrtc
2016/02/22 13:38:36
Done.
|
+ 0.153442f, -0.436920f, -0.057602f, -0.141767f, 0.108608f, 0.116834f, |
+ 0.114979f, -0.103151f, -0.169925f, -0.167180f, 0.242024f, -0.525426f, |
+ -0.058781f, 0.076667f, -0.185095f, 0.135319f, -0.020223f, -0.266058f, |
+ 0.045755f, -0.076044f, -0.116221f, -0.201698f, 0.017423f, -0.523475f, |
+ -0.112949f, -0.154125f, -0.258572f, 0.185075f, -0.208205f, 0.153298f, |
+ 0.276703f, -0.044481f, 0.078771f, 0.181337f, -0.022962f, 0.153365f, |
+ -0.358004f, 0.314864f, -0.280593f, -0.518572f, 0.392579f, -0.017786f, |
+ 0.127293f, -0.103003f, -0.289389f, -0.871355f, 0.177583f, -0.081290f, |
+ -0.055957f, 0.115011f, -0.402460f, -0.206836f, 0.325328f, 0.169526f, |
+ -0.363311f, -0.624742f, -0.161979f, 0.060679f, 0.267214f, 0.026576f, |
+ -0.318235f, 0.086812f, -0.332419f, -0.272485f, -0.185369f, -0.348598f, |
+ -0.076833f, -0.255184f, -0.081007f, -0.131121f, -0.116196f, -0.142780f, |
+ 0.349705f, 0.173054f, 0.016750f, -0.415957f, -0.461001f, -0.557111f, |
+ 0.738711f, 0.275720f}; |
+ |
+ const std::vector<float> kReference = { |
+ 0.142277f, -0.418518f, -0.028229f, -0.102112f, 0.141270f, 0.137791f, |
+ 0.124577f, -0.088715f, -0.142273f, -0.125885f, 0.266640f, -0.468079f}; |
+ HighPassFilterBitExactnessTest(8000, kReferenceInput, kReference).Run(); |
+} |
+ |
+TEST(HighPassFilterBitExactnessTest, Mono8kHzConverged) { |
+ const std::vector<float> kReferenceInput = { |
+ 0.153442f, -0.436920f, -0.057602f, -0.141767f, 0.108608f, 0.116834f, |
+ 0.114979f, -0.103151f, -0.169925f, -0.167180f, 0.242024f, -0.525426f, |
+ -0.058781f, 0.076667f, -0.185095f, 0.135319f, -0.020223f, -0.266058f, |
+ 0.045755f, -0.076044f, -0.116221f, -0.201698f, 0.017423f, -0.523475f, |
+ -0.112949f, -0.154125f, -0.258572f, 0.185075f, -0.208205f, 0.153298f, |
+ 0.276703f, -0.044481f, 0.078771f, 0.181337f, -0.022962f, 0.153365f, |
+ -0.358004f, 0.314864f, -0.280593f, -0.518572f, 0.392579f, -0.017786f, |
+ 0.127293f, -0.103003f, -0.289389f, -0.871355f, 0.177583f, -0.081290f, |
+ -0.055957f, 0.115011f, -0.402460f, -0.206836f, 0.325328f, 0.169526f, |
+ -0.363311f, -0.624742f, -0.161979f, 0.060679f, 0.267214f, 0.026576f, |
+ -0.318235f, 0.086812f, -0.332419f, -0.272485f, -0.185369f, -0.348598f, |
+ -0.076833f, -0.255184f, -0.081007f, -0.131121f, -0.116196f, -0.142780f, |
+ 0.349705f, 0.173054f, 0.016750f, -0.415957f, -0.461001f, -0.557111f, |
+ 0.738711f, 0.275720f, 0.072868f, -0.276249f, -0.325055f, 0.155285f, |
+ 0.443784f, -0.480153f, -0.127428f, -0.023901f, -0.564837f, 0.238538f, |
+ -0.117578f, 0.542205f, -0.110840f, 0.116025f, -0.323939f, -0.177182f, |
+ -0.331395f, 0.111316f, 0.369140f, -0.168329f, 0.123736f, -0.143013f, |
+ 0.028953f, 0.339200f, 0.034107f, -0.294000f, -0.243034f, -0.048168f, |
+ -0.054348f, -0.245504f, 0.051228f, 0.359128f, -0.071220f, -0.058006f, |
+ -0.624248f, -0.219615f, -0.395067f, -0.109518f, 0.149032f, 0.431928f, |
+ 0.509968f, -0.033143f, -0.090793f, 0.231809f, 0.138986f, 0.216989f, |
+ 0.220683f, -0.419745f, 0.153222f, -0.025956f, -0.215572f, -0.196671f, |
+ 0.363361f, -0.229604f, -0.350704f, 0.060875f, 0.570160f, 0.007246f, |
+ 0.087419f, -0.266043f, 0.474729f, 0.035441f, 0.150312f, -0.269962f, |
+ 0.242166f, 0.110343f, -0.327788f, 0.011268f, -0.127769f, 0.030978f, |
+ -0.071045f, -0.053847f, -0.292886f, -0.091670f, 0.217351f, 0.494707f, |
+ -0.329069f, 0.674122f, 0.432724f, 0.047781f, -0.085408f, -0.198105f, |
+ 0.236135f, -0.196957f, -0.130968f, 0.250552f, 0.123613f, 0.254275f, |
+ 0.143118f, -0.113676f, -0.145703f, 0.225812f, -0.190318f, 0.336481f, |
+ 0.224206f, 0.081584f, 0.000915f, 0.103672f, 1.000000f, -0.031882f, |
+ -0.441377f, 0.543033f, 0.172924f, -0.183717f, 0.742153f, 0.156224f, |
+ 0.083422f, -0.220560f, -0.301964f, -0.501439f, -0.119920f, -0.298610f, |
+ 0.183673f, -0.090064f, 0.501603f, 0.428330f, 0.046506f, -0.080178f, |
+ 0.326700f, -0.325096f, 0.191029f, -0.189729f, -0.113513f, -0.190492f, |
+ 0.163221f, -0.220631f, -0.301576f, 0.156799f, -0.120065f, 0.102529f, |
+ -0.099779f, 0.076429f, -0.727157f, 0.132097f, 0.525583f, 0.294694f, |
+ 0.258287f, -0.067977f, 0.051323f, 0.069258f, 0.027332f, -0.235482f, |
+ -0.099882f, -0.049558f, -0.136291f, 0.237288f, 0.719757f, -0.375235f, |
+ 0.036391f, -0.408991f, 0.369330f, 0.399785f, -0.471419f, 0.551138f, |
+ -0.307569f, 0.064315f, 0.311605f, 0.041736f, 0.650943f, 0.780496f}; |
+ const std::vector<float> kReference = { |
+ -0.173553f, -0.265778f, 0.158757f, -0.259399f, -0.176361f, 0.192877f, |
+ 0.056825f, 0.171453f, 0.050752f, -0.194580f, -0.208679f, 0.153722f}; |
+ HighPassFilterBitExactnessTest(8000, kReferenceInput, kReference).Run(); |
+} |
+ |
+TEST(HighPassFilterBitExactnessTest, Mono16kHzInitial) { |
+ const std::vector<float> kReferenceInput = { |
+ 0.150254f, 0.512488f, -0.631245f, 0.240938f, 0.089080f, -0.365440f, |
+ -0.121169f, 0.095748f, 1.000000f, 0.773932f, -0.377232f, 0.848124f, |
+ 0.202718f, -0.017621f, 0.199738f, -0.057279f, -0.034693f, 0.416303f, |
+ 0.393761f, 0.396041f, 0.187653f, -0.337438f, 0.200436f, 0.455577f, |
+ 0.136624f, 0.289150f, 0.203131f, -0.084798f, 0.082124f, -0.220010f, |
+ 0.248266f, -0.320554f, -0.298701f, -0.226218f, -0.822794f, 0.401962f, |
+ 0.090876f, -0.210968f, 0.382936f, -0.478291f, -0.028572f, -0.067474f, |
+ 0.089204f, 0.087430f, -0.241695f, -0.008398f, -0.046076f, 0.175416f, |
+ 0.305518f, 0.309992f, -0.241352f, 0.021618f, -0.339291f, -0.311173f, |
+ -0.001914f, 0.428301f, -0.215087f, 0.103784f, -0.063041f, 0.312250f, |
+ -0.304344f, 0.009098f, 0.154406f, 0.307571f, 0.431537f, 0.024014f, |
+ -0.416832f, -0.207440f, -0.296664f, 0.656846f, -0.172033f, 0.209054f, |
+ -0.053772f, 0.248326f, -0.213741f, -0.391871f, -0.397490f, 0.136428f, |
+ -0.049568f, -0.054788f, 0.396633f, 0.081485f, 0.055279f, 0.443690f, |
+ -0.224812f, 0.194675f, 0.233369f, -0.068107f, 0.060270f, -0.325801f, |
+ -0.320801f, 0.029308f, 0.201837f, 0.722528f, -0.186366f, 0.052351f, |
+ -0.023053f, -0.540192f, -0.122671f, -0.501532f, 0.234847f, -0.248165f, |
+ 0.027971f, -0.152171f, 0.084820f, -0.167764f, 0.136923f, 0.206619f, |
+ 0.478395f, -0.054249f, -0.597574f, -0.234627f, 0.378548f, -0.299619f, |
+ 0.268543f, 0.034666f, 0.401492f, -0.547983f, -0.055248f, -0.337538f, |
+ 0.812657f, 0.230611f, 0.385360f, -0.295713f, -0.130957f, -0.076143f, |
+ 0.306960f, -0.077653f, 0.196049f, -0.573390f, -0.098885f, -0.230155f, |
+ -0.440716f, 0.141956f, 0.078802f, 0.009356f, -0.372703f, 0.315083f, |
+ 0.097859f, -0.083575f, 0.006397f, -0.073216f, -0.489105f, -0.079827f, |
+ -0.232329f, -0.273644f, -0.323162f, -0.149105f, -0.559646f, 0.269458f, |
+ 0.145333f, -0.005597f, -0.009717f, -0.223051f, 0.284676f, -0.037228f, |
+ -0.199679f, 0.377651f, -0.062813f, -0.164607f, -0.082091f, -0.236957f, |
+ -0.313025f, 0.705903f, 0.462637f, 0.085942f, -0.351308f, -0.241859f, |
+ -0.049333f, 0.221165f, -0.372235f, -0.651092f, -0.404957f, 0.093201f, |
+ 0.109366f, 0.126224f, -0.036409f, 0.051333f, -0.133063f, 0.240896f, |
+ -0.380532f, 0.127160f, -0.237176f, -0.093586f, 0.154478f, 0.290379f, |
+ -0.312329f, 0.352297f, 0.184480f, -0.018965f, -0.054555f, -0.060811f}; |
+ |
+ const std::vector<float> kReference = { |
+ 0.147160f, 0.495163f, -0.648346f, 0.234931f, 0.075289f, -0.373779f, |
+ -0.117676f, 0.100345f, 0.981719f, 0.714896f, -0.447357f, 0.770867f}; |
+ HighPassFilterBitExactnessTest(16000, kReferenceInput, kReference).Run(); |
+} |
+ |
+TEST(HighPassFilterBitExactnessTest, Mono16kHzConverged) { |
the sun
2016/01/07 14:35:35
You should cover a stereo (or multi-channel) case
peah-webrtc
2016/02/22 13:38:36
Good point! Added stereo.
|
+ const std::vector<float> kReferenceInput = { |
+ 0.150254f, 0.512488f, -0.631245f, 0.240938f, 0.089080f, -0.365440f, |
+ -0.121169f, 0.095748f, 1.000000f, 0.773932f, -0.377232f, 0.848124f, |
+ 0.202718f, -0.017621f, 0.199738f, -0.057279f, -0.034693f, 0.416303f, |
+ 0.393761f, 0.396041f, 0.187653f, -0.337438f, 0.200436f, 0.455577f, |
+ 0.136624f, 0.289150f, 0.203131f, -0.084798f, 0.082124f, -0.220010f, |
+ 0.248266f, -0.320554f, -0.298701f, -0.226218f, -0.822794f, 0.401962f, |
+ 0.090876f, -0.210968f, 0.382936f, -0.478291f, -0.028572f, -0.067474f, |
+ 0.089204f, 0.087430f, -0.241695f, -0.008398f, -0.046076f, 0.175416f, |
+ 0.305518f, 0.309992f, -0.241352f, 0.021618f, -0.339291f, -0.311173f, |
+ -0.001914f, 0.428301f, -0.215087f, 0.103784f, -0.063041f, 0.312250f, |
+ -0.304344f, 0.009098f, 0.154406f, 0.307571f, 0.431537f, 0.024014f, |
+ -0.416832f, -0.207440f, -0.296664f, 0.656846f, -0.172033f, 0.209054f, |
+ -0.053772f, 0.248326f, -0.213741f, -0.391871f, -0.397490f, 0.136428f, |
+ -0.049568f, -0.054788f, 0.396633f, 0.081485f, 0.055279f, 0.443690f, |
+ -0.224812f, 0.194675f, 0.233369f, -0.068107f, 0.060270f, -0.325801f, |
+ -0.320801f, 0.029308f, 0.201837f, 0.722528f, -0.186366f, 0.052351f, |
+ -0.023053f, -0.540192f, -0.122671f, -0.501532f, 0.234847f, -0.248165f, |
+ 0.027971f, -0.152171f, 0.084820f, -0.167764f, 0.136923f, 0.206619f, |
+ 0.478395f, -0.054249f, -0.597574f, -0.234627f, 0.378548f, -0.299619f, |
+ 0.268543f, 0.034666f, 0.401492f, -0.547983f, -0.055248f, -0.337538f, |
+ 0.812657f, 0.230611f, 0.385360f, -0.295713f, -0.130957f, -0.076143f, |
+ 0.306960f, -0.077653f, 0.196049f, -0.573390f, -0.098885f, -0.230155f, |
+ -0.440716f, 0.141956f, 0.078802f, 0.009356f, -0.372703f, 0.315083f, |
+ 0.097859f, -0.083575f, 0.006397f, -0.073216f, -0.489105f, -0.079827f, |
+ -0.232329f, -0.273644f, -0.323162f, -0.149105f, -0.559646f, 0.269458f, |
+ 0.145333f, -0.005597f, -0.009717f, -0.223051f, 0.284676f, -0.037228f, |
+ -0.199679f, 0.377651f, -0.062813f, -0.164607f, -0.082091f, -0.236957f, |
+ -0.313025f, 0.705903f, 0.462637f, 0.085942f, -0.351308f, -0.241859f, |
+ -0.049333f, 0.221165f, -0.372235f, -0.651092f, -0.404957f, 0.093201f, |
+ 0.109366f, 0.126224f, -0.036409f, 0.051333f, -0.133063f, 0.240896f, |
+ -0.380532f, 0.127160f, -0.237176f, -0.093586f, 0.154478f, 0.290379f, |
+ -0.312329f, 0.352297f, 0.184480f, -0.018965f, -0.054555f, -0.060811f, |
+ -0.084705f, 0.006440f, 0.014333f, 0.230847f, 0.426721f, 0.130481f, |
+ -0.058605f, 0.174712f, 0.051204f, -0.287773f, 0.265265f, 0.085810f, |
+ 0.037775f, 0.143988f, 0.073051f, -0.263103f, -0.045366f, -0.040816f, |
+ -0.148673f, 0.470072f, -0.244727f, -0.135204f, -0.198973f, -0.328139f, |
+ -0.053722f, -0.076590f, 0.427586f, -0.069591f, -0.297399f, 0.448094f, |
+ 0.345037f, -0.064170f, -0.420903f, -0.124253f, -0.043578f, 0.077149f, |
+ -0.072983f, 0.123916f, 0.109517f, -0.349508f, -0.264912f, -0.207106f, |
+ -0.141912f, -0.089586f, 0.003485f, -0.846518f, -0.127715f, 0.347208f, |
+ -0.298095f, 0.260935f, 0.097899f, -0.008106f, 0.050987f, -0.437362f, |
+ -0.023625f, 0.448230f, 0.027484f, 0.011562f, -0.205167f, -0.008611f, |
+ 0.064930f, 0.119156f, -0.104183f, -0.066078f, 0.565530f, -0.631108f, |
+ 0.623029f, 0.094334f, 0.279472f, -0.465059f, -0.164888f, -0.077706f, |
+ 0.118130f, -0.466746f, 0.131800f, -0.338936f, 0.018497f, 0.182304f, |
+ 0.091398f, 0.302547f, 0.281153f, -0.181899f, 0.071836f, -0.263911f, |
+ -0.369380f, 0.258447f, 0.000014f, -0.015347f, 0.254619f, 0.166159f, |
+ 0.097865f, 0.349389f, 0.259834f, 0.067003f, -0.192925f, -0.182080f, |
+ 0.333139f, -0.450434f, -0.006836f, -0.544615f, 0.285183f, 0.240811f, |
+ 0.000325f, -0.019796f, -0.694804f, 0.162411f, -0.612686f, -0.648134f, |
+ 0.022338f, -0.265058f, 0.114993f, 0.189185f, 0.239697f, -0.193148f, |
+ 0.125581f, 0.028122f, 0.230849f, 0.149832f, 0.250919f, -0.036871f, |
+ -0.041136f, 0.281627f, -0.593466f, -0.141009f, -0.355074f, -0.106915f, |
+ 0.181276f, 0.230753f, -0.283631f, -0.131643f, 0.038292f, -0.081563f, |
+ 0.084345f, 0.111763f, -0.259882f, -0.049416f, -0.595824f, 0.320077f, |
+ -0.175802f, -0.336422f, -0.070966f, -0.399242f, -0.005829f, -0.156680f, |
+ 0.608591f, 0.318150f, -0.697767f, 0.123331f, -0.390716f, -0.071276f, |
+ 0.045943f, 0.208958f, -0.076304f, 0.440505f, -0.134400f, 0.091525f, |
+ 0.185763f, 0.023806f, 0.246186f, 0.090323f, -0.219133f, -0.504520f, |
+ 0.519393f, -0.168939f, 0.028884f, 0.157380f, 0.031745f, -0.252830f, |
+ -0.130705f, -0.034901f, 0.413302f, -0.240559f, 0.219279f, 0.086246f, |
+ -0.065353f, -0.295376f, -0.079405f, -0.024226f, -0.410629f, 0.053706f, |
+ -0.229794f, -0.026336f, 0.093956f, -0.252810f, -0.080555f, 0.097827f, |
+ -0.513040f, 0.289508f, 0.677527f, 0.268109f, -0.088244f, 0.119781f, |
+ -0.289511f, 0.524778f, 0.262884f, 0.220028f, -0.244767f, 0.089411f, |
+ -0.156018f, -0.087030f, -0.159292f, -0.286646f, -0.253953f, -0.058657f, |
+ -0.474756f, 0.169797f, -0.032919f, 0.195384f, 0.075355f, 0.138131f, |
+ -0.414465f, -0.285118f, -0.124915f, 0.030645f, 0.315431f, -0.081032f, |
+ 0.352546f, 0.132860f, 0.328112f, 0.035476f, -0.183550f, -0.413984f, |
+ 0.043452f, 0.228748f, -0.081765f, -0.151125f, -0.086251f, -0.306448f, |
+ -0.137774f, -0.050508f, 0.012811f, -0.017824f, 0.170841f, 0.030549f, |
+ 0.506935f, 0.087197f, 0.504274f, -0.202080f, 0.147146f, -0.072728f, |
+ 0.167713f, 0.165977f, -0.610894f, -0.370849f, -0.402698f, 0.112297f, |
+ 0.410855f, -0.091330f, 0.227008f, 0.152454f, -0.293884f, 0.111074f, |
+ -0.210121f, 0.423728f, -0.009101f, 0.457188f, -0.118785f, 0.164720f, |
+ -0.017547f, -0.565046f, -0.274461f, 0.171169f, -0.015338f, -0.312635f, |
+ -0.175044f, 0.069729f, -0.277504f, 0.272454f, -0.179049f, 0.505495f, |
+ -0.301774f, 0.055664f, -0.425058f, -0.202222f, -0.165787f, 0.112155f, |
+ 0.263284f, 0.083972f, -0.104256f, 0.227892f, 0.223253f, 0.033592f, |
+ 0.159638f, 0.115358f, -0.275811f, 0.212265f, -0.183658f, -0.168768f}; |
+ |
+ const std::vector<float> kReference = { |
+ -0.248962f, -0.088257f, 0.083041f, -0.037323f, 0.127659f, 0.149388f, |
+ -0.220978f, -0.004242f, -0.538544f, 0.384289f, -0.117615f, -0.268524f, |
+ }; |
+ |
+ HighPassFilterBitExactnessTest(16000, kReferenceInput, kReference).Run(); |
+} |
+ |
+} // namespace webrtc |