// Copyright (c) 2017, 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 @assertion LinkedHashMap<K, V> abstract class
/// implements HashMap<K, V>
/// The map allows [null] as a key.
/// @description Checks that [null] key works as expected.
/// @author iarkh@unipro.ru

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

main() {
  LinkedHashMap map = new LinkedHashMap();

  map[null] = 1;
  Expect.equals(1, map[null]);

  for (int i = 0; i < 100; i++) {
    map[i] = i;
  }
  Expect.equals(1, map[null]);

  map[null] = "testme";
  Expect.equals("testme", map[null]);

  map.remove(null);
  Expect.equals(null, map[null]);
}
