コード例 #1
0
        public void Compare_TestData(Duration duration1, Duration duration2, int expected)
        {
            bool bothOrNoneAutomatic = (duration1 == Duration.Automatic) == (duration2 == Duration.Automatic);

            Assert.Equal(expected, Duration.Compare(duration1, duration2));

            Assert.Equal(expected <= 0 && bothOrNoneAutomatic, duration1 <= duration2);
            Assert.Equal(expected < 0 && bothOrNoneAutomatic, duration1 < duration2);

            Assert.Equal(expected == 0 && bothOrNoneAutomatic, duration1 == duration2);
            Assert.Equal(expected != 0, duration1 != duration2);

            Assert.Equal(expected >= 0 && bothOrNoneAutomatic, duration1 >= duration2);
            Assert.Equal(expected > 0 && bothOrNoneAutomatic, duration1 > duration2);
        }
コード例 #2
0
ファイル: SlideShow.cs プロジェクト: FileMeta/FMSlideShow
        public void PanelStateChanged(SlidePanel panel, PanelState oldState, PanelState newState)
        {
            Debug.WriteLine(string.Format("State changed from {0} to {1}", oldState, newState));
            // Must be the active panel to matter
            if (!Object.ReferenceEquals(panel, fActivePanel))
            {
                return;
            }

            switch (newState)
            {
            case PanelState.Still:
                if (oldState == PanelState.Paused)
                {
                    Next();
                }
                else
                {
                    AutoAdvanceIn(fAutoAdvanceNextPeriod == 0 ? fAdvanceTime : fAutoAdvanceNextPeriod);
                }
                break;

            case PanelState.Playing:
                if (fTruncateVideo && Duration.Compare(panel.Duration, sLongVideoThreshold) >= 0)
                {
                    AutoAdvanceIn(cLongVideoLimit);
                    Debug.WriteLine("Truncating {0} second video.", panel.Duration.TimeSpan.TotalSeconds);
                }
                else
                {
                    AutoAdvanceIn(-1);          // Clear auto-advance
                }
                break;

            case PanelState.Paused:
                AutoAdvanceIn(-1);                              // Clear auto-advance
                break;

            case PanelState.Completed:
                AutoAdvanceIn(fAdvanceTime);
                break;
            }
        }
コード例 #3
0
        public void When_Duration_Is_TimeSpan()
        {
            var duration = new Duration(TimeSpan.FromSeconds(24));

            Assert.IsTrue(duration.HasTimeSpan);

            Assert.IsTrue(duration.Equals((object)new Duration(TimeSpan.FromSeconds(24))));
            Assert.IsTrue(duration.Equals(new Duration(TimeSpan.FromSeconds(24))));
            Assert.IsTrue(Duration.Equals(duration, new Duration(TimeSpan.FromSeconds(24))));

            Assert.IsFalse(duration.Equals(null));
            Assert.IsFalse(duration.Equals((object)Duration.Automatic));
            Assert.IsFalse(duration.Equals(new Duration(TimeSpan.FromSeconds(30))));
            Assert.IsFalse(Duration.Equals(duration, Duration.Forever));

            Assert.AreEqual("00:00:24", duration.ToString());

            Assert.AreEqual(1, duration.CompareTo(Duration.Automatic));
            Assert.AreEqual(-1, duration.CompareTo(Duration.Forever));
            Assert.AreEqual(0, Duration.Compare(duration, new Duration(TimeSpan.FromSeconds(24))));

            Assert.AreEqual(new Duration(TimeSpan.FromSeconds(48)), duration.Add(new Duration(TimeSpan.FromSeconds(24))));
            Assert.AreEqual(new Duration(TimeSpan.FromSeconds(1)), duration.Subtract(new Duration(TimeSpan.FromSeconds(23))));
        }
コード例 #4
0
        public void When_Duration_Is_Forever()
        {
            var duration = Duration.Forever;

            Assert.IsFalse(duration.HasTimeSpan);

            Assert.IsTrue(duration.Equals((object)Duration.Forever));
            Assert.IsTrue(duration.Equals(Duration.Forever));
            Assert.IsTrue(Duration.Equals(duration, Duration.Forever));

            Assert.IsFalse(duration.Equals(null));
            Assert.IsFalse(duration.Equals((object)Duration.Automatic));
            Assert.IsFalse(duration.Equals(new Duration(TimeSpan.FromSeconds(30))));
            Assert.IsFalse(Duration.Equals(duration, Duration.Automatic));

            Assert.AreEqual("Forever", duration.ToString());

            Assert.AreEqual(1, duration.CompareTo(Duration.Automatic));
            Assert.AreEqual(0, duration.CompareTo(Duration.Forever));
            Assert.AreEqual(1, Duration.Compare(duration, new Duration(TimeSpan.FromSeconds(24))));

            Assert.AreEqual(duration, duration.Add(new Duration(TimeSpan.FromSeconds(24))));
            Assert.AreEqual(duration, duration.Subtract(new Duration(TimeSpan.FromSeconds(24))));
        }
コード例 #5
0
 public static int Compare(Duration duration1, Duration duration2)
 => Duration.Compare(duration1, duration2);