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