// Copyright (c) 2011, 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 Future<S> fold<S>(S initialValue, S combine(S previous, T element))
 * Reduces a sequence of values by repeatedly applying combine.
 * @description Checks that if the stream contains no elements, the combine
 * method is not called and the future returns initialValue.
 * @note undocumented
 * @author kaigorodov
 */
library fold_A01_t02;
import "../../../Utils/expect.dart";

void test(CreateStreamFunction create) {
  Object? combine(Object? p, var c) {
    Expect.fail("should not be called");
    return 0;
  }

  AsyncExpect.value(null, create([]).fold(null, combine));
  AsyncExpect.value(777, create([]).fold(777, combine));
  AsyncExpect.value("", create([]).fold("", combine));
}
