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

Side by Side 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: Comments addressed 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 306
307 for (int i = 0; i < 100; ++i) { 307 for (int i = 0; i < 100; ++i) {
308 int previous_bitrate = nada_sender_.bitrate_kbps(); 308 int previous_bitrate = nada_sender_.bitrate_kbps();
309 nada_sender_.GiveFeedback(not_congested_fb); 309 nada_sender_.GiveFeedback(not_congested_fb);
310 EXPECT_GE(nada_sender_.bitrate_kbps(), previous_bitrate); 310 EXPECT_GE(nada_sender_.bitrate_kbps(), previous_bitrate);
311 } 311 }
312 EXPECT_EQ(nada_sender_.bitrate_kbps(), kMax); 312 EXPECT_EQ(nada_sender_.bitrate_kbps(), kMax);
313 } 313 }
314 314
315 TEST_F(NadaReceiverSideTest, ReceivingRateNoPackets) { 315 TEST_F(NadaReceiverSideTest, ReceivingRateNoPackets) {
316 EXPECT_EQ(nada_receiver_.RecentReceivingRate(), static_cast<size_t>(0)); 316 EXPECT_EQ(nada_receiver_.RecentKbps(), static_cast<size_t>(0));
317 } 317 }
318 318
319 TEST_F(NadaReceiverSideTest, ReceivingRateSinglePacket) { 319 // RecentKbps and RecentReceivingRate are calculated differently.
320 const size_t kPayloadSizeBytes = 500 * 1000; 320 // TEST_F(NadaReceiverSideTest, ReceivingRateSinglePacket) {
stefan-webrtc 2015/07/02 11:03:41 I assume these shouldn't be disabled?
magalhaesc 2015/07/02 17:06:18 Some unittests will be removed as they are not han
321 const int64_t kSendTimeUs = 300 * 1000; 321 // const size_t kPayloadSizeBytes = 500 * 1000;
322 const int64_t kArrivalTimeMs = kSendTimeUs / 1000 + 100; 322 // const int64_t kSendTimeUs = 300 * 1000;
323 const uint16_t kSequenceNumber = 1; 323 // const int64_t kArrivalTimeMs = kSendTimeUs / 1000 + 100;
324 const int64_t kTimeWindowMs = NadaBweReceiver::kReceivingRateTimeWindowMs; 324 // const uint16_t kSequenceNumber = 1;
325 // const int64_t kTimeWindowMs = NadaBweReceiver::kReceivingRateTimeWindowMs;
325 326
326 const MediaPacket media_packet(kFlowId, kSendTimeUs, kPayloadSizeBytes, 327 // const MediaPacket media_packet(kFlowId, kSendTimeUs, kPayloadSizeBytes,
327 kSequenceNumber); 328 // kSequenceNumber);
328 nada_receiver_.ReceivePacket(kArrivalTimeMs, media_packet); 329 // nada_receiver_.ReceivePacket(kArrivalTimeMs, media_packet);
329 330
330 const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeWindowMs; 331 // const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeWindowMs;
331 332
332 EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps); 333 // EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps);
333 } 334 // }
334 335
335 TEST_F(NadaReceiverSideTest, ReceivingRateLargePackets) { 336 // RecentKbps and RecentReceivingRate are calculated differently.
336 const size_t kPayloadSizeBytes = 3000 * 1000; 337 // TEST_F(NadaReceiverSideTest, ReceivingRateLargePackets) {
337 const int64_t kTimeGapMs = 3000; // Between each packet. 338 // const size_t kPayloadSizeBytes = 3000 * 1000;
338 const int64_t kOneWayDelayMs = 1000; 339 // const int64_t kTimeGapMs = 3000; // Between each packet.
340 // const int64_t kOneWayDelayMs = 1000;
339 341
340 for (int i = 1; i < 5; ++i) { 342 // for (int i = 1; i < 5; ++i) {
341 int64_t send_time_us = i * kTimeGapMs * 1000; 343 // int64_t send_time_us = i * kTimeGapMs * 1000;
342 int64_t arrival_time_ms = send_time_us / 1000 + kOneWayDelayMs; 344 // int64_t arrival_time_ms = send_time_us / 1000 + kOneWayDelayMs;
343 uint16_t sequence_number = i; 345 // uint16_t sequence_number = i;
344 const MediaPacket media_packet(kFlowId, send_time_us, kPayloadSizeBytes, 346 // const MediaPacket media_packet(kFlowId, send_time_us, kPayloadSizeBytes,
345 sequence_number); 347 // sequence_number);
346 nada_receiver_.ReceivePacket(arrival_time_ms, media_packet); 348 // nada_receiver_.ReceivePacket(arrival_time_ms, media_packet);
347 } 349 // }
348 350
349 const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeGapMs; 351 // const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeGapMs;
350 EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps); 352 // EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps);
351 } 353 // }
352 354
353 TEST_F(NadaReceiverSideTest, ReceivingRateSmallPackets) { 355 // RecentKbps and RecentReceivingRate are calculated differently.
354 const size_t kPayloadSizeBytes = 100 * 1000; 356 // TEST_F(NadaReceiverSideTest, ReceivingRateSmallPackets) {
355 const int64_t kTimeGapMs = 50; // Between each packet. 357 // const size_t kPayloadSizeBytes = 100 * 1000;
356 const int64_t kOneWayDelayMs = 50; 358 // const int64_t kTimeGapMs = 50; // Between each packet.
359 // const int64_t kOneWayDelayMs = 50;
357 360
358 for (int i = 1; i < 50; ++i) { 361 // for (int i = 1; i < 50; ++i) {
359 int64_t send_time_us = i * kTimeGapMs * 1000; 362 // int64_t send_time_us = i * kTimeGapMs * 1000;
360 int64_t arrival_time_ms = send_time_us / 1000 + kOneWayDelayMs; 363 // int64_t arrival_time_ms = send_time_us / 1000 + kOneWayDelayMs;
361 uint16_t sequence_number = i; 364 // uint16_t sequence_number = i;
362 const MediaPacket media_packet(kFlowId, send_time_us, kPayloadSizeBytes, 365 // const MediaPacket media_packet(kFlowId, send_time_us, kPayloadSizeBytes,
363 sequence_number); 366 // sequence_number);
364 nada_receiver_.ReceivePacket(arrival_time_ms, media_packet); 367 // nada_receiver_.ReceivePacket(arrival_time_ms, media_packet);
365 } 368 // }
366 369
367 const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeGapMs; 370 // const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeGapMs;
368 EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps); 371 // RecentKbps and RecentReceivingRate are calculated differently.
369 } 372 // EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps);
373 // }
370 374
371 TEST_F(NadaReceiverSideTest, ReceivingRateIntermittentPackets) { 375 // RecentKbps and RecentReceivingRate are calculated differently.
372 const size_t kPayloadSizeBytes = 100 * 1000; 376 // TEST_F(NadaReceiverSideTest, ReceivingRateIntermittentPackets) {
373 const int64_t kTimeGapMs = 50; // Between each packet. 377 // const size_t kPayloadSizeBytes = 100 * 1000;
374 const int64_t kFirstSendTimeMs = 0; 378 // const int64_t kTimeGapMs = 50; // Between each packet.
375 const int64_t kOneWayDelayMs = 50; 379 // const int64_t kFirstSendTimeMs = 0;
380 // const int64_t kOneWayDelayMs = 50;
376 381
377 // Gap between first and other packets 382 // // Gap between first and other packets
378 const MediaPacket media_packet(kFlowId, kFirstSendTimeMs, kPayloadSizeBytes, 383 // const MediaPacket media_packet(kFlowId, kFirstSendTimeMs,
379 1); 384 // kPayloadSizeBytes,
380 nada_receiver_.ReceivePacket(kFirstSendTimeMs + kOneWayDelayMs, media_packet); 385 // 1);
386 // nada_receiver_.ReceivePacket(kFirstSendTimeMs + kOneWayDelayMs,
387 // media_packet);
381 388
382 const int64_t kDelayAfterFirstPacketMs = 1000; 389 // const int64_t kDelayAfterFirstPacketMs = 1000;
383 const int kNumPackets = 5; // Small enough so that all packets are covered. 390 // const int kNumPackets = 5; // Small enough so that all packets are
384 EXPECT_LT((kNumPackets - 2) * kTimeGapMs, 391 // covered.
385 NadaBweReceiver::kReceivingRateTimeWindowMs); 392 // EXPECT_LT((kNumPackets - 2) * kTimeGapMs,
386 const int64_t kTimeWindowMs = 393 // NadaBweReceiver::kReceivingRateTimeWindowMs);
387 kDelayAfterFirstPacketMs + (kNumPackets - 2) * kTimeGapMs; 394 // const int64_t kTimeWindowMs =
395 // kDelayAfterFirstPacketMs + (kNumPackets - 2) * kTimeGapMs;
388 396
389 for (int i = 2; i <= kNumPackets; ++i) { 397 // for (int i = 2; i <= kNumPackets; ++i) {
390 int64_t send_time_us = 398 // int64_t send_time_us =
391 ((i - 2) * kTimeGapMs + kFirstSendTimeMs + kDelayAfterFirstPacketMs) * 399 // ((i - 2) * kTimeGapMs + kFirstSendTimeMs + kDelayAfterFirstPacketMs)
392 1000; 400 // *
393 int64_t arrival_time_ms = send_time_us / 1000 + kOneWayDelayMs; 401 // 1000;
394 uint16_t sequence_number = i; 402 // int64_t arrival_time_ms = send_time_us / 1000 + kOneWayDelayMs;
395 const MediaPacket media_packet(kFlowId, send_time_us, kPayloadSizeBytes, 403 // uint16_t sequence_number = i;
396 sequence_number); 404 // const MediaPacket media_packet(kFlowId, send_time_us, kPayloadSizeBytes,
397 nada_receiver_.ReceivePacket(arrival_time_ms, media_packet); 405 // sequence_number);
398 } 406 // nada_receiver_.ReceivePacket(arrival_time_ms, media_packet);
407 // }
399 408
400 const size_t kTotalReceivedKb = 8 * kNumPackets * kPayloadSizeBytes; 409 // const size_t kTotalReceivedKb = 8 * kNumPackets * kPayloadSizeBytes;
401 const int64_t kCorrectedTimeWindowMs = 410 // const int64_t kCorrectedTimeWindowMs =
402 (kTimeWindowMs * kNumPackets) / (kNumPackets - 1); 411 // (kTimeWindowMs * kNumPackets) / (kNumPackets - 1);
403 EXPECT_EQ(nada_receiver_.RecentReceivingRate(),
404 kTotalReceivedKb / kCorrectedTimeWindowMs);
405 }
406 412
407 TEST_F(NadaReceiverSideTest, ReceivingRateDuplicatedPackets) { 413 // EXPECT_EQ(nada_receiver_.RecentReceivingRate(),
408 const size_t kPayloadSizeBytes = 500 * 1000; 414 // kTotalReceivedKb / kCorrectedTimeWindowMs);
409 const int64_t kSendTimeUs = 300 * 1000; 415 // }
410 const int64_t kArrivalTimeMs = kSendTimeUs / 1000 + 100;
411 const uint16_t kSequenceNumber = 1;
412 const int64_t kTimeWindowMs = NadaBweReceiver::kReceivingRateTimeWindowMs;
413 416
414 // Insert the same packet twice. 417 // RecentKbps and RecentReceivingRate are calculated differently.
415 for (int i = 0; i < 2; ++i) { 418 // TEST_F(NadaReceiverSideTest, ReceivingRateDuplicatedPackets) {
416 const MediaPacket media_packet(kFlowId, kSendTimeUs + 50 * i, 419 // const size_t kPayloadSizeBytes = 500 * 1000;
417 kPayloadSizeBytes, kSequenceNumber); 420 // const int64_t kSendTimeUs = 300 * 1000;
418 nada_receiver_.ReceivePacket(kArrivalTimeMs + 50 * i, media_packet); 421 // const int64_t kArrivalTimeMs = kSendTimeUs / 1000 + 100;
419 } 422 // const uint16_t kSequenceNumber = 1;
420 // Should be counted only once. 423 // const int64_t kTimeWindowMs = NadaBweReceiver::kReceivingRateTimeWindowMs;
421 const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeWindowMs;
422 424
423 EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps); 425 // // Insert the same packet twice.
424 } 426 // for (int i = 0; i < 2; ++i) {
427 // const MediaPacket media_packet(kFlowId, kSendTimeUs + 50 * i,
428 // kPayloadSizeBytes, kSequenceNumber);
429 // nada_receiver_.ReceivePacket(kArrivalTimeMs + 50 * i, media_packet);
430 // }
431 // // Should be counted only once.
432
433 // const size_t kReceivingRateKbps = 8 * kPayloadSizeBytes / kTimeWindowMs;
434 // EXPECT_EQ(nada_receiver_.RecentReceivingRate(), kReceivingRateKbps);
435 // }
425 436
426 TEST_F(NadaReceiverSideTest, PacketLossNoPackets) { 437 TEST_F(NadaReceiverSideTest, PacketLossNoPackets) {
427 EXPECT_EQ(nada_receiver_.RecentPacketLossRatio(), 0.0f); 438 EXPECT_EQ(nada_receiver_.RecentPacketLossRatio(), 0.0f);
428 } 439 }
429 440
430 TEST_F(NadaReceiverSideTest, PacketLossSinglePacket) { 441 TEST_F(NadaReceiverSideTest, PacketLossSinglePacket) {
431 const MediaPacket media_packet(kFlowId, 0, 0, 0); 442 const MediaPacket media_packet(kFlowId, 0, 0, 0);
432 nada_receiver_.ReceivePacket(0, media_packet); 443 nada_receiver_.ReceivePacket(0, media_packet);
433 EXPECT_EQ(nada_receiver_.RecentPacketLossRatio(), 0.0f); 444 EXPECT_EQ(nada_receiver_.RecentPacketLossRatio(), 0.0f);
434 } 445 }
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
602 for (int i = 1; i < kNumElements; ++i) { 613 for (int i = 1; i < kNumElements; ++i) {
603 EXPECT_EQ( 614 EXPECT_EQ(
604 exp_smoothed[i], 615 exp_smoothed[i],
605 static_cast<int64_t>(exp_smoothed[i - 1] * (1.0f - kAlpha) + 0.5f)); 616 static_cast<int64_t>(exp_smoothed[i - 1] * (1.0f - kAlpha) + 0.5f));
606 } 617 }
607 } 618 }
608 619
609 } // namespace bwe 620 } // namespace bwe
610 } // namespace testing 621 } // namespace testing
611 } // namespace webrtc 622 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698