public static void IsCanonical <T>(this IComparableAssert assert, IComparable <T> comparable, T less, T equal, T greater)
        {
            Assert.IsTrue(comparable.CompareTo(less) > 0, CreateMessage("x.CompareTo(less) > 0"));
            Assert.IsTrue(comparable.CompareTo(equal) == 0, CreateMessage("x.CompareTo(equal) == 0"));
            Assert.IsTrue(comparable.CompareTo(greater) < 0, CreateMessage("x.CompareTo(greater) < 0"));

            string CreateMessage(string requirement)
            {
                return($"{typeof(IComparable<T>).ToPrettyString()} violates the {requirement.QuoteWith("'")} requirement.");
            }
        }
 public static IComparableCompareToAssert CompareTo(this IComparableAssert assert) => default(IComparableCompareToAssert);