Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / tests / ecma / TypeConversion / 9.3.1-1.js
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  * http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  *
15  * The Original Code is Mozilla Communicator client code, released
16  * March 31, 1998.
17  *
18  * The Initial Developer of the Original Code is
19  * Netscape Communications Corporation.
20  * Portions created by the Initial Developer are Copyright (C) 1998
21  * the Initial Developer. All Rights Reserved.
22  *
23  * Contributor(s):
24  *
25  * Alternatively, the contents of this file may be used under the terms of
26  * either the GNU General Public License Version 2 or later (the "GPL"), or
27  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28  * in which case the provisions of the GPL or the LGPL are applicable instead
29  * of those above. If you wish to allow use of your version of this file only
30  * under the terms of either the GPL or the LGPL, and not to allow others to
31  * use your version of this file under the terms of the MPL, indicate your
32  * decision by deleting the provisions above and replace them with the notice
33  * and other provisions required by the GPL or the LGPL. If you do not delete
34  * the provisions above, a recipient may use your version of this file under
35  * the terms of any one of the MPL, the GPL or the LGPL.
36  *
37  * ***** END LICENSE BLOCK ***** */
38
39
40 /**
41    File Name:          9.3.1-1.js
42    ECMA Section:       9.3  Type Conversion:  ToNumber
43    Description:        rules for converting an argument to a number.
44    see 9.3.1 for cases for converting strings to numbers.
45    special cases:
46    undefined           NaN
47    Null                NaN
48    Boolean             1 if true; +0 if false
49    Number              the argument ( no conversion )
50    String              see test 9.3.1
51    Object              see test 9.3-1
52
53
54    This tests ToNumber applied to the string type
55
56    Author:             christine@netscape.com
57    Date:               10 july 1997
58
59 */
60 var SECTION = "9.3.1-1";
61 var VERSION = "ECMA_1";
62 var TITLE   = "ToNumber applied to the String type";
63 var BUGNUMBER="77391";
64
65 startTest();
66
67 writeHeaderToLog( SECTION + " "+ TITLE);
68
69
70 //  StringNumericLiteral:::StrWhiteSpace:::StrWhiteSpaceChar StrWhiteSpace:::
71 //
72 //  Name    Unicode Value   Escape Sequence
73 //  <TAB>   0X0009          \t
74 //  <SP>    0X0020
75 //  <FF>    0X000C          \f
76 //  <VT>    0X000B
77 //  <CR>    0X000D          \r
78 //  <LF>    0X000A          \n
79 new TestCase( SECTION,  "Number('')",           0,      Number("") );
80 new TestCase( SECTION,  "Number(' ')",          0,      Number(" ") );
81 new TestCase( SECTION,  "Number(\\t)",          0,      Number("\t") );
82 new TestCase( SECTION,  "Number(\\n)",          0,      Number("\n") );
83 new TestCase( SECTION,  "Number(\\r)",          0,      Number("\r") );
84 new TestCase( SECTION,  "Number(\\f)",          0,      Number("\f") );
85
86 new TestCase( SECTION,  "Number(String.fromCharCode(0x0009)",   0,  Number(String.fromCharCode(0x0009)) );
87 new TestCase( SECTION,  "Number(String.fromCharCode(0x0020)",   0,  Number(String.fromCharCode(0x0020)) );
88 new TestCase( SECTION,  "Number(String.fromCharCode(0x000C)",   0,  Number(String.fromCharCode(0x000C)) );
89 new TestCase( SECTION,  "Number(String.fromCharCode(0x000B)",   0,  Number(String.fromCharCode(0x000B)) );
90 new TestCase( SECTION,  "Number(String.fromCharCode(0x000D)",   0,  Number(String.fromCharCode(0x000D)) );
91 new TestCase( SECTION,  "Number(String.fromCharCode(0x000A)",   0,  Number(String.fromCharCode(0x000A)) );
92
93 //  a StringNumericLiteral may be preceeded or followed by whitespace and/or
94 //  line terminators
95
96 new TestCase( SECTION,  "Number( '   ' +  999 )",        999,    Number( '   '+999) );
97 new TestCase( SECTION,  "Number( '\\n'  + 999 )",       999,    Number( '\n' +999) );
98 new TestCase( SECTION,  "Number( '\\r'  + 999 )",       999,    Number( '\r' +999) );
99 new TestCase( SECTION,  "Number( '\\t'  + 999 )",       999,    Number( '\t' +999) );
100 new TestCase( SECTION,  "Number( '\\f'  + 999 )",       999,    Number( '\f' +999) );
101
102 new TestCase( SECTION,  "Number( 999 + '   ' )",        999,    Number( 999+'   ') );
103 new TestCase( SECTION,  "Number( 999 + '\\n' )",        999,    Number( 999+'\n' ) );
104 new TestCase( SECTION,  "Number( 999 + '\\r' )",        999,    Number( 999+'\r' ) );
105 new TestCase( SECTION,  "Number( 999 + '\\t' )",        999,    Number( 999+'\t' ) );
106 new TestCase( SECTION,  "Number( 999 + '\\f' )",        999,    Number( 999+'\f' ) );
107
108 new TestCase( SECTION,  "Number( '\\n'  + 999 + '\\n' )",         999,    Number( '\n' +999+'\n' ) );
109 new TestCase( SECTION,  "Number( '\\r'  + 999 + '\\r' )",         999,    Number( '\r' +999+'\r' ) );
110 new TestCase( SECTION,  "Number( '\\t'  + 999 + '\\t' )",         999,    Number( '\t' +999+'\t' ) );
111 new TestCase( SECTION,  "Number( '\\f'  + 999 + '\\f' )",         999,    Number( '\f' +999+'\f' ) );
112
113 new TestCase( SECTION,  "Number( '   ' +  '999' )",     999,    Number( '   '+'999') );
114 new TestCase( SECTION,  "Number( '\\n'  + '999' )",       999,    Number( '\n' +'999') );
115 new TestCase( SECTION,  "Number( '\\r'  + '999' )",       999,    Number( '\r' +'999') );
116 new TestCase( SECTION,  "Number( '\\t'  + '999' )",       999,    Number( '\t' +'999') );
117 new TestCase( SECTION,  "Number( '\\f'  + '999' )",       999,    Number( '\f' +'999') );
118
119 new TestCase( SECTION,  "Number( '999' + '   ' )",        999,    Number( '999'+'   ') );
120 new TestCase( SECTION,  "Number( '999' + '\\n' )",        999,    Number( '999'+'\n' ) );
121 new TestCase( SECTION,  "Number( '999' + '\\r' )",        999,    Number( '999'+'\r' ) );
122 new TestCase( SECTION,  "Number( '999' + '\\t' )",        999,    Number( '999'+'\t' ) );
123 new TestCase( SECTION,  "Number( '999' + '\\f' )",        999,    Number( '999'+'\f' ) );
124
125 new TestCase( SECTION,  "Number( '\\n'  + '999' + '\\n' )",         999,    Number( '\n' +'999'+'\n' ) );
126 new TestCase( SECTION,  "Number( '\\r'  + '999' + '\\r' )",         999,    Number( '\r' +'999'+'\r' ) );
127 new TestCase( SECTION,  "Number( '\\t'  + '999' + '\\t' )",         999,    Number( '\t' +'999'+'\t' ) );
128 new TestCase( SECTION,  "Number( '\\f'  + '999' + '\\f' )",         999,    Number( '\f' +'999'+'\f' ) );
129
130 var ws = ["",
131           " ",
132           "  ",
133           "   "];
134
135 for (var i = 0, sz = ws.length; i < sz; i++)
136 {
137   var start = ws[i];
138   for (var j = 0; j < sz; j++)
139   {
140     var end = ws[j];
141     new TestCase( SECTION,  "Number( '" + start + "' +  '0xA' )",       10,    Number( start+'0xA') );
142
143     new TestCase( SECTION,  "Number( '0xA' + '" + end + "' )",        10,    Number( '0xA'+end) );
144
145     new TestCase( SECTION,  "Number( '" + start + "'  + '0xA' + '" + end + "' )",         10,    Number( start +'0xA'+end ) );
146   }
147 }
148
149 new TestCase( SECTION,  "Number( String.fromCharCode(0x0009) +  '99' )",    99,     Number( String.fromCharCode(0x0009) +  '99' ) );
150 new TestCase( SECTION,  "Number( String.fromCharCode(0x0020) +  '99' )",    99,     Number( String.fromCharCode(0x0020) +  '99' ) );
151 new TestCase( SECTION,  "Number( String.fromCharCode(0x000C) +  '99' )",    99,     Number( String.fromCharCode(0x000C) +  '99' ) );
152 new TestCase( SECTION,  "Number( String.fromCharCode(0x000B) +  '99' )",    99,     Number( String.fromCharCode(0x000B) +  '99' ) );
153 new TestCase( SECTION,  "Number( String.fromCharCode(0x000D) +  '99' )",    99,     Number( String.fromCharCode(0x000D) +  '99' ) );
154 new TestCase( SECTION,  "Number( String.fromCharCode(0x000A) +  '99' )",    99,     Number( String.fromCharCode(0x000A) +  '99' ) );
155
156 new TestCase( SECTION,  "Number( String.fromCharCode(0x0009) +  '99' + String.fromCharCode(0x0009)",    99,     Number( String.fromCharCode(0x0009) +  '99' + String.fromCharCode(0x0009)) );
157 new TestCase( SECTION,  "Number( String.fromCharCode(0x0020) +  '99' + String.fromCharCode(0x0020)",    99,     Number( String.fromCharCode(0x0009) +  '99' + String.fromCharCode(0x0020)) );
158 new TestCase( SECTION,  "Number( String.fromCharCode(0x000C) +  '99' + String.fromCharCode(0x000C)",    99,     Number( String.fromCharCode(0x0009) +  '99' + String.fromCharCode(0x000C)) );
159 new TestCase( SECTION,  "Number( String.fromCharCode(0x000D) +  '99' + String.fromCharCode(0x000D)",    99,     Number( String.fromCharCode(0x0009) +  '99' + String.fromCharCode(0x000D)) );
160 new TestCase( SECTION,  "Number( String.fromCharCode(0x000B) +  '99' + String.fromCharCode(0x000B)",    99,     Number( String.fromCharCode(0x0009) +  '99' + String.fromCharCode(0x000B)) );
161 new TestCase( SECTION,  "Number( String.fromCharCode(0x000A) +  '99' + String.fromCharCode(0x000A)",    99,     Number( String.fromCharCode(0x0009) +  '99' + String.fromCharCode(0x000A)) );
162
163 new TestCase( SECTION,  "Number( '99' + String.fromCharCode(0x0009)",    99,     Number( '99' + String.fromCharCode(0x0009)) );
164 new TestCase( SECTION,  "Number( '99' + String.fromCharCode(0x0020)",    99,     Number( '99' + String.fromCharCode(0x0020)) );
165 new TestCase( SECTION,  "Number( '99' + String.fromCharCode(0x000C)",    99,     Number( '99' + String.fromCharCode(0x000C)) );
166 new TestCase( SECTION,  "Number( '99' + String.fromCharCode(0x000D)",    99,     Number( '99' + String.fromCharCode(0x000D)) );
167 new TestCase( SECTION,  "Number( '99' + String.fromCharCode(0x000B)",    99,     Number( '99' + String.fromCharCode(0x000B)) );
168 new TestCase( SECTION,  "Number( '99' + String.fromCharCode(0x000A)",    99,     Number( '99' + String.fromCharCode(0x000A)) );
169
170 new TestCase( SECTION,  "Number( String.fromCharCode(0x0009) +  99 )",    99,     Number( String.fromCharCode(0x0009) +  99 ) );
171 new TestCase( SECTION,  "Number( String.fromCharCode(0x0020) +  99 )",    99,     Number( String.fromCharCode(0x0020) +  99 ) );
172 new TestCase( SECTION,  "Number( String.fromCharCode(0x000C) +  99 )",    99,     Number( String.fromCharCode(0x000C) +  99 ) );
173 new TestCase( SECTION,  "Number( String.fromCharCode(0x000B) +  99 )",    99,     Number( String.fromCharCode(0x000B) +  99 ) );
174 new TestCase( SECTION,  "Number( String.fromCharCode(0x000D) +  99 )",    99,     Number( String.fromCharCode(0x000D) +  99 ) );
175 new TestCase( SECTION,  "Number( String.fromCharCode(0x000A) +  99 )",    99,     Number( String.fromCharCode(0x000A) +  99 ) );
176
177 new TestCase( SECTION,  "Number( String.fromCharCode(0x0009) +  99 + String.fromCharCode(0x0009)",    99,     Number( String.fromCharCode(0x0009) +  99 + String.fromCharCode(0x0009)) );
178 new TestCase( SECTION,  "Number( String.fromCharCode(0x0020) +  99 + String.fromCharCode(0x0020)",    99,     Number( String.fromCharCode(0x0009) +  99 + String.fromCharCode(0x0020)) );
179 new TestCase( SECTION,  "Number( String.fromCharCode(0x000C) +  99 + String.fromCharCode(0x000C)",    99,     Number( String.fromCharCode(0x0009) +  99 + String.fromCharCode(0x000C)) );
180 new TestCase( SECTION,  "Number( String.fromCharCode(0x000D) +  99 + String.fromCharCode(0x000D)",    99,     Number( String.fromCharCode(0x0009) +  99 + String.fromCharCode(0x000D)) );
181 new TestCase( SECTION,  "Number( String.fromCharCode(0x000B) +  99 + String.fromCharCode(0x000B)",    99,     Number( String.fromCharCode(0x0009) +  99 + String.fromCharCode(0x000B)) );
182 new TestCase( SECTION,  "Number( String.fromCharCode(0x000A) +  99 + String.fromCharCode(0x000A)",    99,     Number( String.fromCharCode(0x0009) +  99 + String.fromCharCode(0x000A)) );
183
184 new TestCase( SECTION,  "Number( 99 + String.fromCharCode(0x0009)",    99,     Number( 99 + String.fromCharCode(0x0009)) );
185 new TestCase( SECTION,  "Number( 99 + String.fromCharCode(0x0020)",    99,     Number( 99 + String.fromCharCode(0x0020)) );
186 new TestCase( SECTION,  "Number( 99 + String.fromCharCode(0x000C)",    99,     Number( 99 + String.fromCharCode(0x000C)) );
187 new TestCase( SECTION,  "Number( 99 + String.fromCharCode(0x000D)",    99,     Number( 99 + String.fromCharCode(0x000D)) );
188 new TestCase( SECTION,  "Number( 99 + String.fromCharCode(0x000B)",    99,     Number( 99 + String.fromCharCode(0x000B)) );
189 new TestCase( SECTION,  "Number( 99 + String.fromCharCode(0x000A)",    99,     Number( 99 + String.fromCharCode(0x000A)) );
190
191
192 // StrNumericLiteral:::StrDecimalLiteral:::Infinity
193
194 new TestCase( SECTION,  "Number('Infinity')",   Math.pow(10,10000),   Number("Infinity") );
195 new TestCase( SECTION,  "Number('-Infinity')", -Math.pow(10,10000),   Number("-Infinity") );
196 new TestCase( SECTION,  "Number('+Infinity')",  Math.pow(10,10000),   Number("+Infinity") );
197
198 // StrNumericLiteral:::   StrDecimalLiteral ::: DecimalDigits . DecimalDigits opt ExponentPart opt
199
200 new TestCase( SECTION,  "Number('0')",          0,          Number("0") );
201 new TestCase( SECTION,  "Number('-0')",         -0,         Number("-0") );
202 new TestCase( SECTION,  "Number('+0')",          0,         Number("+0") );
203
204 new TestCase( SECTION,  "Number('1')",          1,          Number("1") );
205 new TestCase( SECTION,  "Number('-1')",         -1,         Number("-1") );
206 new TestCase( SECTION,  "Number('+1')",          1,         Number("+1") );
207
208 new TestCase( SECTION,  "Number('2')",          2,          Number("2") );
209 new TestCase( SECTION,  "Number('-2')",         -2,         Number("-2") );
210 new TestCase( SECTION,  "Number('+2')",          2,         Number("+2") );
211
212 new TestCase( SECTION,  "Number('3')",          3,          Number("3") );
213 new TestCase( SECTION,  "Number('-3')",         -3,         Number("-3") );
214 new TestCase( SECTION,  "Number('+3')",          3,         Number("+3") );
215
216 new TestCase( SECTION,  "Number('4')",          4,          Number("4") );
217 new TestCase( SECTION,  "Number('-4')",         -4,         Number("-4") );
218 new TestCase( SECTION,  "Number('+4')",          4,         Number("+4") );
219
220 new TestCase( SECTION,  "Number('5')",          5,          Number("5") );
221 new TestCase( SECTION,  "Number('-5')",         -5,         Number("-5") );
222 new TestCase( SECTION,  "Number('+5')",          5,         Number("+5") );
223
224 new TestCase( SECTION,  "Number('6')",          6,          Number("6") );
225 new TestCase( SECTION,  "Number('-6')",         -6,         Number("-6") );
226 new TestCase( SECTION,  "Number('+6')",          6,         Number("+6") );
227
228 new TestCase( SECTION,  "Number('7')",          7,          Number("7") );
229 new TestCase( SECTION,  "Number('-7')",         -7,         Number("-7") );
230 new TestCase( SECTION,  "Number('+7')",          7,         Number("+7") );
231
232 new TestCase( SECTION,  "Number('8')",          8,          Number("8") );
233 new TestCase( SECTION,  "Number('-8')",         -8,         Number("-8") );
234 new TestCase( SECTION,  "Number('+8')",          8,         Number("+8") );
235
236 new TestCase( SECTION,  "Number('9')",          9,          Number("9") );
237 new TestCase( SECTION,  "Number('-9')",         -9,         Number("-9") );
238 new TestCase( SECTION,  "Number('+9')",          9,         Number("+9") );
239
240 new TestCase( SECTION,  "Number('3.14159')",    3.14159,    Number("3.14159") );
241 new TestCase( SECTION,  "Number('-3.14159')",   -3.14159,   Number("-3.14159") );
242 new TestCase( SECTION,  "Number('+3.14159')",   3.14159,    Number("+3.14159") );
243
244 new TestCase( SECTION,  "Number('3.')",         3,          Number("3.") );
245 new TestCase( SECTION,  "Number('-3.')",        -3,         Number("-3.") );
246 new TestCase( SECTION,  "Number('+3.')",        3,          Number("+3.") );
247
248 new TestCase( SECTION,  "Number('3.e1')",       30,         Number("3.e1") );
249 new TestCase( SECTION,  "Number('-3.e1')",      -30,        Number("-3.e1") );
250 new TestCase( SECTION,  "Number('+3.e1')",      30,         Number("+3.e1") );
251
252 new TestCase( SECTION,  "Number('3.e+1')",       30,         Number("3.e+1") );
253 new TestCase( SECTION,  "Number('-3.e+1')",      -30,        Number("-3.e+1") );
254 new TestCase( SECTION,  "Number('+3.e+1')",      30,         Number("+3.e+1") );
255
256 new TestCase( SECTION,  "Number('3.e-1')",       .30,         Number("3.e-1") );
257 new TestCase( SECTION,  "Number('-3.e-1')",      -.30,        Number("-3.e-1") );
258 new TestCase( SECTION,  "Number('+3.e-1')",      .30,         Number("+3.e-1") );
259
260 // StrDecimalLiteral:::  .DecimalDigits ExponentPart opt
261
262 new TestCase( SECTION,  "Number('.00001')",     0.00001,    Number(".00001") );
263 new TestCase( SECTION,  "Number('+.00001')",    0.00001,    Number("+.00001") );
264 new TestCase( SECTION,  "Number('-0.0001')",    -0.00001,   Number("-.00001") );
265
266 new TestCase( SECTION,  "Number('.01e2')",      1,          Number(".01e2") );
267 new TestCase( SECTION,  "Number('+.01e2')",     1,          Number("+.01e2") );
268 new TestCase( SECTION,  "Number('-.01e2')",     -1,         Number("-.01e2") );
269
270 new TestCase( SECTION,  "Number('.01e+2')",      1,         Number(".01e+2") );
271 new TestCase( SECTION,  "Number('+.01e+2')",     1,         Number("+.01e+2") );
272 new TestCase( SECTION,  "Number('-.01e+2')",     -1,        Number("-.01e+2") );
273
274 new TestCase( SECTION,  "Number('.01e-2')",      0.0001,    Number(".01e-2") );
275 new TestCase( SECTION,  "Number('+.01e-2')",     0.0001,    Number("+.01e-2") );
276 new TestCase( SECTION,  "Number('-.01e-2')",     -0.0001,   Number("-.01e-2") );
277
278 //  StrDecimalLiteral:::    DecimalDigits ExponentPart opt
279
280 new TestCase( SECTION,  "Number('1234e5')",     123400000,  Number("1234e5") );
281 new TestCase( SECTION,  "Number('+1234e5')",    123400000,  Number("+1234e5") );
282 new TestCase( SECTION,  "Number('-1234e5')",    -123400000, Number("-1234e5") );
283
284 new TestCase( SECTION,  "Number('1234e+5')",    123400000,  Number("1234e+5") );
285 new TestCase( SECTION,  "Number('+1234e+5')",   123400000,  Number("+1234e+5") );
286 new TestCase( SECTION,  "Number('-1234e+5')",   -123400000, Number("-1234e+5") );
287
288 new TestCase( SECTION,  "Number('1234e-5')",     0.01234,  Number("1234e-5") );
289 new TestCase( SECTION,  "Number('+1234e-5')",    0.01234,  Number("+1234e-5") );
290 new TestCase( SECTION,  "Number('-1234e-5')",    -0.01234, Number("-1234e-5") );
291
292 // StrNumericLiteral::: HexIntegerLiteral
293
294 new TestCase( SECTION,  "Number('0x0')",        0,          Number("0x0"));
295 new TestCase( SECTION,  "Number('0x1')",        1,          Number("0x1"));
296 new TestCase( SECTION,  "Number('0x2')",        2,          Number("0x2"));
297 new TestCase( SECTION,  "Number('0x3')",        3,          Number("0x3"));
298 new TestCase( SECTION,  "Number('0x4')",        4,          Number("0x4"));
299 new TestCase( SECTION,  "Number('0x5')",        5,          Number("0x5"));
300 new TestCase( SECTION,  "Number('0x6')",        6,          Number("0x6"));
301 new TestCase( SECTION,  "Number('0x7')",        7,          Number("0x7"));
302 new TestCase( SECTION,  "Number('0x8')",        8,          Number("0x8"));
303 new TestCase( SECTION,  "Number('0x9')",        9,          Number("0x9"));
304 new TestCase( SECTION,  "Number('0xa')",        10,         Number("0xa"));
305 new TestCase( SECTION,  "Number('0xb')",        11,         Number("0xb"));
306 new TestCase( SECTION,  "Number('0xc')",        12,         Number("0xc"));
307 new TestCase( SECTION,  "Number('0xd')",        13,         Number("0xd"));
308 new TestCase( SECTION,  "Number('0xe')",        14,         Number("0xe"));
309 new TestCase( SECTION,  "Number('0xf')",        15,         Number("0xf"));
310 new TestCase( SECTION,  "Number('0xA')",        10,         Number("0xA"));
311 new TestCase( SECTION,  "Number('0xB')",        11,         Number("0xB"));
312 new TestCase( SECTION,  "Number('0xC')",        12,         Number("0xC"));
313 new TestCase( SECTION,  "Number('0xD')",        13,         Number("0xD"));
314 new TestCase( SECTION,  "Number('0xE')",        14,         Number("0xE"));
315 new TestCase( SECTION,  "Number('0xF')",        15,         Number("0xF"));
316
317 new TestCase( SECTION,  "Number('0X0')",        0,          Number("0X0"));
318 new TestCase( SECTION,  "Number('0X1')",        1,          Number("0X1"));
319 new TestCase( SECTION,  "Number('0X2')",        2,          Number("0X2"));
320 new TestCase( SECTION,  "Number('0X3')",        3,          Number("0X3"));
321 new TestCase( SECTION,  "Number('0X4')",        4,          Number("0X4"));
322 new TestCase( SECTION,  "Number('0X5')",        5,          Number("0X5"));
323 new TestCase( SECTION,  "Number('0X6')",        6,          Number("0X6"));
324 new TestCase( SECTION,  "Number('0X7')",        7,          Number("0X7"));
325 new TestCase( SECTION,  "Number('0X8')",        8,          Number("0X8"));
326 new TestCase( SECTION,  "Number('0X9')",        9,          Number("0X9"));
327 new TestCase( SECTION,  "Number('0Xa')",        10,         Number("0Xa"));
328 new TestCase( SECTION,  "Number('0Xb')",        11,         Number("0Xb"));
329 new TestCase( SECTION,  "Number('0Xc')",        12,         Number("0Xc"));
330 new TestCase( SECTION,  "Number('0Xd')",        13,         Number("0Xd"));
331 new TestCase( SECTION,  "Number('0Xe')",        14,         Number("0Xe"));
332 new TestCase( SECTION,  "Number('0Xf')",        15,         Number("0Xf"));
333 new TestCase( SECTION,  "Number('0XA')",        10,         Number("0XA"));
334 new TestCase( SECTION,  "Number('0XB')",        11,         Number("0XB"));
335 new TestCase( SECTION,  "Number('0XC')",        12,         Number("0XC"));
336 new TestCase( SECTION,  "Number('0XD')",        13,         Number("0XD"));
337 new TestCase( SECTION,  "Number('0XE')",        14,         Number("0XE"));
338 new TestCase( SECTION,  "Number('0XF')",        15,         Number("0XF"));
339
340 test();
341