| Index: pkg/matcher/lib/src/iterable_matchers.dart
|
| diff --git a/pkg/matcher/lib/src/iterable_matchers.dart b/pkg/matcher/lib/src/iterable_matchers.dart
|
| index 1922aa108aac6a90c355dde84d16936bd0ab7aab..ef7afb0a4c5cd5b2a1a530569f6d594798b48540 100644
|
| --- a/pkg/matcher/lib/src/iterable_matchers.dart
|
| +++ b/pkg/matcher/lib/src/iterable_matchers.dart
|
| @@ -2,16 +2,19 @@
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| -part of matcher;
|
| +library matcher.iterable_matchers;
|
|
|
| -/**
|
| - * Returns a matcher which matches [Iterable]s in which all elements
|
| - * match the given [matcher].
|
| - */
|
| +import 'core_matchers.dart';
|
| +import 'description.dart';
|
| +import 'expect.dart';
|
| +import 'interfaces.dart';
|
| +
|
| +/// Returns a matcher which matches [Iterable]s in which all elements
|
| +/// match the given [matcher].
|
| Matcher everyElement(matcher) => new _EveryElement(wrapMatcher(matcher));
|
|
|
| class _EveryElement extends _IterableMatcher {
|
| - Matcher _matcher;
|
| + final Matcher _matcher;
|
|
|
| _EveryElement(Matcher this._matcher);
|
|
|
| @@ -41,10 +44,10 @@ class _EveryElement extends _IterableMatcher {
|
| mismatchDescription.add('has value ').addDescriptionOf(element).
|
| add(' which ');
|
| var subDescription = new StringDescription();
|
| - _matcher.describeMismatch(element, subDescription,
|
| - matchState['state'], verbose);
|
| + _matcher.describeMismatch(element, subDescription, matchState['state'],
|
| + verbose);
|
| if (subDescription.length > 0) {
|
| - mismatchDescription.add(subDescription);
|
| + mismatchDescription.add(subDescription.toString());
|
| } else {
|
| mismatchDescription.add("doesn't match ");
|
| _matcher.describe(mismatchDescription);
|
| @@ -57,14 +60,12 @@ class _EveryElement extends _IterableMatcher {
|
| }
|
| }
|
|
|
| -/**
|
| - * Returns a matcher which matches [Iterable]s in which at least one
|
| - * element matches the given [matcher].
|
| - */
|
| +/// Returns a matcher which matches [Iterable]s in which at least one
|
| +/// element matches the given [matcher].
|
| Matcher anyElement(matcher) => new _AnyElement(wrapMatcher(matcher));
|
|
|
| class _AnyElement extends _IterableMatcher {
|
| - Matcher _matcher;
|
| + final Matcher _matcher;
|
|
|
| _AnyElement(this._matcher);
|
|
|
| @@ -76,11 +77,9 @@ class _AnyElement extends _IterableMatcher {
|
| description.add('some element ').addDescriptionOf(_matcher);
|
| }
|
|
|
| -/**
|
| - * Returns a matcher which matches [Iterable]s that have the same
|
| - * length and the same elements as [expected], and in the same order.
|
| - * This is equivalent to equals but does not recurse.
|
| - */
|
| +/// Returns a matcher which matches [Iterable]s that have the same
|
| +/// length and the same elements as [expected], and in the same order.
|
| +/// This is equivalent to equals but does not recurse.
|
|
|
| Matcher orderedEquals(Iterable expected) => new _OrderedEquals(expected);
|
|
|
| @@ -109,12 +108,10 @@ class _OrderedEquals extends Matcher {
|
| }
|
| }
|
|
|
| -/**
|
| - * Returns a matcher which matches [Iterable]s that have the same
|
| - * length and the same elements as [expected], but not necessarily in
|
| - * the same order. Note that this is O(n^2) so should only be used on
|
| - * small objects.
|
| - */
|
| +/// Returns a matcher which matches [Iterable]s that have the same
|
| +/// length and the same elements as [expected], but not necessarily in
|
| +/// the same order. Note that this is O(n^2) so should only be used on
|
| +/// small objects.
|
| Matcher unorderedEquals(Iterable expected) => new _UnorderedEquals(expected);
|
|
|
| class _UnorderedEquals extends _UnorderedMatches {
|
| @@ -131,10 +128,8 @@ class _UnorderedEquals extends _UnorderedMatches {
|
| .add(' unordered');
|
| }
|
|
|
| -/**
|
| - * Iterable matchers match against [Iterable]s. We add this intermediate
|
| - * class to give better mismatch error messages than the base Matcher class.
|
| - */
|
| +/// Iterable matchers match against [Iterable]s. We add this intermediate
|
| +/// class to give better mismatch error messages than the base Matcher class.
|
| abstract class _IterableMatcher extends Matcher {
|
| const _IterableMatcher();
|
| Description describeMismatch(item, Description mismatchDescription,
|
| @@ -150,12 +145,10 @@ abstract class _IterableMatcher extends Matcher {
|
| }
|
| }
|
|
|
| -/**
|
| - * Returns a matcher which matches [Iterable]s whose elements match the matchers
|
| - * in [expected], but not necessarily in the same order.
|
| - *
|
| - * Note that this is `O(n^2)` and so should only be used on small objects.
|
| - */
|
| +/// Returns a matcher which matches [Iterable]s whose elements match the
|
| +/// matchers in [expected], but not necessarily in the same order.
|
| +///
|
| +/// Note that this is `O(n^2)` and so should only be used on small objects.
|
| Matcher unorderedMatches(Iterable expected) => new _UnorderedMatches(expected);
|
|
|
| class _UnorderedMatches extends Matcher {
|
| @@ -216,20 +209,20 @@ class _UnorderedMatches extends Matcher {
|
| mismatchDescription.add(_test(item));
|
| }
|
|
|
| -/**
|
| - * A pairwise matcher for iterable. You can pass an arbitrary [comparator]
|
| - * function that takes an expected and actual argument which will be applied
|
| - * to each pair in order. [description] should be a meaningful name for
|
| - * the comparator.
|
| - */
|
| -Matcher pairwiseCompare(Iterable expected, Function comparator,
|
| +/// A pairwise matcher for iterable. You can pass an arbitrary [comparator]
|
| +/// function that takes an expected and actual argument which will be applied
|
| +/// to each pair in order. [description] should be a meaningful name for
|
| +/// the comparator.
|
| +Matcher pairwiseCompare(Iterable expected, bool comparator(a, b),
|
| String description) =>
|
| new _PairwiseCompare(expected, comparator, description);
|
|
|
| +typedef bool _Comparator(a, b);
|
| +
|
| class _PairwiseCompare extends _IterableMatcher {
|
| - Iterable _expected;
|
| - Function _comparator;
|
| - String _description;
|
| + final Iterable _expected;
|
| + final _Comparator _comparator;
|
| + final String _description;
|
|
|
| _PairwiseCompare(this._expected, this._comparator, this._description);
|
|
|
| @@ -270,4 +263,3 @@ class _PairwiseCompare extends _IterableMatcher {
|
| }
|
| }
|
| }
|
| -
|
|
|