|  | // 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()); | 
|  | } | 
|  | } |