Index: tests/corelib/iterable_length_test.dart |
diff --git a/tests/corelib/iterable_length_test.dart b/tests/corelib/iterable_length_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8dd6cdaf9eebb27239ea077e1bbf9df361718416 |
--- /dev/null |
+++ b/tests/corelib/iterable_length_test.dart |
@@ -0,0 +1,41 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// 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. |
+ |
+class A extends Iterable { |
+ int count; |
+ A(this.count); |
+ |
+ Iterator get iterator { |
+ return new AIterator(count); |
+ } |
+} |
+ |
+class AIterator implements Iterator { |
+ int _count; |
+ int _current; |
+ |
+ AIterator(this._count); |
+ |
+ bool moveNext() { |
+ if (_count > 0) { |
+ _current = _count; |
+ _count--; |
+ return true; |
+ } |
+ _current = null; |
+ return false; |
+ } |
+ |
+ get current => _current; |
+} |
+ |
+main() { |
+ var a = new A(10); |
+ Expect.equals(10, a.length); |
+ a = new A(0); |
+ Expect.equals(0, a.length); |
+ a = new A(5); |
+ Expect.equals(5, a.mappedBy((e) => e + 1).length); |
+ Expect.equals(3, a.where((e) => e >= 3).length); |
+} |