dart-sdk/tests/corelib/symbol_arbitrary_string_test.dart
Erik Ernst e4647026a1 Correct symbol_reserved_word_test.dart, splitting it into two tests.
Also add one new test symbol_arbitrary_string_test.dart.

Change-Id: I12b07218a098a37b83d99525d2be3ec356ef1fd1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/195503
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2021-06-01 15:55:03 +00:00

112 lines
4.2 KiB
Dart

// 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 `dartfmt` in
// a few locations, to verify that `"""...""""z"` can be parsed as two
// consecutive strings, `dartfmt` 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")));
}