| 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 |