blob: bfc8fef647686ac2ac1ccdf6941bb410f6ee7eb5 [file] [log] [blame]
// Copyright (c) 2012, 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.
/**
* Provide a trivial test for identity based hashed collections, which we
* provide here until an implementation is available in the regular libraries.
*/
// TODO(alanknight): Remove once identity-hashed collections are available.
// Issue 4161.
library identity_set_test;
import 'package:unittest/unittest.dart';
import 'package:serialization/src/serialization_helpers.dart';
class Foo {
var x;
Foo(this.x);
int get hashCode => x.hashCode;
bool operator ==(a) => a.x == x;
}
main() {
test('basic', () {
var one = new Foo(3);
var two = new Foo(3);
var map = new Map();
var identityMap = new IdentityMap();
map[one] = one;
map[two] = two;
identityMap[one] = one;
identityMap[two] = two;
expect(map.length, 1);
expect(identityMap.length, 2);
for (var each in identityMap.values) {
expect(each, one);
}
});
test('uniquing primitives', () {
var map = new IdentityMap();
var one = 'one';
var two = new String.fromCharCodes(one.codeUnits);
map[one] = 1;
expect(map[two], 1);
expect(map[one], 1);
});
}