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

Unified Diff: webrtc/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc

Issue 1202253003: More Simulation Framework features (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Added unittests Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc
diff --git a/webrtc/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc b/webrtc/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc
index 967c2b2b5e47c3cda41a935e3a2b13ba44f07af7..e2f4d04f14a972246e5dd21b629c41a4df52175d 100644
--- a/webrtc/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc
+++ b/webrtc/modules/remote_bitrate_estimator/test/estimators/nada_unittest.cc
@@ -167,7 +167,7 @@ class NadaFbGenerator {
TEST_F(NadaSenderSideTest, AcceleratedRampUp) {
const int64_t kRefSignalMs = 3;
const int64_t kOneWayDelayMs = 50;
- int original_bitrate = 2 * NadaBweSender::kMinRefRateKbps;
+ int original_bitrate = 2 * kMinBitrateKbps;
size_t receiving_rate = static_cast<size_t>(original_bitrate);
int64_t send_time_ms = nada_sender_.NowMs() - kOneWayDelayMs;
@@ -199,7 +199,7 @@ TEST_F(NadaSenderSideTest, AcceleratedRampUp) {
// Verify if AcceleratedRampDown is called and if bitrate decreases.
TEST_F(NadaSenderSideTest, AcceleratedRampDown) {
const int64_t kOneWayDelayMs = 50;
- int original_bitrate = 3 * NadaBweSender::kMinRefRateKbps;
+ int original_bitrate = 3 * kMinBitrateKbps;
size_t receiving_rate = static_cast<size_t>(original_bitrate);
int64_t send_time_ms = nada_sender_.NowMs() - kOneWayDelayMs;
@@ -217,7 +217,7 @@ TEST_F(NadaSenderSideTest, AcceleratedRampDown) {
// parameters.
nada_sender_.AcceleratedRampDown(congested_fb);
int bitrate_2_kbps =
- std::max(nada_sender_.bitrate_kbps(), NadaBweSender::kMinRefRateKbps);
+ std::max(nada_sender_.bitrate_kbps(), kMinBitrateKbps);
EXPECT_EQ(bitrate_2_kbps, bitrate_1_kbps);
}
@@ -225,7 +225,7 @@ TEST_F(NadaSenderSideTest, GradualRateUpdate) {
const int64_t kDeltaSMs = 20;
const int64_t kRefSignalMs = 20;
const int64_t kOneWayDelayMs = 50;
- int original_bitrate = 2 * NadaBweSender::kMinRefRateKbps;
+ int original_bitrate = 2 * kMinBitrateKbps;
size_t receiving_rate = static_cast<size_t>(original_bitrate);
int64_t send_time_ms = nada_sender_.NowMs() - kOneWayDelayMs;
@@ -251,8 +251,8 @@ TEST_F(NadaSenderSideTest, GradualRateUpdate) {
// Sending bitrate should decrease and reach its Min bound.
TEST_F(NadaSenderSideTest, VeryLowBandwith) {
const int64_t kOneWayDelayMs = 50;
- const int kMin = NadaBweSender::kMinRefRateKbps;
- size_t receiving_rate = static_cast<size_t>(kMin);
+
+ size_t receiving_rate = static_cast<size_t>(kMinBitrateKbps);
int64_t send_time_ms = nada_sender_.NowMs() - kOneWayDelayMs;
NadaFeedback extremely_congested_fb =
@@ -260,7 +260,7 @@ TEST_F(NadaSenderSideTest, VeryLowBandwith) {
NadaFeedback congested_fb =
NadaFbGenerator::CongestedFb(receiving_rate, send_time_ms);
- nada_sender_.set_bitrate_kbps(5 * kMin);
+ nada_sender_.set_bitrate_kbps(5 * kMinBitrateKbps);
nada_sender_.set_original_operating_mode(true);
for (int i = 0; i < 100; ++i) {
// Trigger GradualRateUpdate mode.
@@ -268,10 +268,10 @@ TEST_F(NadaSenderSideTest, VeryLowBandwith) {
}
// The original implementation doesn't allow the bitrate to stay at kMin,
// even if the congestion signal is very high.
- EXPECT_GE(nada_sender_.bitrate_kbps(), kMin);
+ EXPECT_GE(nada_sender_.bitrate_kbps(), kMinBitrateKbps);
nada_sender_.set_original_operating_mode(false);
- nada_sender_.set_bitrate_kbps(5 * kMin);
+ nada_sender_.set_bitrate_kbps(5 * kMinBitrateKbps);
for (int i = 0; i < 100; ++i) {
int previous_bitrate = nada_sender_.bitrate_kbps();
@@ -279,14 +279,13 @@ TEST_F(NadaSenderSideTest, VeryLowBandwith) {
nada_sender_.GiveFeedback(congested_fb);
EXPECT_LE(nada_sender_.bitrate_kbps(), previous_bitrate);
}
- EXPECT_EQ(nada_sender_.bitrate_kbps(), kMin);
+ EXPECT_EQ(nada_sender_.bitrate_kbps(), kMinBitrateKbps);
}
// Sending bitrate should increase and reach its Max bound.
TEST_F(NadaSenderSideTest, VeryHighBandwith) {
const int64_t kOneWayDelayMs = 50;
- const int kMax = NadaBweSender::kMaxRefRateKbps;
- const size_t kRecentReceivingRate = static_cast<size_t>(kMax);
+ const size_t kRecentReceivingRate = static_cast<size_t>(kMaxBitrateKbps);
const int64_t kRefSignalMs = 5;
int64_t send_time_ms = nada_sender_.NowMs() - kOneWayDelayMs;
@@ -299,21 +298,21 @@ TEST_F(NadaSenderSideTest, VeryHighBandwith) {
nada_sender_.GiveFeedback(not_congested_fb);
EXPECT_GE(nada_sender_.bitrate_kbps(), previous_bitrate);
}
- EXPECT_EQ(nada_sender_.bitrate_kbps(), kMax);
+ EXPECT_EQ(nada_sender_.bitrate_kbps(), kMaxBitrateKbps);
nada_sender_.set_original_operating_mode(false);
- nada_sender_.set_bitrate_kbps(NadaBweSender::kMinRefRateKbps);
+ nada_sender_.set_bitrate_kbps(kMinBitrateKbps);
for (int i = 0; i < 100; ++i) {
int previous_bitrate = nada_sender_.bitrate_kbps();
nada_sender_.GiveFeedback(not_congested_fb);
EXPECT_GE(nada_sender_.bitrate_kbps(), previous_bitrate);
}
- EXPECT_EQ(nada_sender_.bitrate_kbps(), kMax);
+ EXPECT_EQ(nada_sender_.bitrate_kbps(), kMaxBitrateKbps);
}
TEST_F(NadaReceiverSideTest, ReceivingRateNoPackets) {
- EXPECT_EQ(nada_receiver_.RecentReceivingRate(), static_cast<size_t>(0));
+ EXPECT_EQ(nada_receiver_.RecentKbps(), static_cast<size_t>(0));
}
TEST_F(NadaReceiverSideTest, ReceivingRateSinglePacket) {
@@ -329,25 +328,8 @@ TEST_F(NadaReceiverSideTest, ReceivingRateSinglePacket) {
const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeWindowMs;
- EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps);
-}
-
-TEST_F(NadaReceiverSideTest, ReceivingRateLargePackets) {
- const size_t kPayloadSizeBytes = 3000 * 1000;
- const int64_t kTimeGapMs = 3000; // Between each packet.
- const int64_t kOneWayDelayMs = 1000;
-
- for (int i = 1; i < 5; ++i) {
- int64_t send_time_us = i * kTimeGapMs * 1000;
- int64_t arrival_time_ms = send_time_us / 1000 + kOneWayDelayMs;
- uint16_t sequence_number = i;
- const MediaPacket media_packet(kFlowId, send_time_us, kPayloadSizeBytes,
- sequence_number);
- nada_receiver_.ReceivePacket(arrival_time_ms, media_packet);
- }
-
- const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeGapMs;
- EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps);
+ EXPECT_NEAR(nada_receiver_.RecentKbps(), kReceivingRateKbps,
+ static_cast<float>(kReceivingRateKbps) / 100);
}
TEST_F(NadaReceiverSideTest, ReceivingRateSmallPackets) {
@@ -365,62 +347,8 @@ TEST_F(NadaReceiverSideTest, ReceivingRateSmallPackets) {
}
const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeGapMs;
- EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps);
-}
-
-TEST_F(NadaReceiverSideTest, ReceivingRateIntermittentPackets) {
- const size_t kPayloadSizeBytes = 100 * 1000;
- const int64_t kTimeGapMs = 50; // Between each packet.
- const int64_t kFirstSendTimeMs = 0;
- const int64_t kOneWayDelayMs = 50;
-
- // Gap between first and other packets
- const MediaPacket media_packet(kFlowId, kFirstSendTimeMs, kPayloadSizeBytes,
- 1);
- nada_receiver_.ReceivePacket(kFirstSendTimeMs + kOneWayDelayMs, media_packet);
-
- const int64_t kDelayAfterFirstPacketMs = 1000;
- const int kNumPackets = 5; // Small enough so that all packets are covered.
- EXPECT_LT((kNumPackets - 2) * kTimeGapMs,
- NadaBweReceiver::kReceivingRateTimeWindowMs);
- const int64_t kTimeWindowMs =
- kDelayAfterFirstPacketMs + (kNumPackets - 2) * kTimeGapMs;
-
- for (int i = 2; i <= kNumPackets; ++i) {
- int64_t send_time_us =
- ((i - 2) * kTimeGapMs + kFirstSendTimeMs + kDelayAfterFirstPacketMs) *
- 1000;
- int64_t arrival_time_ms = send_time_us / 1000 + kOneWayDelayMs;
- uint16_t sequence_number = i;
- const MediaPacket media_packet(kFlowId, send_time_us, kPayloadSizeBytes,
- sequence_number);
- nada_receiver_.ReceivePacket(arrival_time_ms, media_packet);
- }
-
- const size_t kTotalReceivedKb = 8 * kNumPackets * kPayloadSizeBytes;
- const int64_t kCorrectedTimeWindowMs =
- (kTimeWindowMs * kNumPackets) / (kNumPackets - 1);
- EXPECT_EQ(nada_receiver_.RecentReceivingRate(),
- kTotalReceivedKb / kCorrectedTimeWindowMs);
-}
-
-TEST_F(NadaReceiverSideTest, ReceivingRateDuplicatedPackets) {
- const size_t kPayloadSizeBytes = 500 * 1000;
- const int64_t kSendTimeUs = 300 * 1000;
- const int64_t kArrivalTimeMs = kSendTimeUs / 1000 + 100;
- const uint16_t kSequenceNumber = 1;
- const int64_t kTimeWindowMs = NadaBweReceiver::kReceivingRateTimeWindowMs;
-
- // Insert the same packet twice.
- for (int i = 0; i < 2; ++i) {
- const MediaPacket media_packet(kFlowId, kSendTimeUs + 50 * i,
- kPayloadSizeBytes, kSequenceNumber);
- nada_receiver_.ReceivePacket(kArrivalTimeMs + 50 * i, media_packet);
- }
- // Should be counted only once.
- const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeWindowMs;
-
- EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps);
+ EXPECT_NEAR(nada_receiver_.RecentKbps(), kReceivingRateKbps,
+ static_cast<float>(kReceivingRateKbps) / 100);
stefan-webrtc 2015/07/09 09:55:00 divide with 100.0f here and above.
magalhaesc 2015/07/09 11:43:22 Done.
}
TEST_F(NadaReceiverSideTest, PacketLossNoPackets) {

Powered by Google App Engine
This is Rietveld 408576698