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); }
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; } }
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)))); }
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)))); }
public static int Compare(Duration duration1, Duration duration2) => Duration.Compare(duration1, duration2);