| // Copyright (c) 2013, 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. |
| |
| // @dart = 2.9 |
| |
| // Test that different representations of the same string are all equal. |
| |
| import "dart:convert"; |
| |
| import "package:expect/expect.dart"; |
| |
| main() { |
| var base = "\u{10412}"; |
| var strings = [ |
| "\u{10412}", |
| "𐐒", |
| new String.fromCharCodes([0xd801, 0xdc12]), |
| base[0] + base[1], |
| "$base", |
| "${base[0]}${base[1]}", |
| "${base[0]}${base.substring(1)}", |
| new String.fromCharCodes([0x10412]), |
| ("a" + base).substring(1), |
| (new StringBuffer()..writeCharCode(0xd801)..writeCharCode(0xdc12)) |
| .toString(), |
| (new StringBuffer()..writeCharCode(0x10412)).toString(), |
| json.decode('"\u{10412}"'), |
| (json.decode('{"\u{10412}":[]}') as Map).keys.first |
| ]; |
| for (String string in strings) { |
| Expect.equals(base.length, string.length); |
| Expect.equals(base, string); |
| Expect.equals(base.hashCode, string.hashCode); |
| Expect.listEquals(base.codeUnits.toList(), string.codeUnits.toList()); |
| } |
| } |