| 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);
|
| +}
|
|
|