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