blob: fcc144bcc341a9279d811401c6d526fdc7dad3df [file] [log] [blame]
// Copyright (c) 2011, 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.
/// @assertion 15.10.2.10: The production CharacterEscape ::
/// UnicodeEscapeSequence evaluates by evaluating the character value of the
/// UnicodeEscapeSequence (see 7.8.4) and returning its character result.<br/>
/// HexEscapeSequence :: u HexDigit HexDigit HexDigit HexDigit
/// @description Checks the assertion using characters from the English and
/// Russian alphabets.
/// @3rdparty sputnik-v1:S15.10.2.10_A4.1_T2.js, S15.10.2.10_A4.1_T3.js
/// @author rodionov
import "../../../../Utils/expect.dart";
main() {
Map<String, String> codes = const {
"0041" : "A", "0042" : "B", "0043" : "C", "0044" : "D", "0045" : "E",
"0046" : "F", "0047" : "G", "0048" : "H", "0049" : "I", "004A" : "J",
"004B" : "K", "004C" : "L", "004D" : "M", "004E" : "N", "004F" : "O",
"0050" : "P", "0051" : "Q", "0052" : "R", "0053" : "S", "0054" : "T",
"0055" : "U", "0056" : "V", "0057" : "W", "0058" : "X", "0059" : "Y",
"005A" : "Z",
"0061" : "a", "0062" : "b", "0063" : "c", "0064" : "d", "0065" : "e",
"0066" : "f", "0067" : "g", "0068" : "h", "0069" : "i", "006A" : "j",
"006B" : "k", "006C" : "l", "006D" : "m", "006E" : "n", "006F" : "o",
"0070" : "p", "0071" : "q", "0072" : "r", "0073" : "s", "0074" : "t",
"0075" : "u", "0076" : "v", "0077" : "w", "0078" : "x", "0079" : "y",
"007A" : "z",
"0410" : "\u0410", "0411" : "\u0411", "0412" : "\u0412", "0413" : "\u0413",
"0414" : "\u0414", "0415" : "\u0415", "0416" : "\u0416", "0417" : "\u0417",
"0418" : "\u0418", "0419" : "\u0419", "041A" : "\u041A", "041B" : "\u041B",
"041C" : "\u041C", "041D" : "\u041D", "041E" : "\u041E", "041F" : "\u041F",
"0420" : "\u0420", "0421" : "\u0421", "0422" : "\u0422", "0423" : "\u0423",
"0424" : "\u0424", "0425" : "\u0425", "0426" : "\u0426", "0427" : "\u0427",
"0428" : "\u0428", "0429" : "\u0429", "042A" : "\u042A", "042B" : "\u042B",
"042C" : "\u042C", "042D" : "\u042D", "042E" : "\u042E", "042F" : "\u042F",
"0401" : "\u0401",
"0430" : "\u0430", "0431" : "\u0431", "0432" : "\u0432", "0433" : "\u0433",
"0434" : "\u0434", "0435" : "\u0435", "0436" : "\u0436", "0437" : "\u0437",
"0438" : "\u0438", "0439" : "\u0439", "043a" : "\u043a", "043b" : "\u043b",
"043c" : "\u043c", "043d" : "\u043d", "043e" : "\u043e", "043f" : "\u043f",
"0440" : "\u0440", "0441" : "\u0441", "0442" : "\u0442", "0443" : "\u0443",
"0444" : "\u0444", "0445" : "\u0445", "0446" : "\u0446", "0447" : "\u0447",
"0448" : "\u0448", "0449" : "\u0449", "044a" : "\u044a", "044b" : "\u044b",
"044c" : "\u044c", "044d" : "\u044d", "044e" : "\u044e", "044f" : "\u044f",
"0451" : "\u0451"
};
StringBuffer errStr = new StringBuffer();
codes.forEach((String key, String value) {
RegExp re = new RegExp("\\u$key");
if(null == re.firstMatch(value)) {
errStr.write("\"\\u${key}\" does not match \"${value}\"\n");
}
});
if(errStr.length > 0) {
Expect.fail(errStr.toString());
}
}