public void IntersectsWithDateTimeTest() { TimeRange timeRange = new TimeRange( start, end ); // before TimeRange before1 = new TimeRange( start.AddHours( -2 ), start.AddHours( -1 ) ); Assert.IsFalse( timeRange.IntersectsWith( before1 ) ); TimeRange before2 = new TimeRange( start.AddMilliseconds( -1 ), start ); Assert.IsTrue( timeRange.IntersectsWith( before2 ) ); TimeRange before3 = new TimeRange( start.AddMilliseconds( -1 ), start.AddMilliseconds( 1 ) ); Assert.IsTrue( timeRange.IntersectsWith( before3 ) ); // after TimeRange after1 = new TimeRange( end.AddHours( 1 ), end.AddHours( 2 ) ); Assert.IsFalse( timeRange.IntersectsWith( after1 ) ); TimeRange after2 = new TimeRange( end, end.AddMilliseconds( 1 ) ); Assert.IsTrue( timeRange.IntersectsWith( after2 ) ); TimeRange after3 = new TimeRange( end.AddMilliseconds( -1 ), end.AddMilliseconds( 1 ) ); Assert.IsTrue( timeRange.IntersectsWith( after3 ) ); // intersect Assert.IsTrue( timeRange.IntersectsWith( timeRange ) ); TimeRange itersect1 = new TimeRange( start.AddMilliseconds( -1 ), end.AddMilliseconds( 1 ) ); Assert.IsTrue( timeRange.IntersectsWith( itersect1 ) ); TimeRange itersect2 = new TimeRange( start.AddMilliseconds( -1 ), start.AddMilliseconds( 1 ) ); Assert.IsTrue( timeRange.IntersectsWith( itersect2 ) ); TimeRange itersect3 = new TimeRange( end.AddMilliseconds( -1 ), end.AddMilliseconds( 1 ) ); Assert.IsTrue( timeRange.IntersectsWith( itersect3 ) ); }