|  | // Copyright (c) 2018, 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:collection'; | 
|  |  | 
|  | import 'package:expect/expect.dart'; | 
|  |  | 
|  | main() { | 
|  | runTests(<K, V>(entries) => Map<K, V>.fromEntries(entries)); | 
|  | runTests(<K, V>(entries) => HashMap<K, V>.fromEntries(entries)); | 
|  | runTests(<K, V>(entries) => LinkedHashMap<K, V>.fromEntries(entries)); | 
|  | } | 
|  |  | 
|  | void runTests(Map<K, V> Function<K, V>(Iterable<MapEntry<K, V>>) ctor) { | 
|  | fromEntriesTest(ctor); | 
|  | emptyIterableTest(ctor); | 
|  | equalElementsTest(ctor); | 
|  | } | 
|  |  | 
|  | void fromEntriesTest(Map<K, V> Function<K, V>(Iterable<MapEntry<K, V>>) ctor) { | 
|  | var map = ctor([MapEntry(1, "one"), MapEntry(2, "two")]); | 
|  | Expect.equals(2, map.length); | 
|  | Expect.equals(2, map.keys.length); | 
|  | Expect.equals(2, map.values.length); | 
|  | Expect.equals("one", map[1]); | 
|  | Expect.equals("two", map[2]); | 
|  | } | 
|  |  | 
|  | void emptyIterableTest( | 
|  | Map<K, V> Function<K, V>(Iterable<MapEntry<K, V>>) ctor) { | 
|  | var map = ctor([]); | 
|  | Expect.equals(0, map.length); | 
|  | Expect.equals(0, map.keys.length); | 
|  | Expect.equals(0, map.values.length); | 
|  | } | 
|  |  | 
|  | void equalElementsTest( | 
|  | Map<K, V> Function<K, V>(Iterable<MapEntry<K, V>>) ctor) { | 
|  | var map = | 
|  | ctor([MapEntry(1, "one"), MapEntry(2, "two"), MapEntry(2, "other")]); | 
|  | Expect.equals(2, map.length); | 
|  | Expect.equals(2, map.keys.length); | 
|  | Expect.equals(2, map.values.length); | 
|  | Expect.equals("one", map[1]); | 
|  | Expect.equals("other", map[2]); | 
|  | } |