blob: c243786988fcbd06526f52bc13433b019accbc5f [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.12: The production CharacterClassEscape :: W evaluates by
/// returning the set of all characters not included in the set returned by
/// CharacterClassEscape :: w.
/// @description Checks that \W indeed matches all but the specified characters
/// (tested vs all characters from the basic plane)
/// @3rdparty sputnik-v1:S15.10.2.12_A4_T1.js-S15.10.2.12_A4_T5.js
/// @author rodionov
import "../../../../Utils/expect.dart";
main() {
RegExp re = new RegExp("\\W");
for (int alpha = 0x0000; alpha <= 0xFFFF; alpha++) {
String ch = new String.fromCharCodes([alpha]);
if((alpha >= 0x0030 && alpha <= 0x0039) // the 10 digits
|| (alpha >= 0x0041 && alpha <= 0x005A) // the uppercase english letters
|| (alpha >= 0x0061 && alpha <= 0x007A) // the lowercase english letters
|| (alpha == 0x005F)) { // the underscore
Expect.isNull(re.firstMatch(ch), "\\W ~ '$ch'");
} else {
if(null == re.firstMatch(ch)) {
Expect.fail("\\W !~ '$ch'");
}
}
}
}