mirror of
https://github.com/dart-lang/sdk
synced 2024-10-04 03:11:08 +00:00
ffab960f19
Change-Id: I8d3c92a4723f74b40b8c0c968340d1dd1175d748 Reviewed-on: https://dart-review.googlesource.com/34061 Reviewed-by: Peter von der Ahé <ahe@google.com>
92 lines
2 KiB
Dart
92 lines
2 KiB
Dart
// 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 "package:expect/expect.dart";
|
|
|
|
main() {
|
|
var o1 = new Object();
|
|
var o2 = new Object();
|
|
var o3 = new Object();
|
|
var c1 = new C(0);
|
|
var c2 = new C(0);
|
|
|
|
// Successful checks.
|
|
Expect.notIdentical(o1, o2, "msg");
|
|
|
|
Expect.equals(c1, c2);
|
|
Expect.notIdentical(c1, c2, "msg");
|
|
|
|
Expect.notIdentical([1], [1], "msg");
|
|
|
|
Expect.allDistinct([], "msg");
|
|
Expect.allDistinct([o1], "msg");
|
|
Expect.allDistinct([
|
|
o1,
|
|
o2,
|
|
c1,
|
|
c2,
|
|
[1]
|
|
], "msg");
|
|
Expect.allDistinct(new List.generate(100, (_) => new Object()));
|
|
|
|
fails((msg) {
|
|
Expect.notIdentical(o1, o1, msg);
|
|
});
|
|
|
|
fails((msg) {
|
|
var list = [1];
|
|
Expect.notIdentical(list, list, msg);
|
|
});
|
|
|
|
fails((msg) {
|
|
Expect.allDistinct([o1, o1], msg);
|
|
});
|
|
fails((msg) {
|
|
Expect.allDistinct([o1, o1, o1, o1], msg);
|
|
});
|
|
fails((msg) {
|
|
Expect.allDistinct([o1, o1, o2, o3], msg);
|
|
});
|
|
fails((msg) {
|
|
Expect.allDistinct([o1, o2, o1, o3], msg);
|
|
});
|
|
fails((msg) {
|
|
Expect.allDistinct([o1, o2, o3, o1], msg);
|
|
});
|
|
fails((msg) {
|
|
Expect.allDistinct([o1, o2, o2, o3], msg);
|
|
});
|
|
fails((msg) {
|
|
Expect.allDistinct([o1, o2, o3, o2], msg);
|
|
});
|
|
fails((msg) {
|
|
Expect.allDistinct([o1, o2, o3, o3], msg);
|
|
});
|
|
fails((msg) {
|
|
var list = new List.generate(100, (_) => new Object());
|
|
list.add(list[0]);
|
|
Expect.allDistinct(list, msg);
|
|
});
|
|
}
|
|
|
|
class C {
|
|
final x;
|
|
const C(this.x);
|
|
int get hashCode => x.hashCode;
|
|
bool operator ==(Object other) => other is C && x == other.x;
|
|
}
|
|
|
|
int _ctr = 0;
|
|
fails(test(msg)) {
|
|
var msg = "__#${_ctr++}#__"; // "Unique" name.
|
|
try {
|
|
test(msg);
|
|
throw "Did not throw!";
|
|
} on ExpectException catch (e) {
|
|
if (e.message.indexOf(msg) < 0) {
|
|
throw "Failure did not contain message: \"$msg\" not in ${e.message}";
|
|
}
|
|
}
|
|
}
|