public void IntersectsWithDurationTest() { TimeBlock timeBlock = new TimeBlock(_start, _duration); // before TimeBlock before1 = new TimeBlock(_start.AddHours(-2), _start.AddHours(-1)); Assert.IsFalse(timeBlock.IntersectsWith(before1)); TimeBlock before2 = new TimeBlock(_start.AddMilliseconds(-1), _start); Assert.IsTrue(timeBlock.IntersectsWith(before2)); TimeBlock before3 = new TimeBlock(_start.AddMilliseconds(-1), _start.AddMilliseconds(1)); Assert.IsTrue(timeBlock.IntersectsWith(before3)); // after TimeBlock after1 = new TimeBlock(_end.AddHours(1), _end.AddHours(2)); Assert.IsFalse(timeBlock.IntersectsWith(after1)); TimeBlock after2 = new TimeBlock(_end, _end.AddMilliseconds(1)); Assert.IsTrue(timeBlock.IntersectsWith(after2)); TimeBlock after3 = new TimeBlock(_end.AddMilliseconds(-1), _end.AddMilliseconds(1)); Assert.IsTrue(timeBlock.IntersectsWith(after3)); // intersect Assert.IsTrue(timeBlock.IntersectsWith(timeBlock)); TimeBlock itersect1 = new TimeBlock(_start.AddMilliseconds(-1), _end.AddMilliseconds(1)); Assert.IsTrue(timeBlock.IntersectsWith(itersect1)); TimeBlock itersect2 = new TimeBlock(_start.AddMilliseconds(-1), _start.AddMilliseconds(1)); Assert.IsTrue(timeBlock.IntersectsWith(itersect2)); TimeBlock itersect3 = new TimeBlock(_end.AddMilliseconds(-1), _end.AddMilliseconds(1)); Assert.IsTrue(timeBlock.IntersectsWith(itersect3)); }