public void ClampTest() { var m = new Moment(DateTime.Now); m.Clamp(m, m).Should().Be(m); m.Clamp(m + TimeSpan.FromSeconds(1), DateTime.MaxValue) .Should().Be(m + TimeSpan.FromSeconds(1)); m.Clamp(DateTime.MinValue, m - TimeSpan.FromSeconds(1)) .Should().Be(m - TimeSpan.FromSeconds(1)); m = Moment.MinValue; m.ToDateTimeClamped().Should().Be(DateTime.MinValue.ToUniversalTime()); m.ToDateTimeOffsetClamped().Should().Be(DateTimeOffset.MinValue.ToUniversalTime()); m.ToString().Should().Be(new Moment(DateTime.MinValue).ToString()); m = Moment.MaxValue; m.ToDateTimeClamped().Should().Be(DateTime.MaxValue.ToUniversalTime()); m.ToDateTimeOffsetClamped().Should().Be(DateTimeOffset.MaxValue.ToUniversalTime()); m.ToString().Should().Be(new Moment(DateTimeOffset.MaxValue).ToString()); }