179d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org/*
279d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
379d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org *
479d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org *  Use of this source code is governed by a BSD-style license
579d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org *  that can be found in the LICENSE file in the root of the source
679d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org *  tree. An additional intellectual property rights grant can be found
779d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org *  in the file PATENTS.  All contributing project authors may
879d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org *  be found in the AUTHORS file in the root of the source tree.
979d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org */
1079d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
1149d62206ededc5905d6121d42fdcce8ed665b2c0kjellander@webrtc.org#include "testing/gtest/include/gtest/gtest.h"
1279d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org#include "webrtc/modules/audio_coding/main/acm2/call_statistics.h"
1379d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
1479d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.orgnamespace webrtc {
1579d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
1679d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.orgnamespace acm2 {
1779d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
1879d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.orgTEST(CallStatisticsTest, InitializedZero) {
1979d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  CallStatistics call_stats;
2079d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  AudioDecodingCallStats stats;
2179d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
2279d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  stats = call_stats.GetDecodingStatistics();
2379d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(0, stats.calls_to_neteq);
2479d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(0, stats.calls_to_silence_generator);
2579d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(0, stats.decoded_normal);
2679d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(0, stats.decoded_cng);
2779d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(0, stats.decoded_plc);
2879d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(0, stats.decoded_plc_cng);
2979d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org}
3079d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
3179d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.orgTEST(CallStatisticsTest, AllCalls) {
3279d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  CallStatistics call_stats;
3379d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  AudioDecodingCallStats stats;
3479d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
3579d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  call_stats.DecodedBySilenceGenerator();
3679d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  call_stats.DecodedByNetEq(AudioFrame::kNormalSpeech);
3779d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  call_stats.DecodedByNetEq(AudioFrame::kPLC);
3879d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  call_stats.DecodedByNetEq(AudioFrame::kPLCCNG);
3979d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  call_stats.DecodedByNetEq(AudioFrame::kCNG);
4079d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
4179d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  stats = call_stats.GetDecodingStatistics();
4279d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(4, stats.calls_to_neteq);
4379d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(1, stats.calls_to_silence_generator);
4479d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(1, stats.decoded_normal);
4579d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(1, stats.decoded_cng);
4679d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(1, stats.decoded_plc);
4779d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org  EXPECT_EQ(1, stats.decoded_plc_cng);
4879d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org}
4979d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
5079d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org}  // namespace acm2
5179d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
5279d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org}  // namespace webrtc
5379d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
5479d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
5579d6dafd3dac32e505bc1a2ccc83ef3ceb6c5ad3wu@webrtc.org
56