* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / Microsoft.JScript / Test / Mozilla / ecma / Math / 15.8.2.6.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    File Name:          15.8.2.6.js
40    ECMA Section:       15.8.2.6  Math.ceil(x)
41    Description:        return the smallest number value that is not less than the
42    argument and is equal to a mathematical integer.  if the
43    number is already an integer, return the number itself.
44    special cases:
45    - if x is NaN       return NaN
46    - if x = +0         return +0
47    - if x = 0          return -0
48    - if x = Infinity   return Infinity
49    - if x = -Infinity  return -Infinity
50    - if ( -1 < x < 0 ) return -0
51    also:
52    -   the value of Math.ceil(x) == -Math.ceil(-x)
53    Author:             christine@netscape.com
54    Date:               7 july 1997
55 */
56 var SECTION = "15.8.2.6";
57 var VERSION = "ECMA_1";
58 startTest();
59 var TITLE   = "Math.ceil(x)";
60
61 writeHeaderToLog( SECTION + " "+ TITLE);
62
63 new TestCase( SECTION,
64               "Math.ceil.length",
65               1,
66               Math.ceil.length );
67
68 new TestCase( SECTION,
69               "Math.ceil(NaN)",
70               Number.NaN,
71               Math.ceil(Number.NaN)   );
72
73 new TestCase( SECTION,
74               "Math.ceil(null)",
75               0,  
76               Math.ceil(null) );
77
78 new TestCase( SECTION,
79               "Math.ceil()",
80               Number.NaN,
81               Math.ceil() );
82
83 new TestCase( SECTION,
84               "Math.ceil(void 0)",
85               Number.NaN,
86               Math.ceil(void 0) );
87
88 new TestCase( SECTION,
89               "Math.ceil('0')",
90               0,
91               Math.ceil('0')            );
92
93 new TestCase( SECTION,
94               "Math.ceil('-0')",
95               -0,
96               Math.ceil('-0')           );
97
98 new TestCase( SECTION,
99               "Infinity/Math.ceil('0')",
100               Infinity,
101               Infinity/Math.ceil('0'));
102
103 new TestCase( SECTION,
104               "Infinity/Math.ceil('-0')",
105               -Infinity,
106               Infinity/Math.ceil('-0'));
107
108 new TestCase( SECTION,
109               "Math.ceil(0)",
110               0,
111               Math.ceil(0)            );
112
113 new TestCase( SECTION,
114               "Math.ceil(-0)",
115               -0,
116               Math.ceil(-0)           );
117
118 new TestCase( SECTION,
119               "Infinity/Math.ceil(0)",
120               Infinity,
121               Infinity/Math.ceil(0));
122
123 new TestCase( SECTION,
124               "Infinity/Math.ceil(-0)",
125               -Infinity,
126               Infinity/Math.ceil(-0));
127
128
129 new TestCase( SECTION,
130               "Math.ceil(Infinity)",
131               Number.POSITIVE_INFINITY,
132               Math.ceil(Number.POSITIVE_INFINITY) );
133
134 new TestCase( SECTION,
135               "Math.ceil(-Infinity)",
136               Number.NEGATIVE_INFINITY,
137               Math.ceil(Number.NEGATIVE_INFINITY) );
138
139 new TestCase( SECTION,
140               "Math.ceil(-Number.MIN_VALUE)",
141               -0,
142               Math.ceil(-Number.MIN_VALUE) );
143
144 new TestCase( SECTION,
145               "Infinity/Math.ceil(-Number.MIN_VALUE)",
146               -Infinity,
147               Infinity/Math.ceil(-Number.MIN_VALUE) );
148
149 new TestCase( SECTION,
150               "Math.ceil(1)",
151               1,
152               Math.ceil(1)   );
153
154 new TestCase( SECTION,
155               "Math.ceil(-1)",
156               -1,
157               Math.ceil(-1)   );
158
159 new TestCase( SECTION,
160               "Math.ceil(-0.9)",
161               -0,
162               Math.ceil(-0.9) );
163
164 new TestCase( SECTION,
165               "Infinity/Math.ceil(-0.9)",
166               -Infinity,
167               Infinity/Math.ceil(-0.9) );
168
169 new TestCase( SECTION,
170               "Math.ceil(0.9 )",
171               1,
172               Math.ceil( 0.9) );
173
174 new TestCase( SECTION,
175               "Math.ceil(-1.1)",
176               -1,
177               Math.ceil( -1.1));
178
179 new TestCase( SECTION,
180               "Math.ceil( 1.1)",
181               2,
182               Math.ceil(  1.1));
183
184 new TestCase( SECTION,
185               "Math.ceil(Infinity)",
186               -Math.floor(-Infinity),
187               Math.ceil(Number.POSITIVE_INFINITY) );
188
189 new TestCase( SECTION,
190               "Math.ceil(-Infinity)",
191               -Math.floor(Infinity),
192               Math.ceil(Number.NEGATIVE_INFINITY) );
193
194 new TestCase( SECTION,
195               "Math.ceil(-Number.MIN_VALUE)",
196               -Math.floor(Number.MIN_VALUE),
197               Math.ceil(-Number.MIN_VALUE) );
198
199 new TestCase( SECTION,
200               "Math.ceil(1)",
201               -Math.floor(-1),
202               Math.ceil(1)   );
203
204 new TestCase( SECTION,
205               "Math.ceil(-1)",
206               -Math.floor(1),
207               Math.ceil(-1)   );
208
209 new TestCase( SECTION,
210               "Math.ceil(-0.9)",
211               -Math.floor(0.9),
212               Math.ceil(-0.9) );
213
214 new TestCase( SECTION,
215               "Math.ceil(0.9 )",
216               -Math.floor(-0.9),
217               Math.ceil( 0.9) );
218
219 new TestCase( SECTION,
220               "Math.ceil(-1.1)",
221               -Math.floor(1.1),
222               Math.ceil( -1.1));
223
224 new TestCase( SECTION,
225               "Math.ceil( 1.1)",
226               -Math.floor(-1.1),
227               Math.ceil(  1.1));
228
229 test();