static void ReverseTestHelper <T, TSize>(T start, bool isStartIncluded, TSize addition, bool isEndIncluded) where T : IComparable <T> where TSize : IComparable <TSize> { IInterval <T, TSize> interval = NewInterval(start, addition, isStartIncluded, isEndIncluded); T small = interval.Start; T big = interval.End; bool smallIncluded = interval.IsStartIncluded; bool bigIncluded = interval.IsEndIncluded; interval = interval.Reverse(); Assert.True(interval.IsReversed); Assert.Equal(small, interval.End); Assert.Equal(smallIncluded, interval.IsEndIncluded); Assert.Equal(big, interval.Start); Assert.Equal(bigIncluded, interval.IsStartIncluded); interval = interval.Reverse(); Assert.False(interval.IsReversed); Assert.Equal(small, interval.Start); Assert.Equal(smallIncluded, interval.IsStartIncluded); Assert.Equal(big, interval.End); Assert.Equal(bigIncluded, interval.IsEndIncluded); }