Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import "dart:mirrors"; | 5 import "dart:_internal" show LRUMap; |
| 6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; |
| 7 | 7 |
| 8 newLRUMapWithShift(int shift) { | |
| 9 var lib = currentMirrorSystem().libraries[Uri.parse("dart:_internal")]; | |
| 10 var cls = lib.declarations[#LRUMap]; | |
| 11 return cls.newInstance(#withShift, [shift]).reflectee; | |
| 12 } | |
| 13 | |
| 14 main() { | 8 main() { |
|
Johnni Winther
2014/06/23 08:38:30
If you abstract the creation of a LRUMap you could
| |
| 15 Expect.throws(() => newLRUMapWithShift(0), (e) => e is Exception); | 9 Expect.throws(() => new LRUMap.withShift(0), (e) => e is Exception); |
| 16 | 10 |
| 17 for (int shift = 1; shift < 5; shift++) { | 11 for (int shift = 1; shift < 5; shift++) { |
| 18 var map = newLRUMapWithShift(shift); | 12 var map = new LRUMap.withShift(shift); |
| 19 var capacity = (1 << shift) * 3 ~/ 4; | 13 var capacity = (1 << shift) * 3 ~/ 4; |
| 20 for (int value = 0; value < 100; value++) { | 14 for (int value = 0; value < 100; value++) { |
| 21 var key = "$value"; | 15 var key = "$value"; |
| 22 map[key] = value; | 16 map[key] = value; |
| 23 Expect.equals(value, map[key]); | 17 Expect.equals(value, map[key]); |
| 24 } | 18 } |
| 25 for (int value = 0; value < 100 - capacity - 1; value++) { | 19 for (int value = 0; value < 100 - capacity - 1; value++) { |
| 26 var key = "$value"; | 20 var key = "$value"; |
| 27 Expect.equals(null, map[key]); | 21 Expect.equals(null, map[key]); |
| 28 } | 22 } |
| 29 for (int value = 100 - capacity; value < 100; value++) { | 23 for (int value = 100 - capacity; value < 100; value++) { |
| 30 var key = "$value"; | 24 var key = "$value"; |
| 31 Expect.equals(value, map[key]); | 25 Expect.equals(value, map[key]); |
| 32 } | 26 } |
| 33 } | 27 } |
| 34 } | 28 } |
| OLD | NEW |