test262/test/suite/sputnik/Unicode/Unicode_320/S15.5.4.18_A1.js

58 lines
14 KiB
JavaScript
Raw Normal View History

// Copyright 2009 the Sputnik authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/**
* @name: S15.5.4.18_A1;
* @section: 15.5.4.18;
* @assertion: The characters in UnicodeData.txt, but not in SpecialCasings.txt are converted one by one;
* @description: Complex test;
*/
//CHECK
UpperCase = [[0x0061, 0x0041], [0x0062, 0x0042], [0x0063, 0x0043], [0x0064, 0x0044], [0x0065, 0x0045], [0x0066, 0x0046], [0x0067, 0x0047], [0x0068, 0x0048], [0x006A, 0x004A], [0x006B, 0x004B], [0x006C, 0x004C], [0x006D, 0x004D], [0x006E, 0x004E], [0x006F, 0x004F], [0x0070, 0x0050], [0x0071, 0x0051], [0x0072, 0x0052], [0x0073, 0x0053], [0x0074, 0x0054], [0x0075, 0x0055], [0x0076, 0x0056], [0x0077, 0x0057], [0x0078, 0x0058], [0x0079, 0x0059], [0x007A, 0x005A], [0x00B5, 0x039C], [0x00E0, 0x00C0], [0x00E1, 0x00C1], [0x00E2, 0x00C2], [0x00E3, 0x00C3], [0x00E4, 0x00C4], [0x00E5, 0x00C5], [0x00E6, 0x00C6], [0x00E7, 0x00C7], [0x00E8, 0x00C8], [0x00E9, 0x00C9], [0x00EA, 0x00CA], [0x00EB, 0x00CB], [0x00EC, 0x00CC], [0x00ED, 0x00CD], [0x00EE, 0x00CE], [0x00EF, 0x00CF], [0x00F0, 0x00D0], [0x00F1, 0x00D1], [0x00F2, 0x00D2], [0x00F3, 0x00D3], [0x00F4, 0x00D4], [0x00F5, 0x00D5], [0x00F6, 0x00D6], [0x00F8, 0x00D8], [0x00F9, 0x00D9], [0x00FA, 0x00DA], [0x00FB, 0x00DB], [0x00FC, 0x00DC], [0x00FD, 0x00DD], [0x00FE, 0x00DE], [0x00FF, 0x0178], [0x0101, 0x0100], [0x0103, 0x0102], [0x0105, 0x0104], [0x0107, 0x0106], [0x0109, 0x0108], [0x010B, 0x010A], [0x010D, 0x010C], [0x010F, 0x010E], [0x0111, 0x0110], [0x0113, 0x0112], [0x0115, 0x0114], [0x0117, 0x0116], [0x0119, 0x0118], [0x011B, 0x011A], [0x011D, 0x011C], [0x011F, 0x011E], [0x0121, 0x0120], [0x0123, 0x0122], [0x0125, 0x0124], [0x0127, 0x0126], [0x0129, 0x0128], [0x012B, 0x012A], [0x012D, 0x012C], [0x012F, 0x012E], [0x0131, 0x0049], [0x0133, 0x0132], [0x0135, 0x0134], [0x0137, 0x0136], [0x013A, 0x0139], [0x013C, 0x013B], [0x013E, 0x013D], [0x0140, 0x013F], [0x0142, 0x0141], [0x0144, 0x0143], [0x0146, 0x0145], [0x0148, 0x0147], [0x014B, 0x014A], [0x014D, 0x014C], [0x014F, 0x014E], [0x0151, 0x0150], [0x0153, 0x0152], [0x0155, 0x0154], [0x0157, 0x0156], [0x0159, 0x0158], [0x015B, 0x015A], [0x015D, 0x015C], [0x015F, 0x015E], [0x0161, 0x0160], [0x0163, 0x0162], [0x0165, 0x0164], [0x0167, 0x0166], [0x0169, 0x0168], [0x016B, 0x016A], [0x016D, 0x016C], [0x016F, 0x016E], [0x0171, 0x0170], [0x0173, 0x0172], [0x0175, 0x0174], [0x0177, 0x0176], [0x017A, 0x0179], [0x017C, 0x017B], [0x017E, 0x017D], [0x017F, 0x0053], [0x0183, 0x0182], [0x0185, 0x0184], [0x0188, 0x0187], [0x018C, 0x018B], [0x0192, 0x0191], [0x0195, 0x01F6], [0x0199, 0x0198], [0x019E, 0x0220], [0x01A1, 0x01A0], [0x01A3, 0x01A2], [0x01A5, 0x01A4], [0x01A8, 0x01A7], [0x01AD, 0x01AC], [0x01B0, 0x01AF], [0x01B4, 0x01B3], [0x01B6, 0x01B5], [0x01B9, 0x01B8], [0x01BD, 0x01BC], [0x01BF, 0x01F7], [0x01C5, 0x01C4], [0x01C6, 0x01C4], [0x01C8, 0x01C7], [0x01C9, 0x01C7], [0x01CB, 0x01CA], [0x01CC, 0x01CA], [0x01CE, 0x01CD], [0x01D0, 0x01CF], [0x01D2, 0x01D1], [0x01D4, 0x01D3], [0x01D6, 0x01D5], [0x01D8, 0x01D7], [0x01DA, 0x01D9], [0x01DC, 0x01DB], [0x01DD, 0x018E], [0x01DF, 0x01DE], [0x01E1, 0x01E0], [0x01E3, 0x01E2], [0x01E5, 0x01E4], [0x01E7, 0x01E6], [0x01E9, 0x01E8], [0x01EB, 0x01EA], [0x01ED, 0x01EC], [0x01EF, 0x01EE], [0x01F2, 0x01F1], [0x01F3, 0x01F1], [0x01F5, 0x01F4], [0x01F9, 0x01F8], [0x01FB, 0x01FA], [0x01FD, 0x01FC], [0x01FF, 0x01FE], [0x0201, 0x0200], [0x0203, 0x0202], [0x0205, 0x0204], [0x0207, 0x0206], [0x0209, 0x0208], [0x020B, 0x020A], [0x020D, 0x020C], [0x020F, 0x020E], [0x0211, 0x0210], [0x0213, 0x0212], [0x0215, 0x0214], [0x0217, 0x0216], [0x0219, 0x0218], [0x021B, 0x021A], [0x021D, 0x021C], [0x021F, 0x021E], [0x0223, 0x0222], [0x0225, 0x0224], [0x0227, 0x0226], [0x0229, 0x0228], [0x022B, 0x022A], [0x022D, 0x022C], [0x022F, 0x022E], [0x0231, 0x0230], [0x0233, 0x0232], [0x0253, 0x0181], [0x0254, 0x0186], [0x0256, 0x0189], [0x0257, 0x018A], [0x0259, 0x018F], [0x025B, 0x0190], [0x0260, 0x0193], [0x0263, 0x0194], [0x0268, 0x0197], [0x0269, 0x0196], [0x026F, 0x019C], [0x0272, 0x019D], [0x0275, 0x019F], [0x0280, 0x01A6], [0x0283, 0x01A9], [0x0288, 0x01AE], [0x028A, 0x01B1], [0x028B, 0x01B2], [0x0292, 0x01B7], [0x0345, 0x0399], [0x03AC, 0x0386], [0x03AD, 0x0388], [0x03AE, 0x0389], [0x03AF, 0x038A], [0x03B1, 0x0391], [0x03B2, 0x0392], [0x03B3, 0x0393], [0x03B4, 0x0394], [0x03B5, 0x0395], [0x03B6, 0x0396], [0x03B7, 0x0397], [0x03B8, 0x039
errorCount = 0;
count = 0;
for (index = 0; index < UpperCase.length; index++) {
var capitalI = UpperCase[index][0];
var capitalS = String.fromCharCode(capitalI);
var smallI = UpperCase[index][1];
var smallS = String.fromCharCode(smallI);
if (capitalS.toUpperCase() !== smallS) {
var hexC = decimalToHexString(capitalI);
var hexS = decimalToHexString(smallI);
$ERROR('#' + hexC + '->' + hexS + ' ');
errorCount++;
}
count++;
}
if (errorCount > 0) {
$ERROR('Total error: ' + errorCount + ' bad Unicode character in ' + count);
}
function decimalToHexString(n) {
n = Number(n);
var h = "";
for (var i = 3; i >= 0; i--) {
if (n >= Math.pow(16, i)) {
var t = Math.floor(n / Math.pow(16, i));
n -= t * Math.pow(16, i);
if ( t >= 10 ) {
if ( t == 10 ) { h += "A"; }
if ( t == 11 ) { h += "B"; }
if ( t == 12 ) { h += "C"; }
if ( t == 13 ) { h += "D"; }
if ( t == 14 ) { h += "E"; }
if ( t == 15 ) { h += "F"; }
} else {
h += String(t);
}
} else {
h += "0";
}
}
return h;
}