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");