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

Side by Side Diff: media/base/time_delta_interpolator_unittest.cc

Issue 376013003: Rename media::Clock to media::TimeDeltaInterpolator and update API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/logging.h" 5 #include "base/logging.h"
6 #include "base/test/simple_test_tick_clock.h" 6 #include "base/test/simple_test_tick_clock.h"
7 #include "media/base/clock.h" 7 #include "media/base/time_delta_interpolator.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace media { 10 namespace media {
11 11
12 class ClockTest : public ::testing::Test { 12 class TimeDeltaInterpolatorTest : public ::testing::Test {
13 public: 13 public:
14 ClockTest() : clock_(&test_tick_clock_) {} 14 TimeDeltaInterpolatorTest() : interpolator_(&test_tick_clock_) {}
15 15
16 protected: 16 protected:
17 void AdvanceSystemTime(base::TimeDelta delta) { 17 void AdvanceSystemTime(base::TimeDelta delta) {
18 test_tick_clock_.Advance(delta); 18 test_tick_clock_.Advance(delta);
19 } 19 }
20 20
21 base::SimpleTestTickClock test_tick_clock_; 21 base::SimpleTestTickClock test_tick_clock_;
22 Clock clock_; 22 TimeDeltaInterpolator interpolator_;
23 base::TimeDelta time_elapsed_; 23 base::TimeDelta time_elapsed_;
24 }; 24 };
25 25
26 TEST_F(ClockTest, Created) { 26 TEST_F(TimeDeltaInterpolatorTest, Created) {
27 const base::TimeDelta kExpected = base::TimeDelta::FromSeconds(0); 27 const base::TimeDelta kExpected = base::TimeDelta::FromSeconds(0);
28 EXPECT_EQ(kExpected, clock_.Elapsed()); 28 EXPECT_EQ(kExpected, interpolator_.GetInterpolatedTime());
29 } 29 }
30 30
31 TEST_F(ClockTest, Play_NormalSpeed) { 31 TEST_F(TimeDeltaInterpolatorTest, Play_NormalSpeed) {
32 const base::TimeDelta kZero; 32 const base::TimeDelta kZero;
33 const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(2); 33 const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(2);
34 34
35 EXPECT_EQ(kZero, clock_.Play()); 35 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
36 AdvanceSystemTime(kTimeToAdvance); 36 AdvanceSystemTime(kTimeToAdvance);
37 EXPECT_EQ(kTimeToAdvance, clock_.Elapsed()); 37 EXPECT_EQ(kTimeToAdvance, interpolator_.GetInterpolatedTime());
38 } 38 }
39 39
40 TEST_F(ClockTest, Play_DoubleSpeed) { 40 TEST_F(TimeDeltaInterpolatorTest, Play_DoubleSpeed) {
41 const base::TimeDelta kZero; 41 const base::TimeDelta kZero;
42 const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(5); 42 const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(5);
43 43
44 clock_.SetPlaybackRate(2.0f); 44 interpolator_.SetPlaybackRate(2.0f);
45 EXPECT_EQ(kZero, clock_.Play()); 45 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
46 AdvanceSystemTime(kTimeToAdvance); 46 AdvanceSystemTime(kTimeToAdvance);
47 EXPECT_EQ(2 * kTimeToAdvance, clock_.Elapsed()); 47 EXPECT_EQ(2 * kTimeToAdvance, interpolator_.GetInterpolatedTime());
48 } 48 }
49 49
50 TEST_F(ClockTest, Play_HalfSpeed) { 50 TEST_F(TimeDeltaInterpolatorTest, Play_HalfSpeed) {
51 const base::TimeDelta kZero; 51 const base::TimeDelta kZero;
52 const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(4); 52 const base::TimeDelta kTimeToAdvance = base::TimeDelta::FromSeconds(4);
53 53
54 clock_.SetPlaybackRate(0.5f); 54 interpolator_.SetPlaybackRate(0.5f);
55 EXPECT_EQ(kZero, clock_.Play()); 55 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
56 AdvanceSystemTime(kTimeToAdvance); 56 AdvanceSystemTime(kTimeToAdvance);
57 EXPECT_EQ(kTimeToAdvance / 2, clock_.Elapsed()); 57 EXPECT_EQ(kTimeToAdvance / 2, interpolator_.GetInterpolatedTime());
58 } 58 }
59 59
60 TEST_F(ClockTest, Play_ZeroSpeed) { 60 TEST_F(TimeDeltaInterpolatorTest, Play_ZeroSpeed) {
61 // We'll play for 2 seconds at normal speed, 4 seconds at zero speed, and 8 61 // We'll play for 2 seconds at normal speed, 4 seconds at zero speed, and 8
62 // seconds at normal speed. 62 // seconds at normal speed.
63 const base::TimeDelta kZero; 63 const base::TimeDelta kZero;
64 const base::TimeDelta kPlayDuration1 = base::TimeDelta::FromSeconds(2); 64 const base::TimeDelta kPlayDuration1 = base::TimeDelta::FromSeconds(2);
65 const base::TimeDelta kPlayDuration2 = base::TimeDelta::FromSeconds(4); 65 const base::TimeDelta kPlayDuration2 = base::TimeDelta::FromSeconds(4);
66 const base::TimeDelta kPlayDuration3 = base::TimeDelta::FromSeconds(8); 66 const base::TimeDelta kPlayDuration3 = base::TimeDelta::FromSeconds(8);
67 const base::TimeDelta kExpected = kPlayDuration1 + kPlayDuration3; 67 const base::TimeDelta kExpected = kPlayDuration1 + kPlayDuration3;
68 68
69 EXPECT_EQ(kZero, clock_.Play()); 69 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
70 70
71 AdvanceSystemTime(kPlayDuration1); 71 AdvanceSystemTime(kPlayDuration1);
72 clock_.SetPlaybackRate(0.0f); 72 interpolator_.SetPlaybackRate(0.0f);
73 AdvanceSystemTime(kPlayDuration2); 73 AdvanceSystemTime(kPlayDuration2);
74 clock_.SetPlaybackRate(1.0f); 74 interpolator_.SetPlaybackRate(1.0f);
75 AdvanceSystemTime(kPlayDuration3); 75 AdvanceSystemTime(kPlayDuration3);
76 76
77 EXPECT_EQ(kExpected, clock_.Elapsed()); 77 EXPECT_EQ(kExpected, interpolator_.GetInterpolatedTime());
78 } 78 }
79 79
80 TEST_F(ClockTest, Play_MultiSpeed) { 80 TEST_F(TimeDeltaInterpolatorTest, Play_MultiSpeed) {
81 // We'll play for 2 seconds at half speed, 4 seconds at normal speed, and 8 81 // We'll play for 2 seconds at half speed, 4 seconds at normal speed, and 8
82 // seconds at double speed. 82 // seconds at double speed.
83 const base::TimeDelta kZero; 83 const base::TimeDelta kZero;
84 const base::TimeDelta kPlayDuration1 = base::TimeDelta::FromSeconds(2); 84 const base::TimeDelta kPlayDuration1 = base::TimeDelta::FromSeconds(2);
85 const base::TimeDelta kPlayDuration2 = base::TimeDelta::FromSeconds(4); 85 const base::TimeDelta kPlayDuration2 = base::TimeDelta::FromSeconds(4);
86 const base::TimeDelta kPlayDuration3 = base::TimeDelta::FromSeconds(8); 86 const base::TimeDelta kPlayDuration3 = base::TimeDelta::FromSeconds(8);
87 const base::TimeDelta kExpected = 87 const base::TimeDelta kExpected =
88 kPlayDuration1 / 2 + kPlayDuration2 + 2 * kPlayDuration3; 88 kPlayDuration1 / 2 + kPlayDuration2 + 2 * kPlayDuration3;
89 89
90 clock_.SetPlaybackRate(0.5f); 90 interpolator_.SetPlaybackRate(0.5f);
91 EXPECT_EQ(kZero, clock_.Play()); 91 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
92 AdvanceSystemTime(kPlayDuration1); 92 AdvanceSystemTime(kPlayDuration1);
93 93
94 clock_.SetPlaybackRate(1.0f); 94 interpolator_.SetPlaybackRate(1.0f);
95 AdvanceSystemTime(kPlayDuration2); 95 AdvanceSystemTime(kPlayDuration2);
96 96
97 clock_.SetPlaybackRate(2.0f); 97 interpolator_.SetPlaybackRate(2.0f);
98 AdvanceSystemTime(kPlayDuration3); 98 AdvanceSystemTime(kPlayDuration3);
99 EXPECT_EQ(kExpected, clock_.Elapsed()); 99 EXPECT_EQ(kExpected, interpolator_.GetInterpolatedTime());
100 } 100 }
101 101
102 TEST_F(ClockTest, Pause) { 102 TEST_F(TimeDeltaInterpolatorTest, Pause) {
103 const base::TimeDelta kZero; 103 const base::TimeDelta kZero;
104 const base::TimeDelta kPlayDuration = base::TimeDelta::FromSeconds(4); 104 const base::TimeDelta kPlayDuration = base::TimeDelta::FromSeconds(4);
105 const base::TimeDelta kPauseDuration = base::TimeDelta::FromSeconds(20); 105 const base::TimeDelta kPauseDuration = base::TimeDelta::FromSeconds(20);
106 const base::TimeDelta kExpectedFirstPause = kPlayDuration; 106 const base::TimeDelta kExpectedFirstPause = kPlayDuration;
107 const base::TimeDelta kExpectedSecondPause = 2 * kPlayDuration; 107 const base::TimeDelta kExpectedSecondPause = 2 * kPlayDuration;
108 108
109 // Play for 4 seconds. 109 // Play for 4 seconds.
110 EXPECT_EQ(kZero, clock_.Play()); 110 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
111 AdvanceSystemTime(kPlayDuration); 111 AdvanceSystemTime(kPlayDuration);
112 112
113 // Pause for 20 seconds. 113 // Pause for 20 seconds.
114 EXPECT_EQ(kExpectedFirstPause, clock_.Pause()); 114 EXPECT_EQ(kExpectedFirstPause, interpolator_.StopInterpolating());
115 EXPECT_EQ(kExpectedFirstPause, clock_.Elapsed()); 115 EXPECT_EQ(kExpectedFirstPause, interpolator_.GetInterpolatedTime());
116 AdvanceSystemTime(kPauseDuration); 116 AdvanceSystemTime(kPauseDuration);
117 EXPECT_EQ(kExpectedFirstPause, clock_.Elapsed()); 117 EXPECT_EQ(kExpectedFirstPause, interpolator_.GetInterpolatedTime());
118 118
119 // Play again for 4 more seconds. 119 // Play again for 4 more seconds.
120 EXPECT_EQ(kExpectedFirstPause, clock_.Play()); 120 EXPECT_EQ(kExpectedFirstPause, interpolator_.StartInterpolating());
121 AdvanceSystemTime(kPlayDuration); 121 AdvanceSystemTime(kPlayDuration);
122 EXPECT_EQ(kExpectedSecondPause, clock_.Pause()); 122 EXPECT_EQ(kExpectedSecondPause, interpolator_.StopInterpolating());
123 EXPECT_EQ(kExpectedSecondPause, clock_.Elapsed()); 123 EXPECT_EQ(kExpectedSecondPause, interpolator_.GetInterpolatedTime());
124 } 124 }
125 125
126 TEST_F(ClockTest, SetTime_Paused) { 126 TEST_F(TimeDeltaInterpolatorTest, SetTime_Paused) {
127 const base::TimeDelta kFirstTime = base::TimeDelta::FromSeconds(4); 127 const base::TimeDelta kFirstTime = base::TimeDelta::FromSeconds(4);
128 const base::TimeDelta kSecondTime = base::TimeDelta::FromSeconds(16); 128 const base::TimeDelta kSecondTime = base::TimeDelta::FromSeconds(16);
129 const base::TimeDelta kArbitraryMaxTime = base::TimeDelta::FromSeconds(100); 129 const base::TimeDelta kArbitraryMaxTime = base::TimeDelta::FromSeconds(100);
130 130
131 clock_.SetTime(kFirstTime, kArbitraryMaxTime); 131 interpolator_.SetTime(kFirstTime, kArbitraryMaxTime);
132 EXPECT_EQ(kFirstTime, clock_.Elapsed()); 132 EXPECT_EQ(kFirstTime, interpolator_.GetInterpolatedTime());
133 clock_.SetTime(kSecondTime, kArbitraryMaxTime); 133 interpolator_.SetTime(kSecondTime, kArbitraryMaxTime);
134 EXPECT_EQ(kSecondTime, clock_.Elapsed()); 134 EXPECT_EQ(kSecondTime, interpolator_.GetInterpolatedTime());
135 } 135 }
136 136
137 TEST_F(ClockTest, SetTime_Playing) { 137 TEST_F(TimeDeltaInterpolatorTest, SetTime_Playing) {
138 // We'll play for 4 seconds, then set the time to 12, then play for 4 more 138 // We'll play for 4 seconds, then set the time to 12, then play for 4 more
139 // seconds. 139 // seconds.
140 const base::TimeDelta kZero; 140 const base::TimeDelta kZero;
141 const base::TimeDelta kPlayDuration = base::TimeDelta::FromSeconds(4); 141 const base::TimeDelta kPlayDuration = base::TimeDelta::FromSeconds(4);
142 const base::TimeDelta kUpdatedTime = base::TimeDelta::FromSeconds(12); 142 const base::TimeDelta kUpdatedTime = base::TimeDelta::FromSeconds(12);
143 const base::TimeDelta kArbitraryMaxTime = base::TimeDelta::FromSeconds(100); 143 const base::TimeDelta kArbitraryMaxTime = base::TimeDelta::FromSeconds(100);
144 const base::TimeDelta kExpected = kUpdatedTime + kPlayDuration; 144 const base::TimeDelta kExpected = kUpdatedTime + kPlayDuration;
145 145
146 EXPECT_EQ(kZero, clock_.Play()); 146 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
147 AdvanceSystemTime(kPlayDuration); 147 AdvanceSystemTime(kPlayDuration);
148 148
149 clock_.SetTime(kUpdatedTime, kArbitraryMaxTime); 149 interpolator_.SetTime(kUpdatedTime, kArbitraryMaxTime);
150 AdvanceSystemTime(kPlayDuration); 150 AdvanceSystemTime(kPlayDuration);
151 EXPECT_EQ(kExpected, clock_.Elapsed()); 151 EXPECT_EQ(kExpected, interpolator_.GetInterpolatedTime());
152 } 152 }
153 153
154 TEST_F(ClockTest, SetMaxTime) { 154 TEST_F(TimeDeltaInterpolatorTest, SetMaxTime) {
155 const base::TimeDelta kZero; 155 const base::TimeDelta kZero;
156 const base::TimeDelta kTimeInterval = base::TimeDelta::FromSeconds(4); 156 const base::TimeDelta kTimeInterval = base::TimeDelta::FromSeconds(4);
157 const base::TimeDelta kMaxTime = base::TimeDelta::FromSeconds(6); 157 const base::TimeDelta kMaxTime = base::TimeDelta::FromSeconds(6);
158 158
159 EXPECT_EQ(kZero, clock_.Play()); 159 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
160 clock_.SetMaxTime(kMaxTime); 160 interpolator_.SetMaxTime(kMaxTime);
161 AdvanceSystemTime(kTimeInterval); 161 AdvanceSystemTime(kTimeInterval);
162 EXPECT_EQ(kTimeInterval, clock_.Elapsed()); 162 EXPECT_EQ(kTimeInterval, interpolator_.GetInterpolatedTime());
163 163
164 AdvanceSystemTime(kTimeInterval); 164 AdvanceSystemTime(kTimeInterval);
165 EXPECT_EQ(kMaxTime, clock_.Elapsed()); 165 EXPECT_EQ(kMaxTime, interpolator_.GetInterpolatedTime());
166 166
167 AdvanceSystemTime(kTimeInterval); 167 AdvanceSystemTime(kTimeInterval);
168 EXPECT_EQ(kMaxTime, clock_.Elapsed()); 168 EXPECT_EQ(kMaxTime, interpolator_.GetInterpolatedTime());
169 } 169 }
170 170
171 TEST_F(ClockTest, SetMaxTime_MultipleTimes) { 171 TEST_F(TimeDeltaInterpolatorTest, SetMaxTime_MultipleTimes) {
172 const base::TimeDelta kZero; 172 const base::TimeDelta kZero;
173 const base::TimeDelta kTimeInterval = base::TimeDelta::FromSeconds(4); 173 const base::TimeDelta kTimeInterval = base::TimeDelta::FromSeconds(4);
174 const base::TimeDelta kMaxTime0 = base::TimeDelta::FromSeconds(120); 174 const base::TimeDelta kMaxTime0 = base::TimeDelta::FromSeconds(120);
175 const base::TimeDelta kMaxTime1 = base::TimeDelta::FromSeconds(6); 175 const base::TimeDelta kMaxTime1 = base::TimeDelta::FromSeconds(6);
176 const base::TimeDelta kMaxTime2 = base::TimeDelta::FromSeconds(12); 176 const base::TimeDelta kMaxTime2 = base::TimeDelta::FromSeconds(12);
177 177
178 EXPECT_EQ(kZero, clock_.Play()); 178 EXPECT_EQ(kZero, interpolator_.StartInterpolating());
179 clock_.SetMaxTime(kMaxTime0); 179 interpolator_.SetMaxTime(kMaxTime0);
180 AdvanceSystemTime(kTimeInterval); 180 AdvanceSystemTime(kTimeInterval);
181 EXPECT_EQ(kTimeInterval, clock_.Elapsed()); 181 EXPECT_EQ(kTimeInterval, interpolator_.GetInterpolatedTime());
182 182
183 clock_.SetMaxTime(kMaxTime1); 183 interpolator_.SetMaxTime(kMaxTime1);
184 AdvanceSystemTime(kTimeInterval); 184 AdvanceSystemTime(kTimeInterval);
185 EXPECT_EQ(kMaxTime1, clock_.Elapsed()); 185 EXPECT_EQ(kMaxTime1, interpolator_.GetInterpolatedTime());
186 186
187 AdvanceSystemTime(kTimeInterval); 187 AdvanceSystemTime(kTimeInterval);
188 EXPECT_EQ(kMaxTime1, clock_.Elapsed()); 188 EXPECT_EQ(kMaxTime1, interpolator_.GetInterpolatedTime());
189 189
190 clock_.SetMaxTime(kMaxTime2); 190 interpolator_.SetMaxTime(kMaxTime2);
191 EXPECT_EQ(kMaxTime1, clock_.Elapsed()); 191 EXPECT_EQ(kMaxTime1, interpolator_.GetInterpolatedTime());
192 192
193 AdvanceSystemTime(kTimeInterval); 193 AdvanceSystemTime(kTimeInterval);
194 EXPECT_EQ(kMaxTime1 + kTimeInterval, clock_.Elapsed()); 194 EXPECT_EQ(kMaxTime1 + kTimeInterval, interpolator_.GetInterpolatedTime());
195 195
196 AdvanceSystemTime(kTimeInterval); 196 AdvanceSystemTime(kTimeInterval);
197 EXPECT_EQ(kMaxTime2, clock_.Elapsed()); 197 EXPECT_EQ(kMaxTime2, interpolator_.GetInterpolatedTime());
198 } 198 }
199 199
200 } // namespace media 200 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698