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

Side by Side Diff: content/browser/download/rate_estimator_unittest.cc

Issue 14697023: downloads: Improve download rate estimation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comment typo Created 7 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/download/rate_estimator.h"
6
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 using base::TimeDelta;
10
11 namespace content {
12
13 TEST(RateEstimatorTest, RateEstimator) {
14 base::TimeTicks now;
15 RateEstimator estimator(TimeDelta::FromSeconds(1), 10u, now);
16 EXPECT_EQ(0u, estimator.GetCountPerSecond(now));
17
18 estimator.Increment(50u, now);
19 EXPECT_EQ(50u, estimator.GetCountPerSecond(now));
20
21 now += TimeDelta::FromMilliseconds(800);
22 estimator.Increment(50, now);
23 EXPECT_EQ(100u, estimator.GetCountPerSecond(now));
24
25 // Advance time.
26 now += TimeDelta::FromSeconds(3);
27 EXPECT_EQ(25u, estimator.GetCountPerSecond(now));
28 estimator.Increment(60, now);
29 EXPECT_EQ(40u, estimator.GetCountPerSecond(now));
30
31 // Advance time again.
32 now += TimeDelta::FromSeconds(4);
33 EXPECT_EQ(20u, estimator.GetCountPerSecond(now));
34
35 // Advance time to the end.
36 now += TimeDelta::FromSeconds(2);
37 EXPECT_EQ(16u, estimator.GetCountPerSecond(now));
38 estimator.Increment(100, now);
39 EXPECT_EQ(26u, estimator.GetCountPerSecond(now));
40
41 // Now wrap around to the start.
42 now += TimeDelta::FromSeconds(1);
43 EXPECT_EQ(16u, estimator.GetCountPerSecond(now));
44 estimator.Increment(100, now);
45 EXPECT_EQ(26u, estimator.GetCountPerSecond(now));
46
47 // Advance far into the future.
48 now += TimeDelta::FromSeconds(40);
49 EXPECT_EQ(0u, estimator.GetCountPerSecond(now));
50 estimator.Increment(100, now);
51 EXPECT_EQ(100u, estimator.GetCountPerSecond(now));
52
53 // Pretend that there is timeticks wrap around.
54 now = base::TimeTicks();
55 EXPECT_EQ(0u, estimator.GetCountPerSecond(now));
56 }
57
58 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698