OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 RefPtr<TimingFunction> stepsB = StepsTimingFunction::create(1, StepsTimingFu
nction::StepAtStart); | 211 RefPtr<TimingFunction> stepsB = StepsTimingFunction::create(1, StepsTimingFu
nction::StepAtStart); |
212 EXPECT_NE(*stepsA, *stepsB); | 212 EXPECT_NE(*stepsA, *stepsB); |
213 EXPECT_NE(*stepsB, *stepsA); | 213 EXPECT_NE(*stepsB, *stepsA); |
214 } | 214 } |
215 | 215 |
216 TEST_F(TimingFunctionTest, LinearEvaluate) | 216 TEST_F(TimingFunctionTest, LinearEvaluate) |
217 { | 217 { |
218 RefPtr<TimingFunction> linearTiming = LinearTimingFunction::preset(); | 218 RefPtr<TimingFunction> linearTiming = LinearTimingFunction::preset(); |
219 EXPECT_EQ(0.2, linearTiming->evaluate(0.2, 0)); | 219 EXPECT_EQ(0.2, linearTiming->evaluate(0.2, 0)); |
220 EXPECT_EQ(0.6, linearTiming->evaluate(0.6, 0)); | 220 EXPECT_EQ(0.6, linearTiming->evaluate(0.6, 0)); |
| 221 EXPECT_EQ(-0.2, linearTiming->evaluate(-0.2, 0)); |
| 222 EXPECT_EQ(1.6, linearTiming->evaluate(1.6, 0)); |
221 } | 223 } |
222 | 224 |
223 TEST_F(TimingFunctionTest, CubicEvaluate) | 225 TEST_F(TimingFunctionTest, CubicEvaluate) |
224 { | 226 { |
225 double tolerance = 0.01; | 227 double tolerance = 0.01; |
226 RefPtr<TimingFunction> cubicEaseTiming = CubicBezierTimingFunction::preset(C
ubicBezierTimingFunction::Ease); | 228 RefPtr<TimingFunction> cubicEaseTiming = CubicBezierTimingFunction::preset(C
ubicBezierTimingFunction::Ease); |
227 EXPECT_NEAR(0.418, cubicEaseTiming->evaluate(0.25, tolerance), tolerance); | 229 EXPECT_NEAR(0.418, cubicEaseTiming->evaluate(0.25, tolerance), tolerance); |
228 EXPECT_NEAR(0.805, cubicEaseTiming->evaluate(0.50, tolerance), tolerance); | 230 EXPECT_NEAR(0.805, cubicEaseTiming->evaluate(0.50, tolerance), tolerance); |
229 EXPECT_NEAR(0.960, cubicEaseTiming->evaluate(0.75, tolerance), tolerance); | 231 EXPECT_NEAR(0.960, cubicEaseTiming->evaluate(0.75, tolerance), tolerance); |
230 | 232 |
(...skipping 14 matching lines...) Expand all Loading... |
245 | 247 |
246 RefPtr<TimingFunction> cubicCustomTiming = CubicBezierTimingFunction::create
(0.17, 0.67, 1, -1.73); | 248 RefPtr<TimingFunction> cubicCustomTiming = CubicBezierTimingFunction::create
(0.17, 0.67, 1, -1.73); |
247 EXPECT_NEAR(0.034, cubicCustomTiming->evaluate(0.25, tolerance), tolerance); | 249 EXPECT_NEAR(0.034, cubicCustomTiming->evaluate(0.25, tolerance), tolerance); |
248 EXPECT_NEAR(-0.217, cubicCustomTiming->evaluate(0.50, tolerance), tolerance)
; | 250 EXPECT_NEAR(-0.217, cubicCustomTiming->evaluate(0.50, tolerance), tolerance)
; |
249 EXPECT_NEAR(-0.335, cubicCustomTiming->evaluate(0.75, tolerance), tolerance)
; | 251 EXPECT_NEAR(-0.335, cubicCustomTiming->evaluate(0.75, tolerance), tolerance)
; |
250 } | 252 } |
251 | 253 |
252 TEST_F(TimingFunctionTest, StepsEvaluate) | 254 TEST_F(TimingFunctionTest, StepsEvaluate) |
253 { | 255 { |
254 RefPtr<TimingFunction> stepsTimingStart = StepsTimingFunction::preset(StepsT
imingFunction::Start); | 256 RefPtr<TimingFunction> stepsTimingStart = StepsTimingFunction::preset(StepsT
imingFunction::Start); |
| 257 EXPECT_EQ(0.00, stepsTimingStart->evaluate(-1.10, 0)); |
| 258 EXPECT_EQ(0.00, stepsTimingStart->evaluate(-0.10, 0)); |
255 EXPECT_EQ(1.00, stepsTimingStart->evaluate(0.00, 0)); | 259 EXPECT_EQ(1.00, stepsTimingStart->evaluate(0.00, 0)); |
256 EXPECT_EQ(1.00, stepsTimingStart->evaluate(0.20, 0)); | 260 EXPECT_EQ(1.00, stepsTimingStart->evaluate(0.20, 0)); |
257 EXPECT_EQ(1.00, stepsTimingStart->evaluate(0.60, 0)); | 261 EXPECT_EQ(1.00, stepsTimingStart->evaluate(0.60, 0)); |
258 EXPECT_EQ(1.00, stepsTimingStart->evaluate(1.00, 0)); | 262 EXPECT_EQ(1.00, stepsTimingStart->evaluate(1.00, 0)); |
| 263 EXPECT_EQ(1.00, stepsTimingStart->evaluate(2.00, 0)); |
259 | 264 |
260 RefPtr<TimingFunction> stepsTimingMiddle = StepsTimingFunction::preset(Steps
TimingFunction::Middle); | 265 RefPtr<TimingFunction> stepsTimingMiddle = StepsTimingFunction::preset(Steps
TimingFunction::Middle); |
| 266 EXPECT_EQ(0.00, stepsTimingMiddle->evaluate(-2.50, 0)); |
261 EXPECT_EQ(0.00, stepsTimingMiddle->evaluate(0.00, 0)); | 267 EXPECT_EQ(0.00, stepsTimingMiddle->evaluate(0.00, 0)); |
262 EXPECT_EQ(0.00, stepsTimingMiddle->evaluate(0.49, 0)); | 268 EXPECT_EQ(0.00, stepsTimingMiddle->evaluate(0.49, 0)); |
263 EXPECT_EQ(1.00, stepsTimingMiddle->evaluate(0.50, 0)); | 269 EXPECT_EQ(1.00, stepsTimingMiddle->evaluate(0.50, 0)); |
264 EXPECT_EQ(1.00, stepsTimingMiddle->evaluate(1.00, 0)); | 270 EXPECT_EQ(1.00, stepsTimingMiddle->evaluate(1.00, 0)); |
| 271 EXPECT_EQ(1.00, stepsTimingMiddle->evaluate(2.50, 0)); |
265 | 272 |
266 RefPtr<TimingFunction> stepsTimingEnd = StepsTimingFunction::preset(StepsTim
ingFunction::End); | 273 RefPtr<TimingFunction> stepsTimingEnd = StepsTimingFunction::preset(StepsTim
ingFunction::End); |
| 274 EXPECT_EQ(0.00, stepsTimingEnd->evaluate(-2.00, 0)); |
267 EXPECT_EQ(0.00, stepsTimingEnd->evaluate(0.00, 0)); | 275 EXPECT_EQ(0.00, stepsTimingEnd->evaluate(0.00, 0)); |
268 EXPECT_EQ(0.00, stepsTimingEnd->evaluate(0.20, 0)); | 276 EXPECT_EQ(0.00, stepsTimingEnd->evaluate(0.20, 0)); |
269 EXPECT_EQ(0.00, stepsTimingEnd->evaluate(0.60, 0)); | 277 EXPECT_EQ(0.00, stepsTimingEnd->evaluate(0.60, 0)); |
270 EXPECT_EQ(1.00, stepsTimingEnd->evaluate(1.00, 0)); | 278 EXPECT_EQ(1.00, stepsTimingEnd->evaluate(1.00, 0)); |
| 279 EXPECT_EQ(1.00, stepsTimingEnd->evaluate(2.00, 0)); |
271 | 280 |
272 RefPtr<TimingFunction> stepsTimingCustomStart = StepsTimingFunction::create(
4, StepsTimingFunction::StepAtStart); | 281 RefPtr<TimingFunction> stepsTimingCustomStart = StepsTimingFunction::create(
4, StepsTimingFunction::StepAtStart); |
| 282 EXPECT_EQ(0.00, stepsTimingCustomStart->evaluate(-0.50, 0)); |
273 EXPECT_EQ(0.25, stepsTimingCustomStart->evaluate(0.00, 0)); | 283 EXPECT_EQ(0.25, stepsTimingCustomStart->evaluate(0.00, 0)); |
274 EXPECT_EQ(0.25, stepsTimingCustomStart->evaluate(0.24, 0)); | 284 EXPECT_EQ(0.25, stepsTimingCustomStart->evaluate(0.24, 0)); |
275 EXPECT_EQ(0.50, stepsTimingCustomStart->evaluate(0.25, 0)); | 285 EXPECT_EQ(0.50, stepsTimingCustomStart->evaluate(0.25, 0)); |
276 EXPECT_EQ(0.50, stepsTimingCustomStart->evaluate(0.49, 0)); | 286 EXPECT_EQ(0.50, stepsTimingCustomStart->evaluate(0.49, 0)); |
277 EXPECT_EQ(0.75, stepsTimingCustomStart->evaluate(0.50, 0)); | 287 EXPECT_EQ(0.75, stepsTimingCustomStart->evaluate(0.50, 0)); |
278 EXPECT_EQ(0.75, stepsTimingCustomStart->evaluate(0.74, 0)); | 288 EXPECT_EQ(0.75, stepsTimingCustomStart->evaluate(0.74, 0)); |
279 EXPECT_EQ(1.00, stepsTimingCustomStart->evaluate(0.75, 0)); | 289 EXPECT_EQ(1.00, stepsTimingCustomStart->evaluate(0.75, 0)); |
280 EXPECT_EQ(1.00, stepsTimingCustomStart->evaluate(1.00, 0)); | 290 EXPECT_EQ(1.00, stepsTimingCustomStart->evaluate(1.00, 0)); |
| 291 EXPECT_EQ(1.00, stepsTimingCustomStart->evaluate(1.50, 0)); |
281 | 292 |
282 RefPtr<TimingFunction> stepsTimingCustomMiddle = StepsTimingFunction::create
(4, StepsTimingFunction::StepAtMiddle); | 293 RefPtr<TimingFunction> stepsTimingCustomMiddle = StepsTimingFunction::create
(4, StepsTimingFunction::StepAtMiddle); |
| 294 EXPECT_EQ(0.00, stepsTimingCustomMiddle->evaluate(-2.00, 0)); |
283 EXPECT_EQ(0.00, stepsTimingCustomMiddle->evaluate(0.00, 0)); | 295 EXPECT_EQ(0.00, stepsTimingCustomMiddle->evaluate(0.00, 0)); |
284 EXPECT_EQ(0.00, stepsTimingCustomMiddle->evaluate(0.12, 0)); | 296 EXPECT_EQ(0.00, stepsTimingCustomMiddle->evaluate(0.12, 0)); |
285 EXPECT_EQ(0.25, stepsTimingCustomMiddle->evaluate(0.13, 0)); | 297 EXPECT_EQ(0.25, stepsTimingCustomMiddle->evaluate(0.13, 0)); |
286 EXPECT_EQ(0.25, stepsTimingCustomMiddle->evaluate(0.37, 0)); | 298 EXPECT_EQ(0.25, stepsTimingCustomMiddle->evaluate(0.37, 0)); |
287 EXPECT_EQ(0.50, stepsTimingCustomMiddle->evaluate(0.38, 0)); | 299 EXPECT_EQ(0.50, stepsTimingCustomMiddle->evaluate(0.38, 0)); |
288 EXPECT_EQ(0.50, stepsTimingCustomMiddle->evaluate(0.62, 0)); | 300 EXPECT_EQ(0.50, stepsTimingCustomMiddle->evaluate(0.62, 0)); |
289 EXPECT_EQ(0.75, stepsTimingCustomMiddle->evaluate(0.63, 0)); | 301 EXPECT_EQ(0.75, stepsTimingCustomMiddle->evaluate(0.63, 0)); |
290 EXPECT_EQ(0.75, stepsTimingCustomMiddle->evaluate(0.87, 0)); | 302 EXPECT_EQ(0.75, stepsTimingCustomMiddle->evaluate(0.87, 0)); |
291 EXPECT_EQ(1.00, stepsTimingCustomMiddle->evaluate(0.88, 0)); | 303 EXPECT_EQ(1.00, stepsTimingCustomMiddle->evaluate(0.88, 0)); |
292 EXPECT_EQ(1.00, stepsTimingCustomMiddle->evaluate(1.00, 0)); | 304 EXPECT_EQ(1.00, stepsTimingCustomMiddle->evaluate(1.00, 0)); |
| 305 EXPECT_EQ(1.00, stepsTimingCustomMiddle->evaluate(3.00, 0)); |
293 | 306 |
294 RefPtr<TimingFunction> stepsTimingCustomEnd = StepsTimingFunction::create(4,
StepsTimingFunction::StepAtEnd); | 307 RefPtr<TimingFunction> stepsTimingCustomEnd = StepsTimingFunction::create(4,
StepsTimingFunction::StepAtEnd); |
| 308 EXPECT_EQ(0.00, stepsTimingCustomEnd->evaluate(-2.00, 0)); |
295 EXPECT_EQ(0.00, stepsTimingCustomEnd->evaluate(0.00, 0)); | 309 EXPECT_EQ(0.00, stepsTimingCustomEnd->evaluate(0.00, 0)); |
296 EXPECT_EQ(0.00, stepsTimingCustomEnd->evaluate(0.24, 0)); | 310 EXPECT_EQ(0.00, stepsTimingCustomEnd->evaluate(0.24, 0)); |
297 EXPECT_EQ(0.25, stepsTimingCustomEnd->evaluate(0.25, 0)); | 311 EXPECT_EQ(0.25, stepsTimingCustomEnd->evaluate(0.25, 0)); |
298 EXPECT_EQ(0.25, stepsTimingCustomEnd->evaluate(0.49, 0)); | 312 EXPECT_EQ(0.25, stepsTimingCustomEnd->evaluate(0.49, 0)); |
299 EXPECT_EQ(0.50, stepsTimingCustomEnd->evaluate(0.50, 0)); | 313 EXPECT_EQ(0.50, stepsTimingCustomEnd->evaluate(0.50, 0)); |
300 EXPECT_EQ(0.50, stepsTimingCustomEnd->evaluate(0.74, 0)); | 314 EXPECT_EQ(0.50, stepsTimingCustomEnd->evaluate(0.74, 0)); |
301 EXPECT_EQ(0.75, stepsTimingCustomEnd->evaluate(0.75, 0)); | 315 EXPECT_EQ(0.75, stepsTimingCustomEnd->evaluate(0.75, 0)); |
302 EXPECT_EQ(0.75, stepsTimingCustomEnd->evaluate(0.99, 0)); | 316 EXPECT_EQ(0.75, stepsTimingCustomEnd->evaluate(0.99, 0)); |
303 EXPECT_EQ(1.00, stepsTimingCustomEnd->evaluate(1.00, 0)); | 317 EXPECT_EQ(1.00, stepsTimingCustomEnd->evaluate(1.00, 0)); |
| 318 EXPECT_EQ(1.00, stepsTimingCustomEnd->evaluate(2.00, 0)); |
304 } | 319 } |
305 | 320 |
306 } // namespace | 321 } // namespace |
307 | 322 |
308 } // namespace WebCore | 323 } // namespace WebCore |
OLD | NEW |