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