public static void IfNotEqual <TExpected, TActual>(
     [CanBeNull] TExpected expected,
     [CanBeNull] TActual actual,
     [NotNull][System.Diagnostics.CodeAnalysis.NotNull] string name
     )
 {
     Fail.RequiresArgumentName(name);
     Fail.IfNotEqual(expected, actual, Violation.WhenNotEqual(name, expected, actual));
 }
        public static void IfNotDate([CanBeNull] DateTime?date, Violation message)
        {
            if (date == null)
            {
                return;
            }

            DateTime dateTime = date.Value;

            Fail.IfNotEqual(dateTime.Date, dateTime, message);
        }