1/*
2 * Copyright (c) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16/*
17 * @tc.name:builtins
18 * @tc.desc:test builtins
19 * @tc.type: FUNC
20 * @tc.require: issueI5NO8G
21 */
22let result = Number.parseInt("16947500000");
23print("builtins number start");
24print("parseInt result = " + result);
25print(1 / 0.75 * 0.6);
26print(1 / (-1 * 0));
27
28print("builtins number parsefloat");
29print(Number.parseFloat())
30print(Number.parseFloat(123))
31print(Number.parseFloat(new Number(-0.12)))
32print(Number.parseFloat("10.123"))
33print(Number.parseFloat("-0"))
34print(Number.parseFloat("0"))
35print(Number.parseFloat("-1000, 0"))
36print(Number.parseFloat("-1000"))
37print(Number.parseFloat("-0.12"))
38print(Number.parseFloat("  01 ", "1"))
39print(Number.parseFloat("123456e10"))
40print(Number.parseFloat("123456e10"))
41print(Number.parseFloat("1.0"))
42print(Number.parseFloat("1e0"))
43print(Number.parseFloat("10.0e-0"))
44print(Number.parseFloat("10.0e0"))
45print(Number.parseFloat("100.0E1"))
46
47print("builtins global parsefloat");
48print(parseFloat())
49print(parseFloat(123))
50print(parseFloat(new Number(-0.12)))
51print(parseFloat("10.123"))
52print(parseFloat("-0"))
53print(parseFloat("0"))
54print(parseFloat("-1000, 0"))
55print(parseFloat("-1000"))
56print(parseFloat("-0.12"))
57print(parseFloat("  01 ", "1"))
58print(parseFloat("123456e10"))
59print(parseFloat("123456e10"))
60
61print("builtins number parseint");
62print(Number.parseInt())
63print(Number.parseInt(undefined))
64print(Number.parseInt(null))
65print(Number.parseInt(123))
66print(Number.parseInt(new Number(-2)))
67print(Number.parseInt("10.123"))
68print(Number.parseInt("-0"))
69print(Number.parseInt("0"))
70print(Number.parseInt("-1000, 0"))
71print(Number.parseInt("-1000"))
72print(Number.parseInt("  01 ", "1"))
73print(Number.parseInt("123456e10"))
74print(Number.parseInt("1.0"))
75print(Number.parseInt("1e0"))
76print(Number.parseInt("10.0e-0"))
77print(Number.parseInt("10.0e0"))
78print(Number.parseInt("100.0E1"))
79print(Number.parseInt("100", 2))
80print(Number.parseInt("100", 4))
81print(Number.parseInt("100", 8))
82print(Number.parseInt("100", 10))
83print(Number.parseInt("100", 16))
84
85print("builtins global parseint");
86print(parseInt())
87print(parseInt(undefined))
88print(parseInt(null))
89print(parseInt(123))
90print(parseInt(new Number(-2)))
91print(parseInt("10.123"))
92print(parseInt("-0"))
93print(parseInt("0"))
94print(parseInt("-1000, 0"))
95print(parseInt("-1000"))
96print(parseInt("  01 ", "1"))
97print(parseInt("123456e10"))
98print(parseInt("1.0"))
99print(parseInt("1e0"))
100print(parseInt("10.0e-0"))
101print(parseInt("10.0e0"))
102print(parseInt("100.0E1"))
103print(parseInt("100", 2))
104print(parseInt("100", 4))
105print(parseInt("100", 8))
106print(parseInt("100", 10))
107print(parseInt("100", 16))
108
109print("builtins number isnan");
110print(Number.isNaN());
111print(Number.isNaN(undefined));
112print(Number.isNaN(null));
113print(Number.isNaN(NaN));
114print(Number.isNaN(0));
115print(Number.isNaN(1));
116print(Number.isNaN(-123));
117print(Number.isNaN(1.23));
118print(Number.isNaN(-1.23e10));
119print(Number.isNaN(NaN, 1));
120print(Number.isNaN(NaN + 1));
121print(Number.isNaN(0/0));
122print(Number.isNaN(Infinity));
123
124print("builtins global isnan");
125print(isNaN());
126print(isNaN(undefined));
127print(isNaN(null));
128print(isNaN(NaN));
129print(isNaN(0));
130print(isNaN(1));
131print(isNaN(-123));
132print(isNaN(1.23));
133print(isNaN(-1.23e10));
134print(isNaN(NaN, 1));
135print(isNaN(NaN + 1));
136print(isNaN(0/0));
137print(isNaN(Infinity));
138
139print("builtins number isfinite");
140print(Number.isFinite());
141print(Number.isFinite(undefined));
142print(Number.isFinite(null));
143print(Number.isFinite(NaN));
144print(Number.isFinite(Infinity));
145print(Number.isFinite(-Infinity));
146print(Number.isFinite(0.0));
147print(Number.isFinite(-0.0));
148print(Number.isFinite(123));
149print(Number.isFinite(1.23));
150
151print("builtins global isfinite");
152print(isFinite());
153print(isFinite(undefined));
154print(isFinite(null));
155print(isFinite(NaN));
156print(isFinite(Infinity));
157print(isFinite(-Infinity));
158print(isFinite(0.0));
159print(isFinite(-0.0));
160print(isFinite(123));
161print(isFinite(1.23));
162
163print("builtins number isinteger");
164print(Number.isInteger());
165print(Number.isInteger(undefined));
166print(Number.isInteger(null));
167print(Number.isInteger(NaN));
168print(Number.isInteger(Infinity));
169print(Number.isInteger(0));
170print(Number.isInteger(-0));
171print(Number.isInteger(-0.0));
172print(Number.isInteger(123));
173print(Number.isInteger(-123));
174print(Number.isInteger(1.23));
175print(Number.isInteger(-1.23));
176print(Number.isInteger("2"));
177print(Number.isInteger(9007199254740991));
178print(Number.isInteger(9007199254740991.0));
179print(Number.isInteger(9007199254740991.1));
180print(Number.isInteger(9007199254740991.5));
181print(Number.isInteger(9007199254740992.0));
182print(Number.isInteger(-9007199254740991));
183print(Number.isInteger(-9007199254740991.0));
184print(Number.isInteger(-9007199254740991.1));
185print(Number.isInteger(-9007199254740991.5));
186print(Number.isInteger(-9007199254740992.0));
187print(Number.isInteger(1.0e22));
188print(Number.isInteger(-1.0e22));
189
190print("builtins number issafeinteger");
191print(Number.isSafeInteger());
192print(Number.isSafeInteger(undefined));
193print(Number.isSafeInteger(null));
194print(Number.isSafeInteger(NaN));
195print(Number.isSafeInteger(Infinity));
196print(Number.isSafeInteger(0));
197print(Number.isSafeInteger(-0));
198print(Number.isSafeInteger(-0.0));
199print(Number.isSafeInteger(123));
200print(Number.isSafeInteger(-123));
201print(Number.isSafeInteger(1.23));
202print(Number.isSafeInteger(-1.23));
203print(Number.isSafeInteger("2"));
204print(Number.isSafeInteger(9007199254740991));
205print(Number.isSafeInteger(9007199254740991.0));
206print(Number.isSafeInteger(9007199254740991.1));
207print(Number.isSafeInteger(9007199254740991.5));
208print(Number.isSafeInteger(9007199254740992.0));
209print(Number.isSafeInteger(-9007199254740991));
210print(Number.isSafeInteger(-9007199254740991.0));
211print(Number.isSafeInteger(-9007199254740991.1));
212print(Number.isSafeInteger(-9007199254740991.5));
213print(Number.isSafeInteger(-9007199254740992.0));
214print(Number.isSafeInteger(1.0e22));
215print(Number.isSafeInteger(-1.0e22));
216
217print("builtins number tostring");
218print((10 ** 21.5).toString())
219print((10 ** 21.5).toString())
220let n1 = new Number(0)
221print(n1.toString())
222print(n1.toString())
223n1 = new Number(-0)
224print(n1.toString())
225print(n1.toString())
226n1 = new Number(-1)
227print(n1.toString())
228print(n1.toString())
229n1 = new Number(-1000000000)
230print(n1.toString())
231print(n1.toString())
232n1 = new Number(-1000000000.1233444)
233print(n1.toString())
234print(n1.toString())
235let n2 = new Number(10000.1234)
236print(n2.toString())
237print(n2.toString())
238n2 = new Number(1000)
239print(n2.toString())
240print(n2.toString())
241n2 = new Number(10000123456)
242print(n2.toString())
243print(n2.toString())
244n2 = new Number(0.000000000010000123456)
245print(n2.toString())
246print(n2.toString())
247n2 = new Number(0.000000000010000123456e10)
248print(n2.toString())
249print(n2.toString())
250n2 = new Number(123456e10)
251print(n2.toString())
252print(n2.toString())
253
254// math.atanh
255try {
256    const bigIntTest = -2147483647n;
257    const test = Math.atanh(bigIntTest);
258} catch(e) {
259    print(e);
260};
261
262var s = (2.2250738585072e-308).toString(36)
263print(s)
264
265print(Number.parseInt("4294967294"))
266print(Number.parseInt("2147483648"))
267
268print(Number.parseFloat("10000000000000000000000.0"));
269
270
271print("builtins number end");