Home | History | Annotate | Download | only in LexicalConventions
      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:          7.7.3-1.js
     24     ECMA Section:       7.7.3 Numeric Literals
     25 
     26     Description:        A numeric literal stands for a value of the Number type
     27                         This value is determined in two steps:  first a
     28                         mathematical value (MV) is derived from the literal;
     29                         second, this mathematical value is rounded, ideally
     30                         using IEEE 754 round-to-nearest mode, to a reprentable
     31                         value of of the number type.
     32 
     33                         These test cases came from Waldemar.
     34 
     35     Author:             christine (at) netscape.com
     36     Date:               12 June 1998
     37 */
     38 
     39 var SECTION = "7.7.3-1";
     40 var VERSION = "ECMA_1";
     41     startTest();
     42 var TITLE   = "Numeric Literals";
     43 var BUGNUMBER="122877";
     44 
     45 writeHeaderToLog( SECTION + " "+ TITLE);
     46 
     47 var testcases = new Array();
     48 
     49 
     50 testcases[tc++] = new TestCase( SECTION,
     51     "0x12345678",
     52     305419896,
     53     0x12345678 );
     54 
     55 testcases[tc++] = new TestCase( SECTION,
     56     "0x80000000",
     57     2147483648,
     58     0x80000000 );
     59 
     60 testcases[tc++] = new TestCase( SECTION,
     61     "0xffffffff",
     62     4294967295,
     63     0xffffffff );
     64 
     65 testcases[tc++] = new TestCase( SECTION,
     66     "0x100000000",
     67     4294967296,
     68     0x100000000 );
     69 
     70 testcases[tc++] = new TestCase( SECTION,
     71     "077777777777777777",
     72     2251799813685247,
     73     077777777777777777 );
     74 
     75 testcases[tc++] = new TestCase( SECTION,
     76     "077777777777777776",
     77     2251799813685246,
     78     077777777777777776 );
     79 
     80 testcases[tc++] = new TestCase( SECTION,
     81     "0x1fffffffffffff",
     82     9007199254740991,
     83     0x1fffffffffffff );
     84 
     85 testcases[tc++] = new TestCase( SECTION,
     86     "0x20000000000000",
     87     9007199254740992,
     88     0x20000000000000 );
     89 
     90 testcases[tc++] = new TestCase( SECTION,
     91     "0x20123456789abc",
     92     9027215253084860,
     93     0x20123456789abc );
     94 
     95 testcases[tc++] = new TestCase( SECTION,
     96     "0x20123456789abd",
     97     9027215253084860,
     98     0x20123456789abd );
     99 
    100 testcases[tc++] = new TestCase( SECTION,
    101     "0x20123456789abe",
    102     9027215253084862,
    103     0x20123456789abe );
    104 
    105 testcases[tc++] = new TestCase( SECTION,
    106     "0x20123456789abf",
    107     9027215253084864,
    108     0x20123456789abf );
    109 
    110 testcases[tc++] = new TestCase( SECTION,
    111     "0x1000000000000080",
    112     1152921504606847000,
    113     0x1000000000000080 );
    114 
    115 testcases[tc++] = new TestCase( SECTION,
    116     "0x1000000000000081",
    117     1152921504606847200,
    118     0x1000000000000081 );
    119 
    120 testcases[tc++] = new TestCase( SECTION,
    121     "0x1000000000000100",
    122     1152921504606847200,
    123     0x1000000000000100 );
    124 
    125 testcases[tc++] = new TestCase( SECTION,
    126     "0x100000000000017f",
    127     1152921504606847200,
    128     0x100000000000017f );
    129 
    130 testcases[tc++] = new TestCase( SECTION,
    131     "0x1000000000000180",
    132     1152921504606847500,
    133     0x1000000000000180 );
    134 
    135 testcases[tc++] = new TestCase( SECTION,
    136     "0x1000000000000181",
    137     1152921504606847500,
    138     0x1000000000000181 );
    139 
    140 testcases[tc++] = new TestCase( SECTION,
    141     "0x10000000000001f0",
    142     1152921504606847500,
    143     0x10000000000001f0 );
    144 
    145 testcases[tc++] = new TestCase( SECTION,
    146     "0x1000000000000200",
    147     1152921504606847500,
    148     0x1000000000000200 );
    149 
    150 testcases[tc++] = new TestCase( SECTION,
    151     "0x100000000000027f",
    152     1152921504606847500,
    153     0x100000000000027f );
    154 
    155 testcases[tc++] = new TestCase( SECTION,
    156     "0x1000000000000280",
    157     1152921504606847500,
    158     0x1000000000000280 );
    159 
    160 testcases[tc++] = new TestCase( SECTION,
    161     "0x1000000000000281",
    162     1152921504606847700,
    163     0x1000000000000281 );
    164 
    165 testcases[tc++] = new TestCase( SECTION,
    166     "0x10000000000002ff",
    167     1152921504606847700,
    168     0x10000000000002ff );
    169 
    170 testcases[tc++] = new TestCase( SECTION,
    171     "0x1000000000000300",
    172     1152921504606847700,
    173     0x1000000000000300 );
    174 
    175 testcases[tc++] = new TestCase( SECTION,
    176     "0x10000000000000000",
    177     18446744073709552000,
    178     0x10000000000000000 );
    179 
    180 test();
    181 
    182 function test() {
    183         for ( tc=0; tc < testcases.length; tc++ ) {
    184             testcases[tc].actual = testcases[tc].actual;
    185 
    186             testcases[tc].passed = writeTestCaseResult(
    187                             testcases[tc].expect,
    188                             testcases[tc].actual,
    189                             testcases[tc].description +" = "+ testcases[tc].actual );
    190 
    191             testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
    192 
    193         }
    194 
    195         stopTest();
    196         return ( testcases );
    197 }
    198