コード例 #1
0
        public void AppliesEasingFunction()
        {
            const double defaultOrigin      = 0;
            const double defaultDestination = 100;
            var          defaultAnimation   = new FromToByDoubleAnimation();
            var          easingAnimation    = new FromToByDoubleAnimation();
            var          clock          = new ControllableAnimationClock();
            var          easingFunction = new QuadraticEase();

            easingAnimation.EasingFunction = easingFunction;

            for (double progress = 0d; progress <= 1d; progress += 0.01)
            {
                // Manually apply the easing function.
                double easedProgress = easingFunction.Ease(progress);
                clock.CurrentProgress = easedProgress;
                double expectedResult = defaultAnimation.GetCurrentValue(defaultOrigin, defaultDestination, clock);

                // Then test if the animation does it on its own.
                clock.CurrentProgress = progress;
                double easedResult = easingAnimation.GetCurrentValue(defaultOrigin, defaultDestination, clock);

                Assert.Equal(expectedResult, easedResult);
            }
        }
コード例 #2
0
 public void ShouldThrowWhenModeIsInvalid()
 {
     var easingFunction = new QuadraticEase();
       Assert.That(
     () =>
     {
       easingFunction.Mode = (EasingMode)99;
       easingFunction.Ease(0.0f);
     }, Throws.TypeOf<InvalidAnimationException>());
 }
コード例 #3
0
        public void ShouldThrowWhenModeIsInvalid()
        {
            var easingFunction = new QuadraticEase();

            Assert.That(
                () =>
            {
                easingFunction.Mode = (EasingMode)99;
                easingFunction.Ease(0.0f);
            }, Throws.TypeOf <InvalidAnimationException>());
        }