예제 #1
0
            public static Tally New <T>(
                IEnumerable <T> items,
                ITestMatcher <T> matcher,
                Predicate <Tally> stop,
                TestFailure predicateFailure = null)
            {
                if (stop == null)
                {
                    stop = _ => false;
                }
                if (predicateFailure == null)
                {
                    predicateFailure = TestMatcherLocalizer.FailurePredicate(matcher);
                }

                var result = new Tally();

                result.Indexes = new List <int>();
                int index = 0;

                foreach (var item in items)
                {
                    if (stop(result))
                    {
                        result.Stopped = true;
                        break;
                    }

                    var matches = matcher.Matches(TestActual.Value(item));

                    if (matches)
                    {
                        result.Successes++;
                    }
                    else
                    {
                        result.Failures++;
                        result.Indexes.Add(index);
                        result.AFailure = predicateFailure;
                    }

                    index++;
                }
                return(result);
            }
 public bool Matches(ITestActualEvaluation <T> actualFactory)
 {
     return(_real.Matches(
                Actual = TestActual.Value(actualFactory.Exception)
                ));
 }