public void TouchingIntervalTest()
{
TimeInterval timeInterval1 = new TimeInterval( start, end );
TimeInterval timeInterval2 = new TimeInterval( end, end.AddHours( 1 ) );
Assert.AreNotEqual( timeInterval1.GetIntersection( timeInterval2 ), null );
Assert.AreEqual( timeInterval1.IntersectsWith( timeInterval2 ), true );
Assert.AreEqual( timeInterval1.GetRelation( timeInterval2 ), PeriodRelation.EndTouching );
Assert.AreEqual( timeInterval2.GetRelation( timeInterval1 ), PeriodRelation.StartTouching );
timeInterval1.EndEdge = IntervalEdge.Open;
Assert.AreEqual( timeInterval1.GetIntersection( timeInterval2 ), null );
Assert.AreEqual( timeInterval1.IntersectsWith( timeInterval2 ), false );
Assert.AreEqual( timeInterval1.GetRelation( timeInterval2 ), PeriodRelation.Before );
Assert.AreEqual( timeInterval2.GetRelation( timeInterval1 ), PeriodRelation.After );
timeInterval1.EndEdge = IntervalEdge.Closed;
Assert.AreNotEqual( timeInterval1.GetIntersection( timeInterval2 ), null );
Assert.AreEqual( timeInterval1.IntersectsWith( timeInterval2 ), true );
Assert.AreEqual( timeInterval1.GetRelation( timeInterval2 ), PeriodRelation.EndTouching );
Assert.AreEqual( timeInterval2.GetRelation( timeInterval1 ), PeriodRelation.StartTouching );
timeInterval2.StartEdge = IntervalEdge.Open;
Assert.AreEqual( timeInterval1.GetIntersection( timeInterval2 ), null );
Assert.AreEqual( timeInterval1.IntersectsWith( timeInterval2 ), false );
Assert.AreEqual( timeInterval1.GetRelation( timeInterval2 ), PeriodRelation.Before );
Assert.AreEqual( timeInterval2.GetRelation( timeInterval1 ), PeriodRelation.After );
timeInterval2.StartEdge = IntervalEdge.Closed;
Assert.AreNotEqual( timeInterval1.GetIntersection( timeInterval2 ), null );
Assert.AreEqual( timeInterval1.IntersectsWith( timeInterval2 ), true );
Assert.AreEqual( timeInterval1.GetRelation( timeInterval2 ), PeriodRelation.EndTouching );
Assert.AreEqual( timeInterval2.GetRelation( timeInterval1 ), PeriodRelation.StartTouching );
}