| // Copyright (c) 2021, 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. |
| |
| // Note that this library violates the formatting provided by `dart format` in |
| // a few locations, to verify that `"""...""""z"` can be parsed as two |
| // consecutive strings, `dart format` will insert whitespace before `"z"`. |
| |
| import 'package:expect/expect.dart'; |
| |
| main() { |
| const string = "X"; |
| const integer = 42; |
| const boolean = true; |
| const none = null; |
| |
| var s00 = new Symbol(''); |
| var s01 = new Symbol(r'@!#$%^&*(()\\|_-]['); |
| var s02 = new Symbol('\x00'); |
| var s03 = new Symbol('a'); |
| var s04 = new Symbol('ab'); |
| var s05 = new Symbol('\x80'); |
| var s06 = new Symbol('\xff'); |
| var s07 = new Symbol('\u2028'); |
| var s08 = new Symbol('abcdef\u2028'); |
| var s09 = new Symbol('\u{10002}'); |
| var s10 = new Symbol('\ud800'); |
| var s11 = new Symbol('\udfff'); |
| var s12 = new Symbol('\u{10FFFF}'); |
| var s13 = new Symbol('abcdef\u{10002}'); |
| var s14 = new Symbol('πΊπΈ π π©π°'); |
| var s15 = new Symbol('\udc00'); |
| |
| // The multi-line string below is "abcd\ne:X42truenullz". |
| var s16 = new Symbol(""" |
| a${"b" // line break |
| "c"}d |
| e:$string$integer$boolean$none""""z"); |
| |
| Expect.isTrue(s00 == new Symbol('')); |
| Expect.isTrue(s01 == new Symbol(r'@!#$%^&*(()\\|_-][')); |
| Expect.isTrue(s02 == new Symbol('\x00')); |
| Expect.isTrue(s03 == new Symbol('a')); |
| Expect.isTrue(s04 == new Symbol('ab')); |
| Expect.isTrue(s05 == new Symbol('\x80')); |
| Expect.isTrue(s06 == new Symbol('\xff')); |
| Expect.isTrue(s07 == new Symbol('\u2028')); |
| Expect.isTrue(s08 == new Symbol('abcdef\u2028')); |
| Expect.isTrue(s09 == new Symbol('\u{10002}')); |
| Expect.isTrue(s10 == new Symbol('\ud800')); |
| Expect.isTrue(s11 == new Symbol('\udfff')); |
| Expect.isTrue(s12 == new Symbol('\u{10FFFF}')); |
| Expect.isTrue(s13 == new Symbol('abcdef\u{10002}')); |
| Expect.isTrue(s14 == new Symbol('πΊπΈ π π©π°')); |
| Expect.isTrue(s15 == new Symbol('\udc00')); |
| |
| // The multi-line string below is "abcd\ne:X42truenullz". |
| Expect.isTrue(s16 == |
| new Symbol(""" |
| a${"b" // line break |
| "c"}d |
| e:$string$integer$boolean$none""""z")); |
| |
| const s00c = const Symbol(''); |
| const s01c = const Symbol(r'@!#$%^&*(()\\|_-]['); |
| const s02c = const Symbol('\x00'); |
| const s03c = const Symbol('a'); |
| const s04c = const Symbol('ab'); |
| const s05c = const Symbol('\x80'); |
| const s06c = const Symbol('\xff'); |
| const s07c = const Symbol('\u2028'); |
| const s08c = const Symbol('abcdef\u2028'); |
| const s09c = const Symbol('\u{10002}'); |
| const s10c = const Symbol('\ud800'); |
| const s11c = const Symbol('\udfff'); |
| const s12c = const Symbol('\u{10FFFF}'); |
| const s13c = const Symbol('abcdef\u{10002}'); |
| const s14c = const Symbol('πΊπΈ π π©π°'); |
| const s15c = const Symbol('\udc00'); |
| |
| // The multi-line string below is "abcd\ne:X42truenullz". |
| const s16c = const Symbol(""" |
| a${"b" // line break |
| "c"}d |
| e:$string$integer$boolean$none""""z"); |
| |
| Expect.isTrue(identical(s00c, const Symbol(''))); |
| Expect.isTrue(identical(s01c, const Symbol(r'@!#$%^&*(()\\|_-]['))); |
| Expect.isTrue(identical(s02c, const Symbol('\x00'))); |
| Expect.isTrue(identical(s03c, const Symbol('a'))); |
| Expect.isTrue(identical(s04c, const Symbol('ab'))); |
| Expect.isTrue(identical(s05c, const Symbol('\x80'))); |
| Expect.isTrue(identical(s06c, const Symbol('\xff'))); |
| Expect.isTrue(identical(s07c, const Symbol('\u2028'))); |
| Expect.isTrue(identical(s08c, const Symbol('abcdef\u2028'))); |
| Expect.isTrue(identical(s09c, const Symbol('\u{10002}'))); |
| Expect.isTrue(identical(s10c, const Symbol('\ud800'))); |
| Expect.isTrue(identical(s11c, const Symbol('\udfff'))); |
| Expect.isTrue(identical(s12c, const Symbol('\u{10FFFF}'))); |
| Expect.isTrue(identical(s13c, const Symbol('abcdef\u{10002}'))); |
| Expect.isTrue(identical(s14c, const Symbol('πΊπΈ π π©π°'))); |
| Expect.isTrue(identical(s15c, const Symbol('\udc00'))); |
| |
| // The multi-line string below is "abcd\ne:X42truenullz". |
| Expect.isTrue(identical( |
| s16c, |
| const Symbol(""" |
| a${"b" // line break |
| "c"}d |
| e:$string$integer$boolean$none""""z"))); |
| } |