14514f5e3Sopenharmony_ci/* 24514f5e3Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License. 54514f5e3Sopenharmony_ci * You may obtain a copy of the License at 64514f5e3Sopenharmony_ci * 74514f5e3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84514f5e3Sopenharmony_ci * 94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and 134514f5e3Sopenharmony_ci * limitations under the License. 144514f5e3Sopenharmony_ci */ 154514f5e3Sopenharmony_ci 164514f5e3Sopenharmony_cideclare function print(str:any):string; 174514f5e3Sopenharmony_civar a : any[] = [ ["ok"], [1, 2, 3] ]; 184514f5e3Sopenharmony_ciprint(a[0][0]); 194514f5e3Sopenharmony_ciprint(a[1][0]); 204514f5e3Sopenharmony_ciprint(a[1][1]); 214514f5e3Sopenharmony_ciprint(a[1][2]); 224514f5e3Sopenharmony_ci 234514f5e3Sopenharmony_civar b = { 244514f5e3Sopenharmony_ci 1 : ["yes", "no"], 254514f5e3Sopenharmony_ci "100" : [4, 5], 264514f5e3Sopenharmony_ci} 274514f5e3Sopenharmony_ciprint(b[1][0]); 284514f5e3Sopenharmony_ciprint(b[1][1]); 294514f5e3Sopenharmony_ciprint(b["100"][0]); 304514f5e3Sopenharmony_ciprint(b["100"][1]); 314514f5e3Sopenharmony_ci 324514f5e3Sopenharmony_ciclass Attrs { 334514f5e3Sopenharmony_ci constructor(a : number, b : number, c : number) { 344514f5e3Sopenharmony_ci this.x = a; 354514f5e3Sopenharmony_ci this.y = b; 364514f5e3Sopenharmony_ci this.z = c; 374514f5e3Sopenharmony_ci } 384514f5e3Sopenharmony_ci x : number; 394514f5e3Sopenharmony_ci y : number; 404514f5e3Sopenharmony_ci z : number; 414514f5e3Sopenharmony_ci} 424514f5e3Sopenharmony_cifunction test() : void { 434514f5e3Sopenharmony_ci for (let j = 0; j < 5; ++j) { 444514f5e3Sopenharmony_ci var _attrs : Attrs[] = [ 454514f5e3Sopenharmony_ci new Attrs(1, 1, 1), 464514f5e3Sopenharmony_ci new Attrs(2, 2, 2), 474514f5e3Sopenharmony_ci new Attrs(3, 3, 3), 484514f5e3Sopenharmony_ci new Attrs(4, 4, 4), 494514f5e3Sopenharmony_ci new Attrs(5, 5, 5), 504514f5e3Sopenharmony_ci ]; 514514f5e3Sopenharmony_ci print(_attrs[j].x); 524514f5e3Sopenharmony_ci } 534514f5e3Sopenharmony_ci} 544514f5e3Sopenharmony_citest(); 554514f5e3Sopenharmony_ci 564514f5e3Sopenharmony_ciconst tests = [ 574514f5e3Sopenharmony_ci [ 584514f5e3Sopenharmony_ci 99.99, 594514f5e3Sopenharmony_ci "ark" 604514f5e3Sopenharmony_ci ], 614514f5e3Sopenharmony_ci [ 624514f5e3Sopenharmony_ci -88.48, 634514f5e3Sopenharmony_ci "brk" 644514f5e3Sopenharmony_ci ], 654514f5e3Sopenharmony_ci [ 664514f5e3Sopenharmony_ci -1024, 674514f5e3Sopenharmony_ci "crk" 684514f5e3Sopenharmony_ci ], 694514f5e3Sopenharmony_ci [ 704514f5e3Sopenharmony_ci 6666, 714514f5e3Sopenharmony_ci "drk" 724514f5e3Sopenharmony_ci ], 734514f5e3Sopenharmony_ci]; 744514f5e3Sopenharmony_ci 754514f5e3Sopenharmony_cifor (const [number, strData] of tests) { 764514f5e3Sopenharmony_ci print(number); 774514f5e3Sopenharmony_ci print(strData); 784514f5e3Sopenharmony_ci} 794514f5e3Sopenharmony_ci 804514f5e3Sopenharmony_ciconst units = [ 814514f5e3Sopenharmony_ci "second", 824514f5e3Sopenharmony_ci "minute", 834514f5e3Sopenharmony_ci]; 844514f5e3Sopenharmony_ci 854514f5e3Sopenharmony_ciconst exceptions = { 864514f5e3Sopenharmony_ci "minute": { 874514f5e3Sopenharmony_ci "-1": "1 minute ago", 884514f5e3Sopenharmony_ci '0': 'this minute', 894514f5e3Sopenharmony_ci "1": "in 1 minute", 904514f5e3Sopenharmony_ci }, 914514f5e3Sopenharmony_ci "second": { 924514f5e3Sopenharmony_ci "-1": "1 second ago", 934514f5e3Sopenharmony_ci "0": "now", 944514f5e3Sopenharmony_ci "1": "in 1 second", 954514f5e3Sopenharmony_ci }, 964514f5e3Sopenharmony_ci}; 974514f5e3Sopenharmony_ci 984514f5e3Sopenharmony_ci{ 994514f5e3Sopenharmony_ci const v1 = new SendableInt8Array(SendableInt8Array, SendableInt8Array, SendableInt8Array); 1004514f5e3Sopenharmony_ci let a = v1[Symbol.toStringTag]; 1014514f5e3Sopenharmony_ci let c = [a]; 1024514f5e3Sopenharmony_ci} 1034514f5e3Sopenharmony_ci 1044514f5e3Sopenharmony_cifor (const unit of units) { 1054514f5e3Sopenharmony_ci const expected = unit in exceptions 1064514f5e3Sopenharmony_ci ? [exceptions[unit]["1"], exceptions[unit]["0"], exceptions[unit]["0"], exceptions[unit]["-1"]] 1074514f5e3Sopenharmony_ci : [`in 1 ${unit}`, `in 0 ${unit}s`, `0 ${unit}s ago`, `1 ${unit} ago`]; 1084514f5e3Sopenharmony_ci 1094514f5e3Sopenharmony_ci print(expected); 1104514f5e3Sopenharmony_ci} 1114514f5e3Sopenharmony_ci 1124514f5e3Sopenharmony_ciObject.defineProperty(Array.prototype, '0', { 1134514f5e3Sopenharmony_ci value: 42, 1144514f5e3Sopenharmony_ci}); 1154514f5e3Sopenharmony_cilet arr = [, 2, 3]; 1164514f5e3Sopenharmony_ciarr.pop(); 1174514f5e3Sopenharmony_ciprint(arr[1]); 1184514f5e3Sopenharmony_ci 1194514f5e3Sopenharmony_ci// TestTypedArrayFindLast 1204514f5e3Sopenharmony_ci{ 1214514f5e3Sopenharmony_ci const LOOP_TIME = 20; 1224514f5e3Sopenharmony_ci 1234514f5e3Sopenharmony_ci function func(element, Last, array) { 1244514f5e3Sopenharmony_ci return element <= 0; 1254514f5e3Sopenharmony_ci } 1264514f5e3Sopenharmony_ci 1274514f5e3Sopenharmony_ci function TestTypedArrayFindLast(e) { 1284514f5e3Sopenharmony_ci let arr = new e([-5, 10, 20, 30, -40, 50.5, -60.6]); 1294514f5e3Sopenharmony_ci let result = arr.findLast(func); 1304514f5e3Sopenharmony_ci } 1314514f5e3Sopenharmony_ci 1324514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1334514f5e3Sopenharmony_ci TestTypedArrayFindLast(Int8Array); 1344514f5e3Sopenharmony_ci } 1354514f5e3Sopenharmony_ci 1364514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1374514f5e3Sopenharmony_ci TestTypedArrayFindLast(Uint8Array); 1384514f5e3Sopenharmony_ci } 1394514f5e3Sopenharmony_ci 1404514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1414514f5e3Sopenharmony_ci TestTypedArrayFindLast(Uint8ClampedArray); 1424514f5e3Sopenharmony_ci } 1434514f5e3Sopenharmony_ci 1444514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1454514f5e3Sopenharmony_ci TestTypedArrayFindLast(Int16Array); 1464514f5e3Sopenharmony_ci } 1474514f5e3Sopenharmony_ci 1484514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1494514f5e3Sopenharmony_ci TestTypedArrayFindLast(Uint16Array); 1504514f5e3Sopenharmony_ci } 1514514f5e3Sopenharmony_ci 1524514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1534514f5e3Sopenharmony_ci TestTypedArrayFindLast(Int32Array); 1544514f5e3Sopenharmony_ci } 1554514f5e3Sopenharmony_ci 1564514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1574514f5e3Sopenharmony_ci TestTypedArrayFindLast(Uint32Array); 1584514f5e3Sopenharmony_ci } 1594514f5e3Sopenharmony_ci 1604514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1614514f5e3Sopenharmony_ci TestTypedArrayFindLast(Float32Array); 1624514f5e3Sopenharmony_ci } 1634514f5e3Sopenharmony_ci 1644514f5e3Sopenharmony_ci for (let i = 0; i < LOOP_TIME; i++) { 1654514f5e3Sopenharmony_ci TestTypedArrayFindLast(Float64Array); 1664514f5e3Sopenharmony_ci } 1674514f5e3Sopenharmony_ci} 168