예제 #1
0
        public void ShouldThrowWhenClipIsInvalid()
        {
            var timelineClip = new TimelineClip
            {
                Timeline  = new SingleFromToByAnimation(),
                ClipStart = TimeSpan.FromSeconds(0.75),
                ClipEnd   = TimeSpan.FromSeconds(0.25),
            };

            Assert.That(() => timelineClip.GetTotalDuration(), Throws.TypeOf <InvalidAnimationException>());
            Assert.That(() => timelineClip.GetState(TimeSpan.Zero), Throws.TypeOf <InvalidAnimationException>());
            Assert.That(() => timelineClip.GetAnimationTime(TimeSpan.Zero), Throws.TypeOf <InvalidAnimationException>());
        }
예제 #2
0
        public void GetValueTest()
        {
            var timelineClip = new TimelineClip();
              timelineClip.GetState(TimeSpan.Zero);     // Should not crash.
              timelineClip.GetAnimationTime(TimeSpan.FromSeconds(0.0)); // Should not crash.

              timelineClip.Delay = TimeSpan.FromSeconds(100);
              timelineClip.Speed = 1.0f;
              timelineClip.ClipStart = TimeSpan.FromSeconds(10.5);
              timelineClip.ClipEnd = TimeSpan.FromSeconds(11.5);
              timelineClip.ClipOffset = TimeSpan.FromSeconds(-0.5);
              timelineClip.Duration = TimeSpan.FromSeconds(4.0);
              timelineClip.LoopBehavior = LoopBehavior.Oscillate;

              timelineClip.Timeline = new TimelineClip
              {
            Timeline = new SingleFromToByAnimation { Duration = TimeSpan.FromSeconds(4.0) },
            Delay = TimeSpan.FromSeconds(10),
            Duration = null,
            Speed = 2.0f,
              };

              // Delayed
              Assert.AreEqual(AnimationState.Delayed, timelineClip.GetState(TimeSpan.FromSeconds(99.0)));
              Assert.IsFalse(timelineClip.GetAnimationTime(TimeSpan.FromSeconds(99.0)).HasValue);

              // Playing
              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(100.0)));
              Assert.AreEqual(TimeSpan.FromSeconds(11.0), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(100.0)));

              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(100.5)));
              Assert.AreEqual(TimeSpan.FromSeconds(10.5), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(100.5)));

              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(101.0)));
              Assert.AreEqual(TimeSpan.FromSeconds(11.0), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(101.0)));

              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(101.5)));
              Assert.AreEqual(TimeSpan.FromSeconds(11.5), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(101.5)));

              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(102.0)));
              Assert.AreEqual(TimeSpan.FromSeconds(11.0), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(102.0)));

              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(102.5)));
              Assert.AreEqual(TimeSpan.FromSeconds(10.5), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(102.5)));

              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(103.0)));
              Assert.AreEqual(TimeSpan.FromSeconds(11.0), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(103.0)));

              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(103.5)));
              Assert.AreEqual(TimeSpan.FromSeconds(11.5), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(103.5)));

              Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(104.0)));
              Assert.AreEqual(TimeSpan.FromSeconds(11.0), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(104.0)));

              // Filling
              Assert.AreEqual(AnimationState.Filling, timelineClip.GetState(TimeSpan.FromSeconds(104.5)));
              Assert.AreEqual(TimeSpan.FromSeconds(11.0), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(104.5)));

              timelineClip.FillBehavior = FillBehavior.Stop;

              // Stopped
              Assert.AreEqual(AnimationState.Stopped, timelineClip.GetState(TimeSpan.FromSeconds(104.5)));
              Assert.IsFalse(timelineClip.GetAnimationTime(TimeSpan.FromSeconds(104.5)).HasValue);
        }
예제 #3
0
        public void ShouldThrowWhenClipIsInvalid()
        {
            var timelineClip = new TimelineClip
              {
            Timeline = new SingleFromToByAnimation(),
            ClipStart = TimeSpan.FromSeconds(0.75),
            ClipEnd = TimeSpan.FromSeconds(0.25),
              };

              Assert.That(() => timelineClip.GetTotalDuration(), Throws.TypeOf<InvalidAnimationException>());
              Assert.That(() => timelineClip.GetState(TimeSpan.Zero), Throws.TypeOf<InvalidAnimationException>());
              Assert.That(() => timelineClip.GetAnimationTime(TimeSpan.Zero), Throws.TypeOf<InvalidAnimationException>());
        }
예제 #4
0
        public void ReverseClip()
        {
            var timelineClip = new TimelineClip();

            timelineClip.GetState(TimeSpan.Zero);                     // Should not crash.
            timelineClip.GetAnimationTime(TimeSpan.FromSeconds(0.0)); // Should not crash.

            timelineClip.Delay          = TimeSpan.FromSeconds(100);
            timelineClip.Speed          = 1.0f;
            timelineClip.ClipStart      = TimeSpan.FromSeconds(10);
            timelineClip.ClipEnd        = TimeSpan.FromSeconds(12);
            timelineClip.ClipOffset     = TimeSpan.FromSeconds(-0.1);
            timelineClip.IsClipReversed = true;
            timelineClip.Duration       = TimeSpan.FromSeconds(8.0);
            timelineClip.LoopBehavior   = LoopBehavior.Oscillate;

            timelineClip.Timeline = new TimelineClip
            {
                Timeline = new SingleFromToByAnimation {
                    Duration = TimeSpan.FromSeconds(4.0)
                },
                Delay    = TimeSpan.FromSeconds(10),
                Duration = null,
                Speed    = 2.0f,
            };

            Assert.IsTrue(timelineClip.IsClipReversed);

            // Delayed
            Assert.AreEqual(AnimationState.Delayed, timelineClip.GetState(TimeSpan.FromSeconds(99.0)));
            Assert.IsFalse(timelineClip.GetAnimationTime(TimeSpan.FromSeconds(99.0)).HasValue);

            // Playing
            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(100.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(11.9), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(100.0)));

            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(101.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(11.1), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(101.0)));

            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(102.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(10.1), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(102.0)));

            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(103.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(10.9), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(103.0)));

            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(104.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(11.9), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(104.0)));

            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(105.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(11.1), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(105.0)));

            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(106.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(10.1), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(106.0)));

            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(107.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(10.9), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(107.0)));

            Assert.AreEqual(AnimationState.Playing, timelineClip.GetState(TimeSpan.FromSeconds(108.0)));
            Assert.AreEqual(TimeSpan.FromSeconds(11.9), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(108.0)));

            // Filling
            Assert.AreEqual(AnimationState.Filling, timelineClip.GetState(TimeSpan.FromSeconds(108.5)));
            Assert.AreEqual(TimeSpan.FromSeconds(11.9), timelineClip.GetAnimationTime(TimeSpan.FromSeconds(108.5)));

            timelineClip.FillBehavior = FillBehavior.Stop;

            // Stopped
            Assert.AreEqual(AnimationState.Stopped, timelineClip.GetState(TimeSpan.FromSeconds(108.5)));
            Assert.IsFalse(timelineClip.GetAnimationTime(TimeSpan.FromSeconds(108.5)).HasValue);
        }