Home | History | Annotate | Download | only in Number
      1 /* The contents of this file are subject to the Netscape Public
      2  * License Version 1.1 (the "License"); you may not use this file
      3  * except in compliance with the License. You may obtain a copy of
      4  * the License at http://www.mozilla.org/NPL/
      5  *
      6  * Software distributed under the License is distributed on an "AS
      7  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
      8  * implied. See the License for the specific language governing
      9  * rights and limitations under the License.
     10  *
     11  * The Original Code is Mozilla Communicator client code, released March
     12  * 31, 1998.
     13  *
     14  * The Initial Developer of the Original Code is Netscape Communications
     15  * Corporation. Portions created by Netscape are
     16  * Copyright (C) 1998 Netscape Communications Corporation. All
     17  * Rights Reserved.
     18  *
     19  * Contributor(s):
     20  *
     21  */
     22 /**
     23     File Name:          15.7.4.2.js
     24     ECMA Section:       15.7.4.2.1 Number.prototype.toString()
     25     Description:
     26     If the radix is the number 10 or not supplied, then this number value is
     27     given as an argument to the ToString operator; the resulting string value
     28     is returned.
     29 
     30     If the radix is supplied and is an integer from 2 to 36, but not 10, the
     31     result is a string, the choice of which is implementation dependent.
     32 
     33     The toString function is not generic; it generates a runtime error if its
     34     this value is not a Number object. Therefore it cannot be transferred to
     35     other kinds of objects for use as a method.
     36 
     37     Author:             christine (at) netscape.com
     38     Date:               16 september 1997
     39 */
     40     var SECTION = "15.7.4.2-1";
     41     var VERSION = "ECMA_1";
     42     startTest();
     43     var testcases = getTestCases();
     44 
     45     writeHeaderToLog( SECTION + " Number.prototype.toString()");
     46     test();
     47 
     48 function getTestCases() {
     49     var array = new Array();
     50     var item = 0;
     51 
     52 //  the following two lines cause navigator to crash -- cmb 9/16/97
     53     array[item++] = new TestCase(SECTION, "Number.prototype.toString()",       "0",        "Number.prototype.toString()" );
     54     array[item++] = new TestCase(SECTION, "typeof(Number.prototype.toString())", "string",      "typeof(Number.prototype.toString())" );
     55 
     56     array[item++] = new TestCase(SECTION,  "s = Number.prototype.toString; o = new Number(); o.toString = s; o.toString()",  "0",          "s = Number.prototype.toString; o = new Number(); o.toString = s; o.toString()" );
     57     array[item++] = new TestCase(SECTION,  "s = Number.prototype.toString; o = new Number(1); o.toString = s; o.toString()", "1",          "s = Number.prototype.toString; o = new Number(1); o.toString = s; o.toString()" );
     58     array[item++] = new TestCase(SECTION,  "s = Number.prototype.toString; o = new Number(-1); o.toString = s; o.toString()", "-1",         "s = Number.prototype.toString; o = new Number(-1); o.toString = s; o.toString()" );
     59 
     60     array[item++] = new TestCase(SECTION, "var MYNUM = new Number(255); MYNUM.toString(10)",          "255",      "var MYNUM = new Number(255); MYNUM.toString(10)" );
     61     array[item++] = new TestCase(SECTION, "var MYNUM = new Number(Number.NaN); MYNUM.toString(10)",   "NaN",      "var MYNUM = new Number(Number.NaN); MYNUM.toString(10)" );
     62     array[item++] = new TestCase(SECTION, "var MYNUM = new Number(Infinity); MYNUM.toString(10)",   "Infinity",   "var MYNUM = new Number(Infinity); MYNUM.toString(10)" );
     63     array[item++] = new TestCase(SECTION, "var MYNUM = new Number(-Infinity); MYNUM.toString(10)",   "-Infinity", "var MYNUM = new Number(-Infinity); MYNUM.toString(10)" );
     64 
     65     return ( array );
     66 }
     67 function test() {
     68     for ( tc=0; tc < testcases.length; tc++ ) {
     69         testcases[tc].actual= eval(testcases[tc].actual );
     70 
     71         testcases[tc].passed = writeTestCaseResult(
     72                             testcases[tc].expect,
     73                             testcases[tc].actual,
     74                             testcases[tc].description +" = "+ testcases[tc].actual );
     75 
     76         testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
     77     }
     78     stopTest();
     79     return ( testcases );
     80 }
     81