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

Side by Side Diff: cc/animation/animation_unittest.cc

Issue 1866203004: Convert //cc from scoped_ptr to std::unique_ptr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "cc/animation/animation.h" 5 #include "cc/animation/animation.h"
6 6
7 #include "base/memory/ptr_util.h"
7 #include "cc/test/animation_test_common.h" 8 #include "cc/test/animation_test_common.h"
8 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
10 11
11 namespace cc { 12 namespace cc {
12 namespace { 13 namespace {
13 14
14 using base::TimeDelta; 15 using base::TimeDelta;
15 16
16 static base::TimeTicks TicksFromSecondsF(double seconds) { 17 static base::TimeTicks TicksFromSecondsF(double seconds) {
17 return base::TimeTicks::FromInternalValue(seconds * 18 return base::TimeTicks::FromInternalValue(seconds *
18 base::Time::kMicrosecondsPerSecond); 19 base::Time::kMicrosecondsPerSecond);
19 } 20 }
20 21
21 scoped_ptr<Animation> CreateAnimation(double iterations, 22 std::unique_ptr<Animation> CreateAnimation(double iterations,
22 double duration, 23 double duration,
23 double playback_rate) { 24 double playback_rate) {
24 scoped_ptr<Animation> to_return( 25 std::unique_ptr<Animation> to_return(
25 Animation::Create(make_scoped_ptr(new FakeFloatAnimationCurve(duration)), 26 Animation::Create(base::WrapUnique(new FakeFloatAnimationCurve(duration)),
26 0, 1, TargetProperty::OPACITY)); 27 0, 1, TargetProperty::OPACITY));
27 to_return->set_iterations(iterations); 28 to_return->set_iterations(iterations);
28 to_return->set_playback_rate(playback_rate); 29 to_return->set_playback_rate(playback_rate);
29 return to_return; 30 return to_return;
30 } 31 }
31 32
32 scoped_ptr<Animation> CreateAnimation(double iterations, double duration) { 33 std::unique_ptr<Animation> CreateAnimation(double iterations, double duration) {
33 return CreateAnimation(iterations, duration, 1); 34 return CreateAnimation(iterations, duration, 1);
34 } 35 }
35 36
36 scoped_ptr<Animation> CreateAnimation(double iterations) { 37 std::unique_ptr<Animation> CreateAnimation(double iterations) {
37 return CreateAnimation(iterations, 1, 1); 38 return CreateAnimation(iterations, 1, 1);
38 } 39 }
39 40
40 TEST(AnimationTest, TrimTimeZeroIterations) { 41 TEST(AnimationTest, TrimTimeZeroIterations) {
41 scoped_ptr<Animation> anim(CreateAnimation(0)); 42 std::unique_ptr<Animation> anim(CreateAnimation(0));
42 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 43 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
43 .InSecondsF()); 44 .InSecondsF());
44 EXPECT_EQ( 45 EXPECT_EQ(
45 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 46 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
46 EXPECT_EQ( 47 EXPECT_EQ(
47 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 48 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
48 } 49 }
49 50
50 TEST(AnimationTest, TrimTimeOneIteration) { 51 TEST(AnimationTest, TrimTimeOneIteration) {
51 scoped_ptr<Animation> anim(CreateAnimation(1)); 52 std::unique_ptr<Animation> anim(CreateAnimation(1));
52 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 53 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
53 .InSecondsF()); 54 .InSecondsF());
54 EXPECT_EQ( 55 EXPECT_EQ(
55 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 56 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
56 EXPECT_EQ( 57 EXPECT_EQ(
57 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 58 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
58 EXPECT_EQ( 59 EXPECT_EQ(
59 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF()); 60 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
60 } 61 }
61 62
62 TEST(AnimationTest, TrimTimeOneHalfIteration) { 63 TEST(AnimationTest, TrimTimeOneHalfIteration) {
63 scoped_ptr<Animation> anim(CreateAnimation(1.5)); 64 std::unique_ptr<Animation> anim(CreateAnimation(1.5));
64 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 65 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
65 .InSecondsF()); 66 .InSecondsF());
66 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 67 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
67 .InSecondsF()); 68 .InSecondsF());
68 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 69 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
69 .InSecondsF()); 70 .InSecondsF());
70 EXPECT_EQ(0.9, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.9)) 71 EXPECT_EQ(0.9, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.9))
71 .InSecondsF()); 72 .InSecondsF());
72 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 73 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
73 .InSecondsF()); 74 .InSecondsF());
74 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 75 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
75 .InSecondsF()); 76 .InSecondsF());
76 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 77 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
77 .InSecondsF()); 78 .InSecondsF());
78 } 79 }
79 80
80 TEST(AnimationTest, TrimTimeInfiniteIterations) { 81 TEST(AnimationTest, TrimTimeInfiniteIterations) {
81 scoped_ptr<Animation> anim(CreateAnimation(-1)); 82 std::unique_ptr<Animation> anim(CreateAnimation(-1));
82 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 83 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
83 .InSecondsF()); 84 .InSecondsF());
84 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 85 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
85 .InSecondsF()); 86 .InSecondsF());
86 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 87 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
87 .InSecondsF()); 88 .InSecondsF());
88 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 89 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
89 .InSecondsF()); 90 .InSecondsF());
90 } 91 }
91 92
92 TEST(AnimationTest, TrimTimeReverse) { 93 TEST(AnimationTest, TrimTimeReverse) {
93 scoped_ptr<Animation> anim(CreateAnimation(-1)); 94 std::unique_ptr<Animation> anim(CreateAnimation(-1));
94 anim->set_direction(Animation::DIRECTION_REVERSE); 95 anim->set_direction(Animation::DIRECTION_REVERSE);
95 EXPECT_EQ( 96 EXPECT_EQ(
96 1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF()); 97 1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF());
97 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 98 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
98 .InSecondsF()); 99 .InSecondsF());
99 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 100 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
100 .InSecondsF()); 101 .InSecondsF());
101 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 102 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
102 .InSecondsF()); 103 .InSecondsF());
103 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 104 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
104 .InSecondsF()); 105 .InSecondsF());
105 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 106 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
106 .InSecondsF()); 107 .InSecondsF());
107 } 108 }
108 109
109 TEST(AnimationTest, TrimTimeAlternateInfiniteIterations) { 110 TEST(AnimationTest, TrimTimeAlternateInfiniteIterations) {
110 scoped_ptr<Animation> anim(CreateAnimation(-1)); 111 std::unique_ptr<Animation> anim(CreateAnimation(-1));
111 anim->set_direction(Animation::DIRECTION_ALTERNATE); 112 anim->set_direction(Animation::DIRECTION_ALTERNATE);
112 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 113 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
113 .InSecondsF()); 114 .InSecondsF());
114 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 115 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
115 .InSecondsF()); 116 .InSecondsF());
116 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 117 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
117 .InSecondsF()); 118 .InSecondsF());
118 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 119 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
119 .InSecondsF()); 120 .InSecondsF());
120 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 121 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
121 .InSecondsF()); 122 .InSecondsF());
122 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 123 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
123 .InSecondsF()); 124 .InSecondsF());
124 } 125 }
125 126
126 TEST(AnimationTest, TrimTimeAlternateOneIteration) { 127 TEST(AnimationTest, TrimTimeAlternateOneIteration) {
127 scoped_ptr<Animation> anim(CreateAnimation(1)); 128 std::unique_ptr<Animation> anim(CreateAnimation(1));
128 anim->set_direction(Animation::DIRECTION_ALTERNATE); 129 anim->set_direction(Animation::DIRECTION_ALTERNATE);
129 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 130 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
130 .InSecondsF()); 131 .InSecondsF());
131 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 132 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
132 .InSecondsF()); 133 .InSecondsF());
133 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 134 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
134 .InSecondsF()); 135 .InSecondsF());
135 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 136 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
136 .InSecondsF()); 137 .InSecondsF());
137 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 138 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
138 .InSecondsF()); 139 .InSecondsF());
139 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 140 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
140 .InSecondsF()); 141 .InSecondsF());
141 } 142 }
142 143
143 TEST(AnimationTest, TrimTimeAlternateTwoIterations) { 144 TEST(AnimationTest, TrimTimeAlternateTwoIterations) {
144 scoped_ptr<Animation> anim(CreateAnimation(2)); 145 std::unique_ptr<Animation> anim(CreateAnimation(2));
145 anim->set_direction(Animation::DIRECTION_ALTERNATE); 146 anim->set_direction(Animation::DIRECTION_ALTERNATE);
146 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 147 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
147 .InSecondsF()); 148 .InSecondsF());
148 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 149 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
149 .InSecondsF()); 150 .InSecondsF());
150 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 151 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
151 .InSecondsF()); 152 .InSecondsF());
152 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 153 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
153 .InSecondsF()); 154 .InSecondsF());
154 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 155 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
155 .InSecondsF()); 156 .InSecondsF());
156 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 157 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
157 .InSecondsF()); 158 .InSecondsF());
158 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)) 159 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
159 .InSecondsF()); 160 .InSecondsF());
160 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 161 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
161 .InSecondsF()); 162 .InSecondsF());
162 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)) 163 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
163 .InSecondsF()); 164 .InSecondsF());
164 } 165 }
165 166
166 TEST(AnimationTest, TrimTimeAlternateTwoHalfIterations) { 167 TEST(AnimationTest, TrimTimeAlternateTwoHalfIterations) {
167 scoped_ptr<Animation> anim(CreateAnimation(2.5)); 168 std::unique_ptr<Animation> anim(CreateAnimation(2.5));
168 anim->set_direction(Animation::DIRECTION_ALTERNATE); 169 anim->set_direction(Animation::DIRECTION_ALTERNATE);
169 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 170 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
170 .InSecondsF()); 171 .InSecondsF());
171 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 172 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
172 .InSecondsF()); 173 .InSecondsF());
173 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 174 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
174 .InSecondsF()); 175 .InSecondsF());
175 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 176 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
176 .InSecondsF()); 177 .InSecondsF());
177 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 178 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
178 .InSecondsF()); 179 .InSecondsF());
179 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 180 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
180 .InSecondsF()); 181 .InSecondsF());
181 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)) 182 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
182 .InSecondsF()); 183 .InSecondsF());
183 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 184 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
184 .InSecondsF()); 185 .InSecondsF());
185 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)) 186 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
186 .InSecondsF()); 187 .InSecondsF());
187 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.50)) 188 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.50))
188 .InSecondsF()); 189 .InSecondsF());
189 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.75)) 190 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.75))
190 .InSecondsF()); 191 .InSecondsF());
191 } 192 }
192 193
193 TEST(AnimationTest, TrimTimeAlternateReverseInfiniteIterations) { 194 TEST(AnimationTest, TrimTimeAlternateReverseInfiniteIterations) {
194 scoped_ptr<Animation> anim(CreateAnimation(-1)); 195 std::unique_ptr<Animation> anim(CreateAnimation(-1));
195 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE); 196 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE);
196 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 197 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
197 .InSecondsF()); 198 .InSecondsF());
198 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 199 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
199 .InSecondsF()); 200 .InSecondsF());
200 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 201 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
201 .InSecondsF()); 202 .InSecondsF());
202 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 203 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
203 .InSecondsF()); 204 .InSecondsF());
204 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 205 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
205 .InSecondsF()); 206 .InSecondsF());
206 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 207 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
207 .InSecondsF()); 208 .InSecondsF());
208 } 209 }
209 210
210 TEST(AnimationTest, TrimTimeAlternateReverseOneIteration) { 211 TEST(AnimationTest, TrimTimeAlternateReverseOneIteration) {
211 scoped_ptr<Animation> anim(CreateAnimation(1)); 212 std::unique_ptr<Animation> anim(CreateAnimation(1));
212 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE); 213 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE);
213 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 214 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
214 .InSecondsF()); 215 .InSecondsF());
215 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 216 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
216 .InSecondsF()); 217 .InSecondsF());
217 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 218 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
218 .InSecondsF()); 219 .InSecondsF());
219 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 220 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
220 .InSecondsF()); 221 .InSecondsF());
221 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 222 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
222 .InSecondsF()); 223 .InSecondsF());
223 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 224 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
224 .InSecondsF()); 225 .InSecondsF());
225 } 226 }
226 227
227 TEST(AnimationTest, TrimTimeAlternateReverseTwoIterations) { 228 TEST(AnimationTest, TrimTimeAlternateReverseTwoIterations) {
228 scoped_ptr<Animation> anim(CreateAnimation(2)); 229 std::unique_ptr<Animation> anim(CreateAnimation(2));
229 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE); 230 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE);
230 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 231 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
231 .InSecondsF()); 232 .InSecondsF());
232 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 233 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
233 .InSecondsF()); 234 .InSecondsF());
234 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 235 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
235 .InSecondsF()); 236 .InSecondsF());
236 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 237 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
237 .InSecondsF()); 238 .InSecondsF());
238 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 239 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
239 .InSecondsF()); 240 .InSecondsF());
240 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 241 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
241 .InSecondsF()); 242 .InSecondsF());
242 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)) 243 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
243 .InSecondsF()); 244 .InSecondsF());
244 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 245 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
245 .InSecondsF()); 246 .InSecondsF());
246 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)) 247 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
247 .InSecondsF()); 248 .InSecondsF());
248 } 249 }
249 250
250 TEST(AnimationTest, TrimTimeStartTime) { 251 TEST(AnimationTest, TrimTimeStartTime) {
251 scoped_ptr<Animation> anim(CreateAnimation(1)); 252 std::unique_ptr<Animation> anim(CreateAnimation(1));
252 anim->set_start_time(TicksFromSecondsF(4)); 253 anim->set_start_time(TicksFromSecondsF(4));
253 EXPECT_EQ( 254 EXPECT_EQ(
254 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 255 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
255 EXPECT_EQ( 256 EXPECT_EQ(
256 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)).InSecondsF()); 257 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)).InSecondsF());
257 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)) 258 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
258 .InSecondsF()); 259 .InSecondsF());
259 EXPECT_EQ( 260 EXPECT_EQ(
260 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF()); 261 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF());
261 EXPECT_EQ( 262 EXPECT_EQ(
262 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0)).InSecondsF()); 263 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0)).InSecondsF());
263 } 264 }
264 265
265 TEST(AnimationTest, TrimTimeStartTimeReverse) { 266 TEST(AnimationTest, TrimTimeStartTimeReverse) {
266 scoped_ptr<Animation> anim(CreateAnimation(1)); 267 std::unique_ptr<Animation> anim(CreateAnimation(1));
267 anim->set_start_time(TicksFromSecondsF(4)); 268 anim->set_start_time(TicksFromSecondsF(4));
268 anim->set_direction(Animation::DIRECTION_REVERSE); 269 anim->set_direction(Animation::DIRECTION_REVERSE);
269 EXPECT_EQ( 270 EXPECT_EQ(
270 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 271 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
271 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)) 272 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))
272 .InSecondsF()); 273 .InSecondsF());
273 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)) 274 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
274 .InSecondsF()); 275 .InSecondsF());
275 EXPECT_EQ( 276 EXPECT_EQ(
276 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF()); 277 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF());
277 EXPECT_EQ( 278 EXPECT_EQ(
278 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0)).InSecondsF()); 279 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(6.0)).InSecondsF());
279 } 280 }
280 281
281 TEST(AnimationTest, TrimTimeTimeOffset) { 282 TEST(AnimationTest, TrimTimeTimeOffset) {
282 scoped_ptr<Animation> anim(CreateAnimation(1)); 283 std::unique_ptr<Animation> anim(CreateAnimation(1));
283 anim->set_time_offset(TimeDelta::FromMilliseconds(4000)); 284 anim->set_time_offset(TimeDelta::FromMilliseconds(4000));
284 anim->set_start_time(TicksFromSecondsF(4)); 285 anim->set_start_time(TicksFromSecondsF(4));
285 EXPECT_EQ( 286 EXPECT_EQ(
286 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 287 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
287 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 288 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
288 .InSecondsF()); 289 .InSecondsF());
289 EXPECT_EQ( 290 EXPECT_EQ(
290 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 291 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
291 EXPECT_EQ( 292 EXPECT_EQ(
292 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 293 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
293 } 294 }
294 295
295 TEST(AnimationTest, TrimTimeTimeOffsetReverse) { 296 TEST(AnimationTest, TrimTimeTimeOffsetReverse) {
296 scoped_ptr<Animation> anim(CreateAnimation(1)); 297 std::unique_ptr<Animation> anim(CreateAnimation(1));
297 anim->set_time_offset(TimeDelta::FromMilliseconds(4000)); 298 anim->set_time_offset(TimeDelta::FromMilliseconds(4000));
298 anim->set_start_time(TicksFromSecondsF(4)); 299 anim->set_start_time(TicksFromSecondsF(4));
299 anim->set_direction(Animation::DIRECTION_REVERSE); 300 anim->set_direction(Animation::DIRECTION_REVERSE);
300 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 301 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
301 .InSecondsF()); 302 .InSecondsF());
302 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 303 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
303 .InSecondsF()); 304 .InSecondsF());
304 EXPECT_EQ( 305 EXPECT_EQ(
305 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 306 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
306 EXPECT_EQ( 307 EXPECT_EQ(
307 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 308 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
308 } 309 }
309 310
310 TEST(AnimationTest, TrimTimeNegativeTimeOffset) { 311 TEST(AnimationTest, TrimTimeNegativeTimeOffset) {
311 scoped_ptr<Animation> anim(CreateAnimation(1)); 312 std::unique_ptr<Animation> anim(CreateAnimation(1));
312 anim->set_time_offset(TimeDelta::FromMilliseconds(-4000)); 313 anim->set_time_offset(TimeDelta::FromMilliseconds(-4000));
313 314
314 EXPECT_EQ( 315 EXPECT_EQ(
315 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 316 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
316 EXPECT_EQ( 317 EXPECT_EQ(
317 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)).InSecondsF()); 318 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)).InSecondsF());
318 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)) 319 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
319 .InSecondsF()); 320 .InSecondsF());
320 EXPECT_EQ( 321 EXPECT_EQ(
321 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF()); 322 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF());
322 } 323 }
323 324
324 TEST(AnimationTest, TrimTimeNegativeTimeOffsetReverse) { 325 TEST(AnimationTest, TrimTimeNegativeTimeOffsetReverse) {
325 scoped_ptr<Animation> anim(CreateAnimation(1)); 326 std::unique_ptr<Animation> anim(CreateAnimation(1));
326 anim->set_time_offset(TimeDelta::FromMilliseconds(-4000)); 327 anim->set_time_offset(TimeDelta::FromMilliseconds(-4000));
327 anim->set_direction(Animation::DIRECTION_REVERSE); 328 anim->set_direction(Animation::DIRECTION_REVERSE);
328 329
329 EXPECT_EQ( 330 EXPECT_EQ(
330 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 331 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
331 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)) 332 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))
332 .InSecondsF()); 333 .InSecondsF());
333 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)) 334 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
334 .InSecondsF()); 335 .InSecondsF());
335 EXPECT_EQ( 336 EXPECT_EQ(
336 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF()); 337 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(5.0)).InSecondsF());
337 } 338 }
338 339
339 TEST(AnimationTest, TrimTimePauseResume) { 340 TEST(AnimationTest, TrimTimePauseResume) {
340 scoped_ptr<Animation> anim(CreateAnimation(1)); 341 std::unique_ptr<Animation> anim(CreateAnimation(1));
341 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 342 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
342 EXPECT_EQ( 343 EXPECT_EQ(
343 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 344 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
344 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 345 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
345 .InSecondsF()); 346 .InSecondsF());
346 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(0.5)); 347 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(0.5));
347 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)) 348 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
348 .InSecondsF()); 349 .InSecondsF());
349 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(1024.0)); 350 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(1024.0));
350 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)) 351 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
351 .InSecondsF()); 352 .InSecondsF());
352 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5)) 353 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5))
353 .InSecondsF()); 354 .InSecondsF());
354 } 355 }
355 356
356 TEST(AnimationTest, TrimTimePauseResumeReverse) { 357 TEST(AnimationTest, TrimTimePauseResumeReverse) {
357 scoped_ptr<Animation> anim(CreateAnimation(1)); 358 std::unique_ptr<Animation> anim(CreateAnimation(1));
358 anim->set_direction(Animation::DIRECTION_REVERSE); 359 anim->set_direction(Animation::DIRECTION_REVERSE);
359 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 360 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
360 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 361 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
361 .InSecondsF()); 362 .InSecondsF());
362 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 363 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
363 .InSecondsF()); 364 .InSecondsF());
364 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(0.25)); 365 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(0.25));
365 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)) 366 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
366 .InSecondsF()); 367 .InSecondsF());
367 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(1024.0)); 368 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(1024.0));
368 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)) 369 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
369 .InSecondsF()); 370 .InSecondsF());
370 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.75)) 371 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.75))
371 .InSecondsF()); 372 .InSecondsF());
372 } 373 }
373 374
374 TEST(AnimationTest, TrimTimeSuspendResume) { 375 TEST(AnimationTest, TrimTimeSuspendResume) {
375 scoped_ptr<Animation> anim(CreateAnimation(1)); 376 std::unique_ptr<Animation> anim(CreateAnimation(1));
376 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 377 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
377 EXPECT_EQ( 378 EXPECT_EQ(
378 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 379 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
379 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 380 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
380 .InSecondsF()); 381 .InSecondsF());
381 anim->Suspend(TicksFromSecondsF(0.5)); 382 anim->Suspend(TicksFromSecondsF(0.5));
382 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)) 383 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
383 .InSecondsF()); 384 .InSecondsF());
384 anim->Resume(TicksFromSecondsF(1024)); 385 anim->Resume(TicksFromSecondsF(1024));
385 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)) 386 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
386 .InSecondsF()); 387 .InSecondsF());
387 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5)) 388 EXPECT_EQ(1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.5))
388 .InSecondsF()); 389 .InSecondsF());
389 } 390 }
390 391
391 TEST(AnimationTest, TrimTimeSuspendResumeReverse) { 392 TEST(AnimationTest, TrimTimeSuspendResumeReverse) {
392 scoped_ptr<Animation> anim(CreateAnimation(1)); 393 std::unique_ptr<Animation> anim(CreateAnimation(1));
393 anim->set_direction(Animation::DIRECTION_REVERSE); 394 anim->set_direction(Animation::DIRECTION_REVERSE);
394 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 395 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
395 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 396 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
396 .InSecondsF()); 397 .InSecondsF());
397 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 398 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
398 .InSecondsF()); 399 .InSecondsF());
399 anim->Suspend(TicksFromSecondsF(0.75)); 400 anim->Suspend(TicksFromSecondsF(0.75));
400 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)) 401 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
401 .InSecondsF()); 402 .InSecondsF());
402 anim->Resume(TicksFromSecondsF(1024)); 403 anim->Resume(TicksFromSecondsF(1024));
403 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0)) 404 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.0))
404 .InSecondsF()); 405 .InSecondsF());
405 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.25)) 406 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1024.25))
406 .InSecondsF()); 407 .InSecondsF());
407 } 408 }
408 409
409 TEST(AnimationTest, TrimTimeZeroDuration) { 410 TEST(AnimationTest, TrimTimeZeroDuration) {
410 scoped_ptr<Animation> anim(CreateAnimation(0, 0)); 411 std::unique_ptr<Animation> anim(CreateAnimation(0, 0));
411 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 412 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
412 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 413 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
413 .InSecondsF()); 414 .InSecondsF());
414 EXPECT_EQ( 415 EXPECT_EQ(
415 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 416 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
416 EXPECT_EQ( 417 EXPECT_EQ(
417 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 418 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
418 } 419 }
419 420
420 TEST(AnimationTest, TrimTimeStarting) { 421 TEST(AnimationTest, TrimTimeStarting) {
421 scoped_ptr<Animation> anim(CreateAnimation(1, 5.0)); 422 std::unique_ptr<Animation> anim(CreateAnimation(1, 5.0));
422 anim->SetRunState(Animation::STARTING, TicksFromSecondsF(0.0)); 423 anim->SetRunState(Animation::STARTING, TicksFromSecondsF(0.0));
423 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 424 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
424 .InSecondsF()); 425 .InSecondsF());
425 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 426 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
426 .InSecondsF()); 427 .InSecondsF());
427 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 428 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
428 .InSecondsF()); 429 .InSecondsF());
429 anim->set_time_offset(TimeDelta::FromMilliseconds(2000)); 430 anim->set_time_offset(TimeDelta::FromMilliseconds(2000));
430 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 431 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
431 .InSecondsF()); 432 .InSecondsF());
432 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 433 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
433 .InSecondsF()); 434 .InSecondsF());
434 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 435 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
435 .InSecondsF()); 436 .InSecondsF());
436 anim->set_start_time(TicksFromSecondsF(1.0)); 437 anim->set_start_time(TicksFromSecondsF(1.0));
437 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 438 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
438 .InSecondsF()); 439 .InSecondsF());
439 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 440 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
440 .InSecondsF()); 441 .InSecondsF());
441 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 442 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
442 .InSecondsF()); 443 .InSecondsF());
443 EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 444 EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
444 .InSecondsF()); 445 .InSecondsF());
445 } 446 }
446 447
447 TEST(AnimationTest, TrimTimeNeedsSynchronizedStartTime) { 448 TEST(AnimationTest, TrimTimeNeedsSynchronizedStartTime) {
448 scoped_ptr<Animation> anim(CreateAnimation(1, 5.0)); 449 std::unique_ptr<Animation> anim(CreateAnimation(1, 5.0));
449 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 450 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
450 anim->set_needs_synchronized_start_time(true); 451 anim->set_needs_synchronized_start_time(true);
451 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 452 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
452 .InSecondsF()); 453 .InSecondsF());
453 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 454 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
454 .InSecondsF()); 455 .InSecondsF());
455 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 456 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
456 .InSecondsF()); 457 .InSecondsF());
457 anim->set_time_offset(TimeDelta::FromMilliseconds(2000)); 458 anim->set_time_offset(TimeDelta::FromMilliseconds(2000));
458 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 459 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
459 .InSecondsF()); 460 .InSecondsF());
460 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 461 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
461 .InSecondsF()); 462 .InSecondsF());
462 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 463 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
463 .InSecondsF()); 464 .InSecondsF());
464 anim->set_start_time(TicksFromSecondsF(1.0)); 465 anim->set_start_time(TicksFromSecondsF(1.0));
465 anim->set_needs_synchronized_start_time(false); 466 anim->set_needs_synchronized_start_time(false);
466 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 467 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
467 .InSecondsF()); 468 .InSecondsF());
468 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 469 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
469 .InSecondsF()); 470 .InSecondsF());
470 EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 471 EXPECT_EQ(3.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
471 .InSecondsF()); 472 .InSecondsF());
472 } 473 }
473 474
474 TEST(AnimationTest, IsFinishedAtZeroIterations) { 475 TEST(AnimationTest, IsFinishedAtZeroIterations) {
475 scoped_ptr<Animation> anim(CreateAnimation(0)); 476 std::unique_ptr<Animation> anim(CreateAnimation(0));
476 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 477 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
477 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0))); 478 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0)));
478 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 479 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
479 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.0))); 480 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.0)));
480 } 481 }
481 482
482 TEST(AnimationTest, IsFinishedAtOneIteration) { 483 TEST(AnimationTest, IsFinishedAtOneIteration) {
483 scoped_ptr<Animation> anim(CreateAnimation(1)); 484 std::unique_ptr<Animation> anim(CreateAnimation(1));
484 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 485 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
485 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0))); 486 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0)));
486 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 487 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
487 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.0))); 488 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.0)));
488 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(2.0))); 489 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(2.0)));
489 } 490 }
490 491
491 TEST(AnimationTest, IsFinishedAtInfiniteIterations) { 492 TEST(AnimationTest, IsFinishedAtInfiniteIterations) {
492 scoped_ptr<Animation> anim(CreateAnimation(-1)); 493 std::unique_ptr<Animation> anim(CreateAnimation(-1));
493 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 494 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
494 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 495 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
495 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.5))); 496 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.5)));
496 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.0))); 497 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.0)));
497 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.5))); 498 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.5)));
498 } 499 }
499 500
500 TEST(AnimationTest, IsFinishedNegativeTimeOffset) { 501 TEST(AnimationTest, IsFinishedNegativeTimeOffset) {
501 scoped_ptr<Animation> anim(CreateAnimation(1)); 502 std::unique_ptr<Animation> anim(CreateAnimation(1));
502 anim->set_time_offset(TimeDelta::FromMilliseconds(-500)); 503 anim->set_time_offset(TimeDelta::FromMilliseconds(-500));
503 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 504 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
504 505
505 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0))); 506 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0)));
506 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 507 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
507 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.5))); 508 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.5)));
508 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.0))); 509 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(1.0)));
509 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.5))); 510 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.5)));
510 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(2.0))); 511 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(2.0)));
511 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(2.5))); 512 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(2.5)));
512 } 513 }
513 514
514 TEST(AnimationTest, IsFinishedPositiveTimeOffset) { 515 TEST(AnimationTest, IsFinishedPositiveTimeOffset) {
515 scoped_ptr<Animation> anim(CreateAnimation(1)); 516 std::unique_ptr<Animation> anim(CreateAnimation(1));
516 anim->set_time_offset(TimeDelta::FromMilliseconds(500)); 517 anim->set_time_offset(TimeDelta::FromMilliseconds(500));
517 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 518 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
518 519
519 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0))); 520 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(-1.0)));
520 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 521 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
521 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.5))); 522 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.5)));
522 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.0))); 523 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(1.0)));
523 } 524 }
524 525
525 TEST(AnimationTest, IsFinishedAtNotRunning) { 526 TEST(AnimationTest, IsFinishedAtNotRunning) {
526 scoped_ptr<Animation> anim(CreateAnimation(0)); 527 std::unique_ptr<Animation> anim(CreateAnimation(0));
527 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 528 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
528 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 529 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
529 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(0.0)); 530 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(0.0));
530 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 531 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
531 anim->SetRunState(Animation::WAITING_FOR_TARGET_AVAILABILITY, 532 anim->SetRunState(Animation::WAITING_FOR_TARGET_AVAILABILITY,
532 TicksFromSecondsF(0.0)); 533 TicksFromSecondsF(0.0));
533 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 534 EXPECT_FALSE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
534 anim->SetRunState(Animation::FINISHED, TicksFromSecondsF(0.0)); 535 anim->SetRunState(Animation::FINISHED, TicksFromSecondsF(0.0));
535 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 536 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
536 anim->SetRunState(Animation::ABORTED, TicksFromSecondsF(0.0)); 537 anim->SetRunState(Animation::ABORTED, TicksFromSecondsF(0.0));
537 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0))); 538 EXPECT_TRUE(anim->IsFinishedAt(TicksFromSecondsF(0.0)));
538 } 539 }
539 540
540 TEST(AnimationTest, IsFinished) { 541 TEST(AnimationTest, IsFinished) {
541 scoped_ptr<Animation> anim(CreateAnimation(1)); 542 std::unique_ptr<Animation> anim(CreateAnimation(1));
542 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 543 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
543 EXPECT_FALSE(anim->is_finished()); 544 EXPECT_FALSE(anim->is_finished());
544 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(0.0)); 545 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(0.0));
545 EXPECT_FALSE(anim->is_finished()); 546 EXPECT_FALSE(anim->is_finished());
546 anim->SetRunState(Animation::WAITING_FOR_TARGET_AVAILABILITY, 547 anim->SetRunState(Animation::WAITING_FOR_TARGET_AVAILABILITY,
547 TicksFromSecondsF(0.0)); 548 TicksFromSecondsF(0.0));
548 EXPECT_FALSE(anim->is_finished()); 549 EXPECT_FALSE(anim->is_finished());
549 anim->SetRunState(Animation::FINISHED, TicksFromSecondsF(0.0)); 550 anim->SetRunState(Animation::FINISHED, TicksFromSecondsF(0.0));
550 EXPECT_TRUE(anim->is_finished()); 551 EXPECT_TRUE(anim->is_finished());
551 anim->SetRunState(Animation::ABORTED, TicksFromSecondsF(0.0)); 552 anim->SetRunState(Animation::ABORTED, TicksFromSecondsF(0.0));
552 EXPECT_TRUE(anim->is_finished()); 553 EXPECT_TRUE(anim->is_finished());
553 } 554 }
554 555
555 TEST(AnimationTest, IsFinishedNeedsSynchronizedStartTime) { 556 TEST(AnimationTest, IsFinishedNeedsSynchronizedStartTime) {
556 scoped_ptr<Animation> anim(CreateAnimation(1)); 557 std::unique_ptr<Animation> anim(CreateAnimation(1));
557 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(2.0)); 558 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(2.0));
558 EXPECT_FALSE(anim->is_finished()); 559 EXPECT_FALSE(anim->is_finished());
559 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(2.0)); 560 anim->SetRunState(Animation::PAUSED, TicksFromSecondsF(2.0));
560 EXPECT_FALSE(anim->is_finished()); 561 EXPECT_FALSE(anim->is_finished());
561 anim->SetRunState(Animation::WAITING_FOR_TARGET_AVAILABILITY, 562 anim->SetRunState(Animation::WAITING_FOR_TARGET_AVAILABILITY,
562 TicksFromSecondsF(2.0)); 563 TicksFromSecondsF(2.0));
563 EXPECT_FALSE(anim->is_finished()); 564 EXPECT_FALSE(anim->is_finished());
564 anim->SetRunState(Animation::FINISHED, TicksFromSecondsF(0.0)); 565 anim->SetRunState(Animation::FINISHED, TicksFromSecondsF(0.0));
565 EXPECT_TRUE(anim->is_finished()); 566 EXPECT_TRUE(anim->is_finished());
566 anim->SetRunState(Animation::ABORTED, TicksFromSecondsF(0.0)); 567 anim->SetRunState(Animation::ABORTED, TicksFromSecondsF(0.0));
567 EXPECT_TRUE(anim->is_finished()); 568 EXPECT_TRUE(anim->is_finished());
568 } 569 }
569 570
570 TEST(AnimationTest, RunStateChangesIgnoredWhileSuspended) { 571 TEST(AnimationTest, RunStateChangesIgnoredWhileSuspended) {
571 scoped_ptr<Animation> anim(CreateAnimation(1)); 572 std::unique_ptr<Animation> anim(CreateAnimation(1));
572 anim->Suspend(TicksFromSecondsF(0)); 573 anim->Suspend(TicksFromSecondsF(0));
573 EXPECT_EQ(Animation::PAUSED, anim->run_state()); 574 EXPECT_EQ(Animation::PAUSED, anim->run_state());
574 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 575 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
575 EXPECT_EQ(Animation::PAUSED, anim->run_state()); 576 EXPECT_EQ(Animation::PAUSED, anim->run_state());
576 anim->Resume(TicksFromSecondsF(0)); 577 anim->Resume(TicksFromSecondsF(0));
577 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0)); 578 anim->SetRunState(Animation::RUNNING, TicksFromSecondsF(0.0));
578 EXPECT_EQ(Animation::RUNNING, anim->run_state()); 579 EXPECT_EQ(Animation::RUNNING, anim->run_state());
579 } 580 }
580 581
581 TEST(AnimationTest, TrimTimePlaybackNormal) { 582 TEST(AnimationTest, TrimTimePlaybackNormal) {
582 scoped_ptr<Animation> anim(CreateAnimation(1, 1, 1)); 583 std::unique_ptr<Animation> anim(CreateAnimation(1, 1, 1));
583 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 584 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
584 .InSecondsF()); 585 .InSecondsF());
585 EXPECT_EQ( 586 EXPECT_EQ(
586 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 587 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
587 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 588 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
588 .InSecondsF()); 589 .InSecondsF());
589 EXPECT_EQ( 590 EXPECT_EQ(
590 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 591 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
591 EXPECT_EQ( 592 EXPECT_EQ(
592 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF()); 593 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
593 } 594 }
594 595
595 TEST(AnimationTest, TrimTimePlaybackSlow) { 596 TEST(AnimationTest, TrimTimePlaybackSlow) {
596 scoped_ptr<Animation> anim(CreateAnimation(1, 1, 0.5)); 597 std::unique_ptr<Animation> anim(CreateAnimation(1, 1, 0.5));
597 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 598 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
598 .InSecondsF()); 599 .InSecondsF());
599 EXPECT_EQ( 600 EXPECT_EQ(
600 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 601 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
601 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 602 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
602 .InSecondsF()); 603 .InSecondsF());
603 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 604 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
604 .InSecondsF()); 605 .InSecondsF());
605 EXPECT_EQ( 606 EXPECT_EQ(
606 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF()); 607 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
607 EXPECT_EQ( 608 EXPECT_EQ(
608 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)).InSecondsF()); 609 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)).InSecondsF());
609 } 610 }
610 611
611 TEST(AnimationTest, TrimTimePlaybackFast) { 612 TEST(AnimationTest, TrimTimePlaybackFast) {
612 scoped_ptr<Animation> anim(CreateAnimation(1, 4, 2)); 613 std::unique_ptr<Animation> anim(CreateAnimation(1, 4, 2));
613 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 614 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
614 .InSecondsF()); 615 .InSecondsF());
615 EXPECT_EQ( 616 EXPECT_EQ(
616 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 617 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
617 EXPECT_EQ( 618 EXPECT_EQ(
618 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF()); 619 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF());
619 EXPECT_EQ( 620 EXPECT_EQ(
620 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 621 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
621 EXPECT_EQ( 622 EXPECT_EQ(
622 3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF()); 623 3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF());
623 EXPECT_EQ( 624 EXPECT_EQ(
624 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF()); 625 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
625 EXPECT_EQ( 626 EXPECT_EQ(
626 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF()); 627 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF());
627 } 628 }
628 629
629 TEST(AnimationTest, TrimTimePlaybackNormalReverse) { 630 TEST(AnimationTest, TrimTimePlaybackNormalReverse) {
630 scoped_ptr<Animation> anim(CreateAnimation(1, 2, -1)); 631 std::unique_ptr<Animation> anim(CreateAnimation(1, 2, -1));
631 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 632 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
632 .InSecondsF()); 633 .InSecondsF());
633 EXPECT_EQ( 634 EXPECT_EQ(
634 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF()); 635 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF());
635 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 636 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
636 .InSecondsF()); 637 .InSecondsF());
637 EXPECT_EQ( 638 EXPECT_EQ(
638 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 639 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
639 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 640 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
640 .InSecondsF()); 641 .InSecondsF());
641 EXPECT_EQ( 642 EXPECT_EQ(
642 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF()); 643 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
643 EXPECT_EQ( 644 EXPECT_EQ(
644 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF()); 645 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF());
645 } 646 }
646 647
647 TEST(AnimationTest, TrimTimePlaybackSlowReverse) { 648 TEST(AnimationTest, TrimTimePlaybackSlowReverse) {
648 scoped_ptr<Animation> anim(CreateAnimation(1, 2, -0.5)); 649 std::unique_ptr<Animation> anim(CreateAnimation(1, 2, -0.5));
649 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 650 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
650 .InSecondsF()); 651 .InSecondsF());
651 EXPECT_EQ( 652 EXPECT_EQ(
652 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF()); 653 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF());
653 EXPECT_EQ(1.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 654 EXPECT_EQ(1.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
654 .InSecondsF()); 655 .InSecondsF());
655 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 656 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
656 .InSecondsF()); 657 .InSecondsF());
657 EXPECT_EQ(1.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 658 EXPECT_EQ(1.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
658 .InSecondsF()); 659 .InSecondsF());
659 EXPECT_EQ( 660 EXPECT_EQ(
660 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF()); 661 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
661 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)) 662 EXPECT_EQ(0.75, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
662 .InSecondsF()); 663 .InSecondsF());
663 EXPECT_EQ( 664 EXPECT_EQ(
664 0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3)).InSecondsF()); 665 0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3)).InSecondsF());
665 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5)) 666 EXPECT_EQ(0.25, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5))
666 .InSecondsF()); 667 .InSecondsF());
667 EXPECT_EQ( 668 EXPECT_EQ(
668 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4)).InSecondsF()); 669 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4)).InSecondsF());
669 EXPECT_EQ( 670 EXPECT_EQ(
670 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)).InSecondsF()); 671 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)).InSecondsF());
671 } 672 }
672 673
673 TEST(AnimationTest, TrimTimePlaybackFastReverse) { 674 TEST(AnimationTest, TrimTimePlaybackFastReverse) {
674 scoped_ptr<Animation> anim(CreateAnimation(1, 2, -2)); 675 std::unique_ptr<Animation> anim(CreateAnimation(1, 2, -2));
675 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 676 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
676 .InSecondsF()); 677 .InSecondsF());
677 EXPECT_EQ( 678 EXPECT_EQ(
678 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF()); 679 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0)).InSecondsF());
679 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 680 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
680 .InSecondsF()); 681 .InSecondsF());
681 EXPECT_EQ( 682 EXPECT_EQ(
682 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF()); 683 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF());
683 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 684 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
684 .InSecondsF()); 685 .InSecondsF());
685 EXPECT_EQ( 686 EXPECT_EQ(
686 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 687 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
687 EXPECT_EQ( 688 EXPECT_EQ(
688 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF()); 689 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF());
689 } 690 }
690 691
691 TEST(AnimationTest, TrimTimePlaybackFastInfiniteIterations) { 692 TEST(AnimationTest, TrimTimePlaybackFastInfiniteIterations) {
692 scoped_ptr<Animation> anim(CreateAnimation(-1, 4, 4)); 693 std::unique_ptr<Animation> anim(CreateAnimation(-1, 4, 4));
693 EXPECT_EQ( 694 EXPECT_EQ(
694 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 695 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
695 EXPECT_EQ( 696 EXPECT_EQ(
696 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF()); 697 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF());
697 EXPECT_EQ( 698 EXPECT_EQ(
698 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 699 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
699 EXPECT_EQ( 700 EXPECT_EQ(
700 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF()); 701 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF());
701 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1000.0)) 702 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1000.0))
702 .InSecondsF()); 703 .InSecondsF());
703 EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1000.5)) 704 EXPECT_EQ(2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1000.5))
704 .InSecondsF()); 705 .InSecondsF());
705 } 706 }
706 707
707 TEST(AnimationTest, TrimTimePlaybackNormalDoubleReverse) { 708 TEST(AnimationTest, TrimTimePlaybackNormalDoubleReverse) {
708 scoped_ptr<Animation> anim(CreateAnimation(1, 1, -1)); 709 std::unique_ptr<Animation> anim(CreateAnimation(1, 1, -1));
709 anim->set_direction(Animation::DIRECTION_REVERSE); 710 anim->set_direction(Animation::DIRECTION_REVERSE);
710 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 711 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
711 .InSecondsF()); 712 .InSecondsF());
712 EXPECT_EQ( 713 EXPECT_EQ(
713 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 714 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
714 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 715 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
715 .InSecondsF()); 716 .InSecondsF());
716 EXPECT_EQ( 717 EXPECT_EQ(
717 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 718 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
718 EXPECT_EQ( 719 EXPECT_EQ(
719 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF()); 720 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
720 } 721 }
721 722
722 TEST(AnimationTest, TrimTimePlaybackFastDoubleReverse) { 723 TEST(AnimationTest, TrimTimePlaybackFastDoubleReverse) {
723 scoped_ptr<Animation> anim(CreateAnimation(1, 4, -2)); 724 std::unique_ptr<Animation> anim(CreateAnimation(1, 4, -2));
724 anim->set_direction(Animation::DIRECTION_REVERSE); 725 anim->set_direction(Animation::DIRECTION_REVERSE);
725 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 726 EXPECT_EQ(0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
726 .InSecondsF()); 727 .InSecondsF());
727 EXPECT_EQ( 728 EXPECT_EQ(
728 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF()); 729 0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)).InSecondsF());
729 EXPECT_EQ( 730 EXPECT_EQ(
730 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF()); 731 1, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)).InSecondsF());
731 EXPECT_EQ( 732 EXPECT_EQ(
732 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF()); 733 2, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)).InSecondsF());
733 EXPECT_EQ( 734 EXPECT_EQ(
734 3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF()); 735 3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)).InSecondsF());
735 EXPECT_EQ( 736 EXPECT_EQ(
736 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF()); 737 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)).InSecondsF());
737 EXPECT_EQ( 738 EXPECT_EQ(
738 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF()); 739 4, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)).InSecondsF());
739 } 740 }
740 741
741 TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFast) { 742 TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFast) {
742 scoped_ptr<Animation> anim(CreateAnimation(2, 2, 2)); 743 std::unique_ptr<Animation> anim(CreateAnimation(2, 2, 2));
743 anim->set_direction(Animation::DIRECTION_ALTERNATE); 744 anim->set_direction(Animation::DIRECTION_ALTERNATE);
744 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 745 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
745 .InSecondsF()); 746 .InSecondsF());
746 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 747 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
747 .InSecondsF()); 748 .InSecondsF());
748 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 749 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
749 .InSecondsF()); 750 .InSecondsF());
750 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 751 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
751 .InSecondsF()); 752 .InSecondsF());
752 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 753 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
753 .InSecondsF()); 754 .InSecondsF());
754 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 755 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
755 .InSecondsF()); 756 .InSecondsF());
756 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 757 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
757 .InSecondsF()); 758 .InSecondsF());
758 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)) 759 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
759 .InSecondsF()); 760 .InSecondsF());
760 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 761 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
761 .InSecondsF()); 762 .InSecondsF());
762 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)) 763 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
763 .InSecondsF()); 764 .InSecondsF());
764 } 765 }
765 766
766 TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFastReverse) { 767 TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFastReverse) {
767 scoped_ptr<Animation> anim(CreateAnimation(2, 2, 2)); 768 std::unique_ptr<Animation> anim(CreateAnimation(2, 2, 2));
768 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE); 769 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE);
769 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 770 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
770 .InSecondsF()); 771 .InSecondsF());
771 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 772 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
772 .InSecondsF()); 773 .InSecondsF());
773 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 774 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
774 .InSecondsF()); 775 .InSecondsF());
775 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 776 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
776 .InSecondsF()); 777 .InSecondsF());
777 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 778 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
778 .InSecondsF()); 779 .InSecondsF());
779 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 780 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
780 .InSecondsF()); 781 .InSecondsF());
781 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 782 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
782 .InSecondsF()); 783 .InSecondsF());
783 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 784 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
784 .InSecondsF()); 785 .InSecondsF());
785 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)) 786 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
786 .InSecondsF()); 787 .InSecondsF());
787 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 788 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
788 .InSecondsF()); 789 .InSecondsF());
789 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)) 790 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
790 .InSecondsF()); 791 .InSecondsF());
791 } 792 }
792 793
793 TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFastDoubleReverse) { 794 TEST(AnimationTest, TrimTimeAlternateTwoIterationsPlaybackFastDoubleReverse) {
794 scoped_ptr<Animation> anim(CreateAnimation(2, 2, -2)); 795 std::unique_ptr<Animation> anim(CreateAnimation(2, 2, -2));
795 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE); 796 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE);
796 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 797 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
797 .InSecondsF()); 798 .InSecondsF());
798 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 799 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
799 .InSecondsF()); 800 .InSecondsF());
800 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 801 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
801 .InSecondsF()); 802 .InSecondsF());
802 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 803 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
803 .InSecondsF()); 804 .InSecondsF());
804 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 805 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
805 .InSecondsF()); 806 .InSecondsF());
806 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25)) 807 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.25))
807 .InSecondsF()); 808 .InSecondsF());
808 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 809 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
809 .InSecondsF()); 810 .InSecondsF());
810 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75)) 811 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.75))
811 .InSecondsF()); 812 .InSecondsF());
812 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 813 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
813 .InSecondsF()); 814 .InSecondsF());
814 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25)) 815 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.25))
815 .InSecondsF()); 816 .InSecondsF());
816 } 817 }
817 818
818 TEST(AnimationTest, 819 TEST(AnimationTest,
819 TrimTimeAlternateReverseThreeIterationsPlaybackFastAlternateReverse) { 820 TrimTimeAlternateReverseThreeIterationsPlaybackFastAlternateReverse) {
820 scoped_ptr<Animation> anim(CreateAnimation(3, 2, -2)); 821 std::unique_ptr<Animation> anim(CreateAnimation(3, 2, -2));
821 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE); 822 anim->set_direction(Animation::DIRECTION_ALTERNATE_REVERSE);
822 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 823 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
823 .InSecondsF()); 824 .InSecondsF());
824 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25)) 825 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.25))
825 .InSecondsF()); 826 .InSecondsF());
826 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 827 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
827 .InSecondsF()); 828 .InSecondsF());
828 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75)) 829 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.75))
829 .InSecondsF()); 830 .InSecondsF());
830 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 831 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
(...skipping 13 matching lines...) Expand all
844 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.75)) 845 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.75))
845 .InSecondsF()); 846 .InSecondsF());
846 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)) 847 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0))
847 .InSecondsF()); 848 .InSecondsF());
848 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.25)) 849 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.25))
849 .InSecondsF()); 850 .InSecondsF());
850 } 851 }
851 852
852 TEST(AnimationTest, 853 TEST(AnimationTest,
853 TrimTimeAlternateReverseTwoIterationsPlaybackNormalAlternate) { 854 TrimTimeAlternateReverseTwoIterationsPlaybackNormalAlternate) {
854 scoped_ptr<Animation> anim(CreateAnimation(2, 2, -1)); 855 std::unique_ptr<Animation> anim(CreateAnimation(2, 2, -1));
855 anim->set_direction(Animation::DIRECTION_ALTERNATE); 856 anim->set_direction(Animation::DIRECTION_ALTERNATE);
856 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 857 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
857 .InSecondsF()); 858 .InSecondsF());
858 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 859 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
859 .InSecondsF()); 860 .InSecondsF());
860 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 861 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
861 .InSecondsF()); 862 .InSecondsF());
862 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 863 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
863 .InSecondsF()); 864 .InSecondsF());
864 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 865 EXPECT_EQ(2.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
865 .InSecondsF()); 866 .InSecondsF());
866 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)) 867 EXPECT_EQ(1.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
867 .InSecondsF()); 868 .InSecondsF());
868 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)) 869 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0))
869 .InSecondsF()); 870 .InSecondsF());
870 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5)) 871 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5))
871 .InSecondsF()); 872 .InSecondsF());
872 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0)) 873 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.0))
873 .InSecondsF()); 874 .InSecondsF());
874 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5)) 875 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(4.5))
875 .InSecondsF()); 876 .InSecondsF());
876 } 877 }
877 878
878 TEST(AnimationTest, TrimTimeIterationStart) { 879 TEST(AnimationTest, TrimTimeIterationStart) {
879 scoped_ptr<Animation> anim(CreateAnimation(2, 1, 1)); 880 std::unique_ptr<Animation> anim(CreateAnimation(2, 1, 1));
880 anim->set_iteration_start(0.5); 881 anim->set_iteration_start(0.5);
881 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 882 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
882 .InSecondsF()); 883 .InSecondsF());
883 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 884 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
884 .InSecondsF()); 885 .InSecondsF());
885 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 886 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
886 .InSecondsF()); 887 .InSecondsF());
887 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 888 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
888 .InSecondsF()); 889 .InSecondsF());
889 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 890 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
890 .InSecondsF()); 891 .InSecondsF());
891 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 892 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
892 .InSecondsF()); 893 .InSecondsF());
893 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)) 894 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
894 .InSecondsF()); 895 .InSecondsF());
895 } 896 }
896 897
897 TEST(AnimationTest, TrimTimeIterationStartAlternate) { 898 TEST(AnimationTest, TrimTimeIterationStartAlternate) {
898 scoped_ptr<Animation> anim(CreateAnimation(2, 1, 1)); 899 std::unique_ptr<Animation> anim(CreateAnimation(2, 1, 1));
899 anim->set_direction(Animation::DIRECTION_ALTERNATE); 900 anim->set_direction(Animation::DIRECTION_ALTERNATE);
900 anim->set_iteration_start(0.3); 901 anim->set_iteration_start(0.3);
901 EXPECT_EQ(0.3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 902 EXPECT_EQ(0.3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
902 .InSecondsF()); 903 .InSecondsF());
903 EXPECT_EQ(0.3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 904 EXPECT_EQ(0.3, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
904 .InSecondsF()); 905 .InSecondsF());
905 EXPECT_EQ(0.8, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 906 EXPECT_EQ(0.8, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
906 .InSecondsF()); 907 .InSecondsF());
907 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.7)) 908 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.7))
908 .InSecondsF()); 909 .InSecondsF());
909 EXPECT_EQ(0.7, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 910 EXPECT_EQ(0.7, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
910 .InSecondsF()); 911 .InSecondsF());
911 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.2)) 912 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.2))
912 .InSecondsF()); 913 .InSecondsF());
913 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.7)) 914 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.7))
914 .InSecondsF()); 915 .InSecondsF());
915 } 916 }
916 917
917 TEST(AnimationTest, TrimTimeIterationStartAlternateThreeIterations) { 918 TEST(AnimationTest, TrimTimeIterationStartAlternateThreeIterations) {
918 scoped_ptr<Animation> anim(CreateAnimation(3, 1, 1)); 919 std::unique_ptr<Animation> anim(CreateAnimation(3, 1, 1));
919 anim->set_direction(Animation::DIRECTION_ALTERNATE); 920 anim->set_direction(Animation::DIRECTION_ALTERNATE);
920 anim->set_iteration_start(1); 921 anim->set_iteration_start(1);
921 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0)) 922 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(-1.0))
922 .InSecondsF()); 923 .InSecondsF());
923 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 924 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
924 .InSecondsF()); 925 .InSecondsF());
925 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5)) 926 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.5))
926 .InSecondsF()); 927 .InSecondsF());
927 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 928 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
928 .InSecondsF()); 929 .InSecondsF());
929 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5)) 930 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.5))
930 .InSecondsF()); 931 .InSecondsF());
931 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 932 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
932 .InSecondsF()); 933 .InSecondsF());
933 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5)) 934 EXPECT_EQ(0.5, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.5))
934 .InSecondsF()); 935 .InSecondsF());
935 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)) 936 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0))
936 .InSecondsF()); 937 .InSecondsF());
937 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5)) 938 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5))
938 .InSecondsF()); 939 .InSecondsF());
939 } 940 }
940 941
941 TEST(AnimationTest, 942 TEST(AnimationTest,
942 TrimTimeIterationStartAlternateThreeIterationsPlaybackReverse) { 943 TrimTimeIterationStartAlternateThreeIterationsPlaybackReverse) {
943 scoped_ptr<Animation> anim(CreateAnimation(3, 1, -1)); 944 std::unique_ptr<Animation> anim(CreateAnimation(3, 1, -1));
944 anim->set_direction(Animation::DIRECTION_ALTERNATE); 945 anim->set_direction(Animation::DIRECTION_ALTERNATE);
945 anim->set_iteration_start(1); 946 anim->set_iteration_start(1);
946 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0)) 947 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(0.0))
947 .InSecondsF()); 948 .InSecondsF());
948 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0)) 949 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(1.0))
949 .InSecondsF()); 950 .InSecondsF());
950 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0)) 951 EXPECT_EQ(0.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(2.0))
951 .InSecondsF()); 952 .InSecondsF());
952 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0)) 953 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.0))
953 .InSecondsF()); 954 .InSecondsF());
954 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5)) 955 EXPECT_EQ(1.0, anim->TrimTimeToCurrentIteration(TicksFromSecondsF(3.5))
955 .InSecondsF()); 956 .InSecondsF());
956 } 957 }
957 958
958 TEST(AnimationTest, InEffectFillMode) { 959 TEST(AnimationTest, InEffectFillMode) {
959 scoped_ptr<Animation> anim(CreateAnimation(1)); 960 std::unique_ptr<Animation> anim(CreateAnimation(1));
960 anim->set_fill_mode(Animation::FILL_MODE_NONE); 961 anim->set_fill_mode(Animation::FILL_MODE_NONE);
961 EXPECT_FALSE(anim->InEffect(TicksFromSecondsF(-1.0))); 962 EXPECT_FALSE(anim->InEffect(TicksFromSecondsF(-1.0)));
962 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0))); 963 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0)));
963 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0))); 964 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0)));
964 965
965 anim->set_fill_mode(Animation::FILL_MODE_FORWARDS); 966 anim->set_fill_mode(Animation::FILL_MODE_FORWARDS);
966 EXPECT_FALSE(anim->InEffect(TicksFromSecondsF(-1.0))); 967 EXPECT_FALSE(anim->InEffect(TicksFromSecondsF(-1.0)));
967 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0))); 968 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0)));
968 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0))); 969 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0)));
969 970
970 anim->set_fill_mode(Animation::FILL_MODE_BACKWARDS); 971 anim->set_fill_mode(Animation::FILL_MODE_BACKWARDS);
971 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(-1.0))); 972 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(-1.0)));
972 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0))); 973 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0)));
973 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0))); 974 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0)));
974 975
975 anim->set_fill_mode(Animation::FILL_MODE_BOTH); 976 anim->set_fill_mode(Animation::FILL_MODE_BOTH);
976 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(-1.0))); 977 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(-1.0)));
977 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0))); 978 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0)));
978 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0))); 979 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0)));
979 } 980 }
980 981
981 TEST(AnimationTest, InEffectFillModePlayback) { 982 TEST(AnimationTest, InEffectFillModePlayback) {
982 scoped_ptr<Animation> anim(CreateAnimation(1, 1, -1)); 983 std::unique_ptr<Animation> anim(CreateAnimation(1, 1, -1));
983 anim->set_fill_mode(Animation::FILL_MODE_NONE); 984 anim->set_fill_mode(Animation::FILL_MODE_NONE);
984 EXPECT_FALSE(anim->InEffect(TicksFromSecondsF(-1.0))); 985 EXPECT_FALSE(anim->InEffect(TicksFromSecondsF(-1.0)));
985 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0))); 986 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0)));
986 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0))); 987 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0)));
987 988
988 anim->set_fill_mode(Animation::FILL_MODE_FORWARDS); 989 anim->set_fill_mode(Animation::FILL_MODE_FORWARDS);
989 EXPECT_FALSE(anim->InEffect(TicksFromSecondsF(-1.0))); 990 EXPECT_FALSE(anim->InEffect(TicksFromSecondsF(-1.0)));
990 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0))); 991 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0)));
991 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0))); 992 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0)));
992 993
993 anim->set_fill_mode(Animation::FILL_MODE_BACKWARDS); 994 anim->set_fill_mode(Animation::FILL_MODE_BACKWARDS);
994 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(-1.0))); 995 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(-1.0)));
995 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0))); 996 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0)));
996 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0))); 997 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0)));
997 998
998 anim->set_fill_mode(Animation::FILL_MODE_BOTH); 999 anim->set_fill_mode(Animation::FILL_MODE_BOTH);
999 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(-1.0))); 1000 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(-1.0)));
1000 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0))); 1001 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(0.0)));
1001 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0))); 1002 EXPECT_TRUE(anim->InEffect(TicksFromSecondsF(1.0)));
1002 } 1003 }
1003 1004
1004 } // namespace 1005 } // namespace
1005 } // namespace cc 1006 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698