// 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  abstract void forEach(void f(K key, V value))
 * Applies f to each {key, value} pair of the map.
 * @description Nested forEach.
 * @author msyabro
 */
library forEach_A01_t08;

import "../../../Utils/expect.dart";

test(Map create([Map content])) {
  Map map = create();
  
  map["1"] = 3;
  map["2"] = 5;
  
  int count = 0;
  map.forEach((var key1, var value1) {
    map.forEach((var key2, var value2) {
      map.forEach((var key3, var value3) {count++;});
    });
  });
  Expect.isTrue(count == 8);
}
