summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/webrtc/common_audio/audio_util_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/webrtc/common_audio/audio_util_unittest.cc')
-rw-r--r--chromium/third_party/webrtc/common_audio/audio_util_unittest.cc56
1 files changed, 40 insertions, 16 deletions
diff --git a/chromium/third_party/webrtc/common_audio/audio_util_unittest.cc b/chromium/third_party/webrtc/common_audio/audio_util_unittest.cc
index c724e378f52..bf9ad812523 100644
--- a/chromium/third_party/webrtc/common_audio/audio_util_unittest.cc
+++ b/chromium/third_party/webrtc/common_audio/audio_util_unittest.cc
@@ -16,22 +16,46 @@ namespace webrtc {
void ExpectArraysEq(const int16_t* ref, const int16_t* test, int length) {
for (int i = 0; i < length; ++i) {
- EXPECT_EQ(test[i], ref[i]);
+ EXPECT_EQ(ref[i], test[i]);
}
}
-TEST(AudioUtilTest, Clamp) {
- EXPECT_EQ(1000.f, ClampInt16(1000.f));
- EXPECT_EQ(32767.f, ClampInt16(32767.5f));
- EXPECT_EQ(-32768.f, ClampInt16(-32768.5f));
+void ExpectArraysEq(const float* ref, const float* test, int length) {
+ for (int i = 0; i < length; ++i) {
+ EXPECT_FLOAT_EQ(ref[i], test[i]);
+ }
+}
+
+TEST(AudioUtilTest, RoundToInt16) {
+ const int kSize = 7;
+ const float kInput[kSize] = {
+ 0.f, 0.4f, 0.5f, -0.4f, -0.5f, 32768.f, -32769.f};
+ const int16_t kReference[kSize] = {0, 0, 1, 0, -1, 32767, -32768};
+ int16_t output[kSize];
+ RoundToInt16(kInput, kSize, output);
+ ExpectArraysEq(kReference, output, kSize);
+}
+
+TEST(AudioUtilTest, ScaleAndRoundToInt16) {
+ const int kSize = 9;
+ const float kInput[kSize] = {
+ 0.f, 0.4f / 32767.f, 0.6f / 32767.f, -0.4f / 32768.f, -0.6f / 32768.f,
+ 1.f, -1.f, 1.1f, -1.1f};
+ const int16_t kReference[kSize] = {
+ 0, 0, 1, 0, -1, 32767, -32768, 32767, -32768};
+ int16_t output[kSize];
+ ScaleAndRoundToInt16(kInput, kSize, output);
+ ExpectArraysEq(kReference, output, kSize);
}
-TEST(AudioUtilTest, Round) {
- EXPECT_EQ(0, RoundToInt16(0.f));
- EXPECT_EQ(0, RoundToInt16(0.4f));
- EXPECT_EQ(1, RoundToInt16(0.5f));
- EXPECT_EQ(0, RoundToInt16(-0.4f));
- EXPECT_EQ(-1, RoundToInt16(-0.5f));
+TEST(AudioUtilTest, ScaleToFloat) {
+ const int kSize = 7;
+ const int16_t kInput[kSize] = {0, 1, -1, 16384, -16384, 32767, -32768};
+ const float kReference[kSize] = {
+ 0.f, 1.f / 32767.f, -1.f / 32768.f, 16384.f / 32767.f, -0.5f, 1.f, -1.f};
+ float output[kSize];
+ ScaleToFloat(kInput, kSize, output);
+ ExpectArraysEq(kReference, output, kSize);
}
TEST(AudioUtilTest, InterleavingStereo) {
@@ -44,12 +68,12 @@ TEST(AudioUtilTest, InterleavingStereo) {
Deinterleave(kInterleaved, kSamplesPerChannel, kNumChannels, deinterleaved);
const int16_t kRefLeft[] = {2, 4, 8, 16};
const int16_t kRefRight[] = {3, 9, 27, 81};
- ExpectArraysEq(left, kRefLeft, kSamplesPerChannel);
- ExpectArraysEq(right, kRefRight, kSamplesPerChannel);
+ ExpectArraysEq(kRefLeft, left, kSamplesPerChannel);
+ ExpectArraysEq(kRefRight, right, kSamplesPerChannel);
int16_t interleaved[kLength];
Interleave(deinterleaved, kSamplesPerChannel, kNumChannels, interleaved);
- ExpectArraysEq(interleaved, kInterleaved, kLength);
+ ExpectArraysEq(kInterleaved, interleaved, kLength);
}
TEST(AudioUtilTest, InterleavingMonoIsIdentical) {
@@ -59,11 +83,11 @@ TEST(AudioUtilTest, InterleavingMonoIsIdentical) {
int16_t mono[kSamplesPerChannel];
int16_t* deinterleaved[] = {mono};
Deinterleave(kInterleaved, kSamplesPerChannel, kNumChannels, deinterleaved);
- ExpectArraysEq(mono, kInterleaved, kSamplesPerChannel);
+ ExpectArraysEq(kInterleaved, mono, kSamplesPerChannel);
int16_t interleaved[kSamplesPerChannel];
Interleave(deinterleaved, kSamplesPerChannel, kNumChannels, interleaved);
- ExpectArraysEq(interleaved, mono, kSamplesPerChannel);
+ ExpectArraysEq(mono, interleaved, kSamplesPerChannel);
}
} // namespace webrtc