public void GetGapTest() { DateTime now = ClockProxy.Clock.Now; SchoolDay schoolDay = new SchoolDay( now ); TimePeriodCollection excludePeriods = new TimePeriodCollection(); TimeGapCalculator<TimeRange> gapCalculator = new TimeGapCalculator<TimeRange>(); excludePeriods.AddAll( schoolDay ); Assert.AreEqual( gapCalculator.GetGaps( excludePeriods ).Count, 0 ); Assert.AreEqual( gapCalculator.GetGaps( excludePeriods, schoolDay ).Count, 0 ); excludePeriods.Clear(); excludePeriods.Add( schoolDay.Lesson1 ); excludePeriods.Add( schoolDay.Lesson2 ); excludePeriods.Add( schoolDay.Lesson3 ); excludePeriods.Add( schoolDay.Lesson4 ); ITimePeriodCollection gaps2 = gapCalculator.GetGaps( excludePeriods ); Assert.AreEqual( gaps2.Count, 3 ); Assert.IsTrue( gaps2[ 0 ].IsSamePeriod( schoolDay.Break1 ) ); Assert.IsTrue( gaps2[ 1 ].IsSamePeriod( schoolDay.Break2 ) ); Assert.IsTrue( gaps2[ 2 ].IsSamePeriod( schoolDay.Break3 ) ); TimeRange testRange3 = new TimeRange( schoolDay.Lesson1.Start, schoolDay.Lesson4.End ); ITimePeriodCollection gaps3 = gapCalculator.GetGaps( excludePeriods, testRange3 ); Assert.AreEqual( gaps3.Count, 3 ); Assert.IsTrue( gaps3[ 0 ].IsSamePeriod( schoolDay.Break1 ) ); Assert.IsTrue( gaps3[ 1 ].IsSamePeriod( schoolDay.Break2 ) ); Assert.IsTrue( gaps3[ 2 ].IsSamePeriod( schoolDay.Break3 ) ); TimeRange testRange4 = new TimeRange( schoolDay.Start.AddHours( -1 ), schoolDay.End.AddHours( 1 ) ); ITimePeriodCollection gaps4 = gapCalculator.GetGaps( excludePeriods, testRange4 ); Assert.AreEqual( gaps4.Count, 5 ); Assert.IsTrue( gaps4[ 0 ].IsSamePeriod( new TimeRange( testRange4.Start, schoolDay.Start ) ) ); Assert.IsTrue( gaps4[ 1 ].IsSamePeriod( schoolDay.Break1 ) ); Assert.IsTrue( gaps4[ 2 ].IsSamePeriod( schoolDay.Break2 ) ); Assert.IsTrue( gaps4[ 3 ].IsSamePeriod( schoolDay.Break3 ) ); Assert.IsTrue( gaps4[ 4 ].IsSamePeriod( new TimeRange( testRange4.End, testRange3.End ) ) ); excludePeriods.Clear(); excludePeriods.Add( schoolDay.Lesson1 ); ITimePeriodCollection gaps8 = gapCalculator.GetGaps( excludePeriods, schoolDay.Lesson1 ); Assert.AreEqual( gaps8.Count, 0 ); TimeRange testRange9 = new TimeRange( schoolDay.Lesson1.Start.Subtract( new TimeSpan( 1 ) ), schoolDay.Lesson1.End.Add( new TimeSpan( 1 ) ) ); ITimePeriodCollection gaps9 = gapCalculator.GetGaps( excludePeriods, testRange9 ); Assert.AreEqual( gaps9.Count, 2 ); Assert.AreEqual( gaps9[ 0 ].Duration, new TimeSpan( 1 ) ); Assert.AreEqual( gaps9[ 1 ].Duration, new TimeSpan( 1 ) ); }
public void AddTest() { TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.AreEqual( timePeriods.Count, 0 ); timePeriods.Add( new TimeRange() ); Assert.AreEqual( timePeriods.Count, 1 ); timePeriods.Add( new TimeRange() ); Assert.AreEqual( timePeriods.Count, 2 ); timePeriods.Clear(); Assert.AreEqual( timePeriods.Count, 0 ); }
public void AddAllTest() { DateTime now = ClockProxy.Clock.Now; SchoolDay schoolDay = new SchoolDay( now ); TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.AreEqual( timePeriods.Count, 0 ); timePeriods.AddAll( schoolDay ); Assert.AreEqual( timePeriods.Count, schoolDay.Count ); timePeriods.Clear(); Assert.AreEqual( timePeriods.Count, 0 ); }
public void ClearTest() { TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.AreEqual( timePeriods.Count, 0 ); timePeriods.Clear(); Assert.AreEqual( timePeriods.Count, 0 ); timePeriods.AddAll( new SchoolDay() ); Assert.AreEqual( timePeriods.Count, 7 ); timePeriods.Clear(); Assert.AreEqual( timePeriods.Count, 0 ); }
public void StartTest() { DateTime now = ClockProxy.Clock.Now; TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.AreEqual( timePeriods.Start, TimeSpec.MinPeriodDate ); timePeriods.Add( new TimeBlock( now, Duration.Hour ) ); Assert.AreEqual( timePeriods.Start, now ); timePeriods.Clear(); Assert.AreEqual( timePeriods.Start, TimeSpec.MinPeriodDate ); }
public void IsMomentTest() { DateTime now = ClockProxy.Clock.Now; TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.IsFalse( timePeriods.IsMoment ); timePeriods.Add( TimeRange.Anytime ); Assert.IsFalse( timePeriods.IsMoment ); timePeriods.Clear(); Assert.IsFalse( timePeriods.IsMoment ); timePeriods.Add( new TimeRange( now ) ); Assert.IsTrue( timePeriods.IsMoment ); timePeriods.Add( new TimeRange( now ) ); Assert.IsTrue( timePeriods.IsMoment ); timePeriods.Clear(); Assert.IsTrue( timePeriods.IsAnytime ); }
public void IsAnytimeTest() { DateTime now = ClockProxy.Clock.Now; TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.IsTrue( timePeriods.IsAnytime ); timePeriods.Add( TimeRange.Anytime ); Assert.IsTrue( timePeriods.IsAnytime ); timePeriods.Clear(); Assert.IsTrue( timePeriods.IsAnytime ); timePeriods.Add( new TimeRange( TimeSpec.MinPeriodDate, now ) ); Assert.IsFalse( timePeriods.IsAnytime ); timePeriods.Add( new TimeRange( now, TimeSpec.MaxPeriodDate ) ); Assert.IsTrue( timePeriods.IsAnytime ); timePeriods.Clear(); Assert.IsTrue( timePeriods.IsAnytime ); }
public void HasStartTest() { TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.IsFalse( timePeriods.HasStart ); timePeriods.Add( new TimeBlock( TimeSpec.MinPeriodDate, Duration.Hour ) ); Assert.IsFalse( timePeriods.HasStart ); timePeriods.Clear(); timePeriods.Add( new TimeBlock( ClockProxy.Clock.Now, Duration.Hour ) ); Assert.IsTrue( timePeriods.HasStart ); }
public void HasEndTest() { DateTime now = ClockProxy.Clock.Now; TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.IsFalse( timePeriods.HasEnd ); timePeriods.Add( new TimeBlock( Duration.Hour, TimeSpec.MaxPeriodDate ) ); Assert.IsFalse( timePeriods.HasEnd ); timePeriods.Clear(); timePeriods.Add( new TimeBlock( now, Duration.Hour ) ); Assert.IsTrue( timePeriods.HasEnd ); }
public void EndTest() { DateTime now = ClockProxy.Clock.Now; TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.AreEqual( timePeriods.End, TimeSpec.MaxPeriodDate ); timePeriods.Add( new TimeBlock( Duration.Hour, now ) ); Assert.AreEqual( timePeriods.End, now ); timePeriods.Clear(); Assert.AreEqual( timePeriods.End, TimeSpec.MaxPeriodDate ); }
public void CountTest() { TimePeriodCollection timePeriods = new TimePeriodCollection(); Assert.AreEqual( timePeriods.Count, 0 ); timePeriods.AddAll( timeRangeTestData.AllPeriods ); Assert.AreEqual( timePeriods.Count, timeRangeTestData.AllPeriods.Count ); timePeriods.Clear(); Assert.AreEqual( timePeriods.Count, 0 ); }