OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // Test that different representations of the same string are all equal. | 5 // Test that different representations of the same string are all equal. |
6 | 6 |
7 import "dart:convert"; | 7 import "dart:convert"; |
8 | 8 |
9 import "package:expect/expect.dart"; | 9 import "package:expect/expect.dart"; |
10 | 10 |
11 main() { | 11 main() { |
12 var base = "\u{10412}"; | 12 var base = "\u{10412}"; |
13 var strings = [ | 13 var strings = [ |
14 "\u{10412}", | 14 "\u{10412}", |
15 "𐐒", | 15 "𐐒", |
16 new String.fromCharCodes([0xd801, 0xdc12]), | 16 new String.fromCharCodes([0xd801, 0xdc12]), |
17 base[0] + base[1], | 17 base[0] + base[1], |
18 "$base", | 18 "$base", |
19 "${base[0]}${base[1]}", | 19 "${base[0]}${base[1]}", |
20 "${base[0]}${base.substring(1)}", | 20 "${base[0]}${base.substring(1)}", |
21 new String.fromCharCodes([0x10412]), | 21 new String.fromCharCodes([0x10412]), |
22 ("a" + base).substring(1), | 22 ("a" + base).substring(1), |
23 (new StringBuffer()..writeCharCode(0xd801) | 23 (new StringBuffer()..writeCharCode(0xd801)..writeCharCode(0xdc12)) |
24 ..writeCharCode(0xdc12)).toString(), | 24 .toString(), |
25 (new StringBuffer()..writeCharCode(0x10412)).toString(), | 25 (new StringBuffer()..writeCharCode(0x10412)).toString(), |
26 JSON.decode('"\u{10412}"'), | 26 JSON.decode('"\u{10412}"'), |
27 (JSON.decode('{"\u{10412}":[]}') as Map).keys.first | 27 (JSON.decode('{"\u{10412}":[]}') as Map).keys.first |
28 ]; | 28 ]; |
29 for (String string in strings) { | 29 for (String string in strings) { |
30 Expect.equals(base.length, string.length); | 30 Expect.equals(base.length, string.length); |
31 Expect.equals(base, string); | 31 Expect.equals(base, string); |
32 Expect.equals(base.hashCode, string.hashCode); | 32 Expect.equals(base.hashCode, string.hashCode); |
33 Expect.listEquals(base.codeUnits.toList(), string.codeUnits.toList()); | 33 Expect.listEquals(base.codeUnits.toList(), string.codeUnits.toList()); |
34 } | 34 } |
35 } | 35 } |
OLD | NEW |