| // 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 Map<K, V> abstract class |
| /// An unordered collection of key-value pairs, from which you retrieve a value |
| /// by using its associated key. |
| /// Each key must be unique. Null values are supported, but null keys are not. |
| /// @description Checks that the map works correctly with hashcode collisions. |
| /// @author msyabro |
| |
| import "../../../Utils/expect.dart"; |
| |
| class A { |
| String s; |
| A(this.s) {} |
| int get hashCode { |
| return s.length; |
| } |
| } |
| |
| main() { |
| Map<A, Object> map = new Map<A, Object>(); |
| A a1 = new A("aa"); |
| A a2 = new A("bb"); |
| |
| map[a1] = 1; |
| map[a2] = 2; |
| Expect.isTrue(map.length == 2); |
| Expect.isTrue(map.containsKey(a1)); |
| Expect.isTrue(map.containsKey(a2)); |
| Expect.isTrue(!map.containsKey(new A("99"))); |
| } |