Chromium Code Reviews| Index: tests/language/identical_closure_test.dart |
| diff --git a/tests/language/identical_closure_test.dart b/tests/language/identical_closure_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..80c30a27844b9e9cb87a2f4c2dbf9247b18ccb52 |
| --- /dev/null |
| +++ b/tests/language/identical_closure_test.dart |
| @@ -0,0 +1,47 @@ |
| +// 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. |
| + |
| +var myIdentical = identical; |
| + |
| +class Point { |
| + num x, y; |
| + Point(this.x, this.y); |
| +} |
| + |
| +main() { |
| + // Smi. |
| + Expect.isTrue(myIdentical(42, 42)); |
| + Expect.isFalse(myIdentical(42, 41)); |
| + |
| + // Double. |
| + Expect.isTrue(myIdentical(42.0, 42.0)); |
| + Expect.isFalse(myIdentical(42.0, 41.0)); |
| + |
| + // Mint. |
| + Expect.isTrue(myIdentical(2.pow(45),2.pow(45))); |
| + Expect.isFalse(myIdentical(2.pow(45),2.pow(45)+1)); |
| + |
| + // Bigint. |
| + Expect.isTrue(myIdentical(-1*2.pow(76),-1*2.pow(76))); |
| + Expect.isFalse(myIdentical(2.pow(76),2.pow(76)+1)); |
| + |
| + // Different types. |
| + Expect.isFalse(myIdentical(42, 42.0)); |
| + Expect.isFalse(myIdentical("hello", 41)); |
| + |
| + // Points. |
| + var p = new Point(1,1); |
| + var q = new Point(1,1); |
| + Expect.isFalse(myIdentical(p, q)); |
| + |
| + // Strings. |
| + var a = "hello"; |
| + var b = "hello"; |
| + // Identical strings are coalesced into single instances. |
| + Expect.isTrue(myIdentical(a, b)); |
| + |
| + // Null handling. |
| + Expect.isFalse(myIdentical(42, null)); |
|
srdjan
2012/12/17 22:10:19
Add check:
Expect.isTrue(myIdentical(double.NAN,
Max Heinritz (Google)
2012/12/17 23:27:57
Done.
|
| + Expect.isTrue(myIdentical(null, null)); |
| +} |