blob: 5cc4a37713cb63929019c886d9160cd9d0fb17f0 [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 :: HexEscapeSequence
* evaluates by evaluating the character value of the
* HexEscapeSequence (see 7.8.4) and returning its character result.<br/>
* HexEscapeSequence :: x HexDigit HexDigit
* @description Checks the assertion using a matching \u-encoded character in
* the test string.
* @3rdparty sputnik-v1:S15.10.2.10_A3.1_T1.js, S15.10.2.10_A3.1_T2.js
* @author rodionov
* @reviewer iefremov
* @reviewer msyabro
* @needsreview
*/
import "../../../../Utils/expect.dart";
main() {
Map<String, String> alphabet = const {
"41" : "A", "42" : "B", "43" : "C", "44" : "D", "45" : "E", "46" : "F", "47" : "G",
"48" : "H", "49" : "I", "4A" : "J", "4B" : "K", "4C" : "L", "4D" : "M", "4E" : "N",
"4F" : "O", "50" : "P", "51" : "Q", "52" : "R", "53" : "S", "54" : "T", "55" : "U",
"56" : "V", "57" : "W", "58" : "X", "59" : "Y", "5A" : "Z",
"61" : "a", "62" : "b", "63" : "c", "64" : "d", "65" : "e", "66" : "f", "67" : "g",
"68" : "h", "69" : "i", "6A" : "j", "6B" : "k", "6C" : "l", "6D" : "m", "6E" : "n",
"6F" : "o", "70" : "p", "71" : "q", "72" : "r", "73" : "s", "74" : "t", "75" : "u",
"76" : "v", "77" : "w", "78" : "x", "79" : "y", "7A" : "z",
"00" : "\u0000", "01" : "\u0001", "0A" : "\u000A", "FF" : "\u00FF"
};
StringBuffer errStr = new StringBuffer();
alphabet.forEach((String key, String value) {
RegExp re = new RegExp("\\x$key");
if(null == re.firstMatch(value)) {
errStr.write("\"\\x${key}\" does not match \"${value}\"\n");
}
});
if(errStr.length > 0) {
Expect.fail(errStr.toString());
}
}