Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: pkg/unittest/lib/src/iterable_matchers.dart

Issue 208593004: pkg/unittest: dartfmt (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of unittest.matcher; 5 part of unittest.matcher;
6 6
7 /** 7 /**
8 * Returns a matcher which matches [Iterable]s in which all elements 8 * Returns a matcher which matches [Iterable]s in which all elements
9 * match the given [matcher]. 9 * match the given [matcher].
10 */ 10 */
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 } 149 }
150 } 150 }
151 } 151 }
152 152
153 /** 153 /**
154 * Returns a matcher which matches [Iterable]s whose elements match the matchers 154 * Returns a matcher which matches [Iterable]s whose elements match the matchers
155 * in [expected], but not necessarily in the same order. 155 * in [expected], but not necessarily in the same order.
156 * 156 *
157 * Note that this is `O(n^2)` and so should only be used on small objects. 157 * Note that this is `O(n^2)` and so should only be used on small objects.
158 */ 158 */
159 Matcher unorderedMatches(Iterable expected) => 159 Matcher unorderedMatches(Iterable expected) => new _UnorderedMatches(expected);
160 new _UnorderedMatches(expected);
161 160
162 class _UnorderedMatches extends Matcher { 161 class _UnorderedMatches extends Matcher {
163 final List<Matcher> _expected; 162 final List<Matcher> _expected;
164 163
165 _UnorderedMatches(Iterable expected) 164 _UnorderedMatches(Iterable expected)
166 : _expected = expected.map(wrapMatcher).toList(); 165 : _expected = expected.map(wrapMatcher).toList();
167 166
168 String _test(item) { 167 String _test(item) {
169 if (item is !Iterable) return 'not iterable'; 168 if (item is! Iterable) return 'not iterable';
170 item = item.toList(); 169 item = item.toList();
171 170
172 // Check the lengths are the same. 171 // Check the lengths are the same.
173 if (_expected.length > item.length) { 172 if (_expected.length > item.length) {
174 return 'has too few elements (${item.length} < ${_expected.length})'; 173 return 'has too few elements (${item.length} < ${_expected.length})';
175 } else if (_expected.length < item.length) { 174 } else if (_expected.length < item.length) {
176 return 'has too many elements (${item.length} > ${_expected.length})'; 175 return 'has too many elements (${item.length} > ${_expected.length})';
177 } 176 }
178 177
179 var matched = new List<bool>.filled(item.length, false); 178 var matched = new List<bool>.filled(item.length, false);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 return mismatchDescription. 264 return mismatchDescription.
266 add('has '). 265 add('has ').
267 addDescriptionOf(matchState["actual"]). 266 addDescriptionOf(matchState["actual"]).
268 add(' which is not $_description '). 267 add(' which is not $_description ').
269 addDescriptionOf(matchState["expected"]). 268 addDescriptionOf(matchState["expected"]).
270 add(' at index ${matchState["index"]}'); 269 add(' at index ${matchState["index"]}');
271 } 270 }
272 } 271 }
273 } 272 }
274 273
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698