public static ValueChecker <string> Contains([NotNull] this ValueChecker <string> Checker, [NotNull] string ExpectedSubstring, string Message = null)
 {
     StringAssert.Contains(Checker.ActualValue, ExpectedSubstring,
                           "{0}Указанная строка {1} не содержит ожидаемой подстроки {2}",
                           Message.AddSeparator(),
                           Checker.ActualValue,
                           ExpectedSubstring);
     return(Checker);
 }
 public static ValueChecker <string> StartWith([NotNull] this ValueChecker <string> Checker, [NotNull] string ExpectedPrefix, string Message = null)
 {
     StringAssert.StartsWith(Checker.ActualValue, ExpectedPrefix,
                             "{0}Указанная строка {1} не начинается с ожидаемого префикса {2}",
                             Message.AddSeparator(),
                             Checker.ActualValue,
                             ExpectedPrefix);
     return(Checker);
 }
 public static ValueChecker <string> DoesNotMatch([NotNull] this ValueChecker <string> Checker, [NotNull] Regex ExpectedRegEx, string Message = null)
 {
     StringAssert.DoesNotMatch(Checker.ActualValue, ExpectedRegEx,
                               "{0}Указанная строка {1} ошибочно соответствует ожидаемому регулярному выражению {2}",
                               Message.AddSeparator(),
                               Checker.ActualValue,
                               ExpectedRegEx);
     return(Checker);
 }
 public static ValueChecker <double> LessOrEqualsThan([NotNull] this ValueChecker <double> Checker, double ExpectedValue, double Accuracy, string Message = null)
 {
     if (!(Checker.ActualValue <= ExpectedValue + Accuracy))
     {
         throw new AssertFailedException(
                   $"{Message.AddSeparator()}Нарушено условие ({Checker.ActualValue} >= {ExpectedValue}) при точности {Accuracy:e2}. delta:{(ExpectedValue - Checker.ActualValue).ToString("e2", CultureInfo.InvariantCulture)}");
     }
     return(Checker);
 }
 public static ValueChecker <string> EndWith([NotNull] this ValueChecker <string> Checker, [NotNull] string ExpectedSuffix, string Message = null)
 {
     StringAssert.EndsWith(Checker.ActualValue, ExpectedSuffix,
                           "{0}Указанная строка {1} не заканчивается ожидаемым окончанием {2}",
                           Message.AddSeparator(),
                           Checker.ActualValue,
                           ExpectedSuffix);
     return(Checker);
 }
        public static ValueChecker <string> IsNullOrWhiteSpace(this ValueChecker <string> Checker, string Message = null)
        {
            var str = Checker.ActualValue;

            if (!string.IsNullOrWhiteSpace(str))
            {
                throw new AssertFailedException($"{Message.AddSeparator()}Строка не пуста");
            }
            return(Checker);
        }
        public static ValueChecker <string> IsNotNullOrWhiteSpace(this ValueChecker <string> Checker, string Message = null)
        {
            var str = Checker.ActualValue;

            if (string.IsNullOrWhiteSpace(str))
            {
                throw new AssertFailedException($"{Message.AddSeparator()}Строка является {(str is null ? "пустой ссылкой" : string.IsNullOrWhiteSpace(str) ? "строкой из пробелов" : "пустой строкой")}");
            }
            return(Checker);
        }
        public static ValueChecker <string> IsNotNullOrEmpty(this ValueChecker <string> Checker, string Message = null)
        {
            var str = Checker.ActualValue;

            if (string.IsNullOrEmpty(str))
            {
                throw new AssertFailedException($"{Message.AddSeparator()}Строка является пустой {(str is null ? "ссылкой" : "строкой")}");
            }
            return(Checker);
        }
 public static ValueChecker <int> IsNotEqual([NotNull] this ValueChecker <int> Checker, int ExpectedValue, int Accuracy, string Message = null)
 {
     Assert.AreNotEqual(
         ExpectedValue, Checker.ActualValue, Accuracy,
         "{0}err:{1}(rel:{2}), eps:{3}",
         Message.AddSeparator(),
         Math.Abs(ExpectedValue - Checker.ActualValue),
         ((ExpectedValue - Checker.ActualValue) / (double)Checker.ActualValue).ToString(CultureInfo.InvariantCulture),
         Accuracy);
     return(Checker);
 }
Пример #10
0
        /// <summary>Выполнение проверки элементов коллекции</summary>
        /// <param name="Checker">Объект проверки одиночного значения</param>
        /// <param name="Check">Метод проверки элементов коллекции с учётом порядкового номера</param>
        /// <returns>Исходный объект проверки коллекции</returns>
        public static ValueChecker <T> Items <T, TItem>(this ValueChecker <T> Checker, Action <ValueChecker <TItem>, int> Check) where T : IReadOnlyList <TItem>
        {
            var collection = Checker.ActualValue;
            var count      = collection.Count;

            for (var i = 0; i < count; i++)
            {
                Check(new ValueChecker <TItem>(collection[i]), i);
            }

            return(Checker);
        }
Пример #11
0
 public static ValueChecker <bool> Is([NotNull] this ValueChecker <bool> Checker, bool Value, string Message = null)
 {
     if (Value)
     {
         Assert.IsTrue(Checker.ActualValue, "{0}Значение не истинно", Message.AddSeparator());
     }
     else
     {
         Assert.IsFalse(Checker.ActualValue, "{0}Значение не ложно", Message.AddSeparator());
     }
     return(Checker);
 }
        public static ValueChecker <double> IsEqual(
            [NotNull] this ValueChecker <double> Checker,
            double ExpectedValue,
            double Accuracy,
            string Message = null)
        {
            if (double.IsNaN(ExpectedValue))
            {
                throw new ArgumentException("ExpectedValue is NaN", nameof(ExpectedValue));
            }
            var actual_value = Checker.ActualValue;

            if (double.IsNaN(actual_value))
            {
                throw new ArgumentException("Checker.ActualValue is NaN", nameof(Checker.ActualValue));
            }
            if (double.IsNaN(Accuracy))
            {
                throw new ArgumentException("Accuracy is NaN", nameof(actual_value));
            }

            var value_delta     = ExpectedValue - actual_value;
            var value_delta_abs = Math.Abs(value_delta);

            if (value_delta_abs <= Accuracy)
            {
                return(Checker);
            }

            var msg = Message.AddSeparator(Environment.NewLine);
            var invariant_culture = CultureInfo.InvariantCulture;
            var delta_str         = value_delta_abs.ToString("e2", invariant_culture);
            var rel_delta_str     = (value_delta / actual_value).ToString(invariant_culture);
            var error_delta       = value_delta_abs - Accuracy;
            var err_delta_str     = error_delta.ToString("e2", invariant_culture);

            var new_accuracy      = value_delta_abs;
            var expected_accuracy = (new_accuracy + Math.Pow(10, (int)Math.Log10(new_accuracy) - 3))
                                    .ToString("e2", invariant_culture);

            throw new AssertFailedException(
                      $"{msg}Ожидаемое значение {ExpectedValue.ToString(invariant_culture)} не равно реальному {actual_value.ToString(invariant_culture)}." + Environment.NewLine
                      + $"err:{delta_str}(rel:{rel_delta_str}) eps:{Accuracy.ToString(invariant_culture)}(eps-delta:{err_delta_str})" + Environment.NewLine
                      + $"Требуется точность :{expected_accuracy}");
        }
Пример #13
0
 /// <summary>Инициализация нового объекта проверки дочернего значения коллекции</summary>
 /// <param name="ActualCollection">Проверяемое значение коллекции</param>
 /// <param name="BaseChecker">Базовый объект проверки значения</param>
 internal NestedCollectionValueChecker(System.Collections.Generic.ICollection <TValue> ActualCollection, ValueChecker <TBaseValue> BaseChecker) : base(ActualCollection) => _BaseChecker = BaseChecker;
Пример #14
0
 public static CollectionChecker <TItem> Are <T, TItem>([NotNull] this ValueChecker <T> Checker) where T : ICollection <TItem> => new CollectionChecker <TItem>(Checker.ActualValue);
 public static DoubleCompareCheckerWithAccuracy LessOrEqual([NotNull] this ValueChecker <double> Checker, double ExpectedValue) =>
 new DoubleCompareCheckerWithAccuracy(Checker.ActualValue, ExpectedValue, IsEquals: true, IsLessChecking: true);
Пример #16
0
 /// <summary>Инициализация нового объекта проверки вложенного значения</summary>
 /// <param name="ActualValue">Проверяемое значение</param>
 /// <param name="BaseChecker">Базовый объект проверки значения</param>
 internal NestedValueChecker(TValue ActualValue, ValueChecker <TBaseValue> BaseChecker) : base(ActualValue) => BaseValue = BaseChecker;
Пример #17
0
 public static ValueChecker <bool> IsFalse([NotNull] this ValueChecker <bool> Checker, string Message = null)
 {
     Assert.IsFalse(Checker.ActualValue, "{0}Значение не ложно", Message.AddSeparator());
     return(Checker);
 }
 public static DoubleEqualityCheckerWithAccuracy IsNotEqualTo([NotNull] this ValueChecker <double> Checker, double ExpectedValue) =>
 new DoubleEqualityCheckerWithAccuracy(Checker.ActualValue, ExpectedValue, true);
 /// <summary>Проверка, что строка НЕ соответствует указанному регулярному выражению</summary>
 /// <param name="Checker">Объект проверки строкового значения</param>
 /// <param name="ExpectedRegEx">Регулярное выражение, которому не должна соответствовать строка</param>
 /// <param name="Message">Сообщение, выводимое в случае ошибки при проверке</param>
 /// <returns>Исходный объект проверки строки</returns>
 [NotNull] public static ValueChecker <string> DoesNotMatch([NotNull] this ValueChecker <string> Checker, [NotNull, RegexPattern] string ExpectedRegEx, string Message = null) => Checker.DoesNotMatch(new Regex(ExpectedRegEx), Message);