public void CopyTest() { TimeInterval readOnlyTimeInterval = new TimeInterval( start, end ); Assert.AreEqual( readOnlyTimeInterval.Copy( TimeSpan.Zero ), readOnlyTimeInterval ); TimeInterval timeInterval = new TimeInterval( start, end ); Assert.AreEqual( timeInterval.Start, start ); Assert.AreEqual( timeInterval.End, end ); ITimeInterval noMoveTimeInterval = timeInterval.Copy( TimeSpan.Zero ); Assert.AreEqual( noMoveTimeInterval.Start, start ); Assert.AreEqual( noMoveTimeInterval.End, end ); Assert.AreEqual( noMoveTimeInterval.Duration, duration ); TimeSpan forwardOffset = new TimeSpan( 2, 30, 15 ); ITimeInterval forwardTimeInterval = timeInterval.Copy( forwardOffset ); Assert.AreEqual( forwardTimeInterval.Start, start.Add( forwardOffset ) ); Assert.AreEqual( forwardTimeInterval.End, end.Add( forwardOffset ) ); TimeSpan backwardOffset = new TimeSpan( -1, 10, 30 ); ITimeInterval backwardTimeInterval = timeInterval.Copy( backwardOffset ); Assert.AreEqual( backwardTimeInterval.Start, start.Add( backwardOffset ) ); Assert.AreEqual( backwardTimeInterval.End, end.Add( backwardOffset ) ); }