public static PropertyMustBe <T, TProp> MustBeGreaterThan <T, TProp>(
     this PropertyMustBe <T, TProp> actual,
     TProp expected)
     where TProp : IComparable <TProp>
 {
     return(actual.CompareTo(expected).Is(Is.GreaterThan));
 }
 public static PropertyMustBe <T, TProp> MustBeLessThanOrEqualTo <T, TProp>(
     this PropertyMustBe <T, TProp> actual,
     TProp expected)
     where TProp : IComparable <TProp>
 {
     return(actual.CompareTo(expected).Is(Is.LessThanOrEqualTo));
 }
        private static PropertyMustBe <T, TValue> MustBePositive <T, TValue>(this PropertyMustBe <T, TValue> actual)
            where TValue : IComparable <TValue>
        {
            var expected = default(TValue);

            return(actual.CompareTo(expected).Is(Is.GreaterThan));
        }