// Copyright (c) 2016, 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.

/**
 * @assertion Stream<S> map<S>(S convert(T event))
 *    For each data event, o, in this stream, the returned stream provides
 * a data event with the value convert(o). If convert throws, the returned
 * stream reports the exception as an error event instead.
 *
 * @description Checks that each error thrown by [convert] is passed to returned
 * stream.
 * @author a.semenov@unipro.ru
 */
library map_A02_t01;
import "dart:async";
import "../../../Utils/expect.dart";

void test(CreateStreamFunction create) {
  Stream stream = create(["a", "b", "c"]);
  AsyncExpect.events([], ["a", "b", "c"], stream.map((e) => throw e));

  stream = create([1, 2, 3, 4, 5]);
  AsyncExpect.events([1, 3, 5], [2, 4], stream.map((e) => e.isOdd ? e : throw e));
}
