Index: tests/language/async_star_take_reyield_test.dart |
diff --git a/tests/language/async_star_take_reyield_test.dart b/tests/language/async_star_take_reyield_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f2e8737e931bc71e3f6b192df35cb07d6ada11b2 |
--- /dev/null |
+++ b/tests/language/async_star_take_reyield_test.dart |
@@ -0,0 +1,27 @@ |
+// Copyright (c) 2015, 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. |
+ |
+import "dart:async"; |
+import "package:expect/expect.dart"; |
+import "package:async_helper/async_helper.dart"; |
+ |
+expectList(stream, list) { |
+ return stream.toList().then((v) { |
+ Expect.listEquals(v, list); |
+ }); |
+} |
+ |
+Stream makeStream(int n) async* { |
+ for (int i = 0; i < n; i++) yield i; |
+} |
+ |
+main() { |
+ fivePartialSums(Stream s) async* { |
+ var r = 0; |
+ await for(var v in s.take(5)) yield r += v; |
+ } |
+ asyncStart(); |
+ expectList(fivePartialSums(makeStream(10)), [0, 1, 3, 6, 10]) |
+ .then(asyncSuccess); |
+} |