13af6ab5fSopenharmony_ci/*
23af6ab5fSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
33af6ab5fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
43af6ab5fSopenharmony_ci * you may not use this file except in compliance with the License.
53af6ab5fSopenharmony_ci * You may obtain a copy of the License at
63af6ab5fSopenharmony_ci *
73af6ab5fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
83af6ab5fSopenharmony_ci *
93af6ab5fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
103af6ab5fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
113af6ab5fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
123af6ab5fSopenharmony_ci * See the License for the specific language governing permissions and
133af6ab5fSopenharmony_ci * limitations under the License.
143af6ab5fSopenharmony_ci */
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_civar obj = {
173af6ab5fSopenharmony_ci    2e3: function () {
183af6ab5fSopenharmony_ci        "show source";
193af6ab5fSopenharmony_ci        return "Successfully called key 2e3";
203af6ab5fSopenharmony_ci    },
213af6ab5fSopenharmony_ci    1000: function () {
223af6ab5fSopenharmony_ci        "show source";
233af6ab5fSopenharmony_ci        return "Successfully called key 1000";
243af6ab5fSopenharmony_ci    },
253af6ab5fSopenharmony_ci    NaN: function () {
263af6ab5fSopenharmony_ci        "show source";
273af6ab5fSopenharmony_ci        return "Successfully called key NaN";
283af6ab5fSopenharmony_ci    },
293af6ab5fSopenharmony_ci    0.0: function () {
303af6ab5fSopenharmony_ci        "show source";
313af6ab5fSopenharmony_ci        return "Successfully called key 0.0";
323af6ab5fSopenharmony_ci    },
333af6ab5fSopenharmony_ci    Infinity: function () {
343af6ab5fSopenharmony_ci        "show source";
353af6ab5fSopenharmony_ci        return "Successfully called key Infinity";
363af6ab5fSopenharmony_ci    },
373af6ab5fSopenharmony_ci    1e-6: function () {
383af6ab5fSopenharmony_ci        "show source";
393af6ab5fSopenharmony_ci        return "Successfully called key 1e-6";
403af6ab5fSopenharmony_ci    },
413af6ab5fSopenharmony_ci    0.000002: function () {
423af6ab5fSopenharmony_ci        "show source";
433af6ab5fSopenharmony_ci        return "Successfully called key 0.000002";
443af6ab5fSopenharmony_ci    },
453af6ab5fSopenharmony_ci    1e-7: function () {
463af6ab5fSopenharmony_ci        "show source";
473af6ab5fSopenharmony_ci        return "Successfully called key 1e-7";
483af6ab5fSopenharmony_ci    },
493af6ab5fSopenharmony_ci    0.0000002: function () {
503af6ab5fSopenharmony_ci        "show source";
513af6ab5fSopenharmony_ci        return "Successfully called key 0.0000002";
523af6ab5fSopenharmony_ci    },
533af6ab5fSopenharmony_ci    0.1: function () {
543af6ab5fSopenharmony_ci        "show source";
553af6ab5fSopenharmony_ci        return "Successfully called key 0.1";
563af6ab5fSopenharmony_ci    },
573af6ab5fSopenharmony_ci    1.1: function () {
583af6ab5fSopenharmony_ci        "show source";
593af6ab5fSopenharmony_ci        return "Successfully called key 1.1";
603af6ab5fSopenharmony_ci    },
613af6ab5fSopenharmony_ci    1e20: function () {
623af6ab5fSopenharmony_ci        "show source";
633af6ab5fSopenharmony_ci        return "Successfully called key 1e20";
643af6ab5fSopenharmony_ci    },
653af6ab5fSopenharmony_ci    200000000000000000000: function () {
663af6ab5fSopenharmony_ci        "show source";
673af6ab5fSopenharmony_ci        return "Successfully called key 200000000000000000000";
683af6ab5fSopenharmony_ci    },
693af6ab5fSopenharmony_ci    1e21: function () {
703af6ab5fSopenharmony_ci        "show source";
713af6ab5fSopenharmony_ci        return "Successfully called key 1e21";
723af6ab5fSopenharmony_ci    },
733af6ab5fSopenharmony_ci    2000000000000000000000: function () {
743af6ab5fSopenharmony_ci        "show source";
753af6ab5fSopenharmony_ci        return "Successfully called key 2000000000000000000000";
763af6ab5fSopenharmony_ci    },
773af6ab5fSopenharmony_ci    1234567890123456: function () {
783af6ab5fSopenharmony_ci        "show source";
793af6ab5fSopenharmony_ci        return "Successfully called key 1234567890123456";
803af6ab5fSopenharmony_ci    },
813af6ab5fSopenharmony_ci    12345678901234567: function () {
823af6ab5fSopenharmony_ci        "show source";
833af6ab5fSopenharmony_ci        return "Successfully called key 12345678901234567";
843af6ab5fSopenharmony_ci    },
853af6ab5fSopenharmony_ci    12345678901234567: function () {
863af6ab5fSopenharmony_ci        "show source";
873af6ab5fSopenharmony_ci        return "Successfully called key 12345678901234567";
883af6ab5fSopenharmony_ci    },
893af6ab5fSopenharmony_ci    123456789012345678: function () {
903af6ab5fSopenharmony_ci        "show source";
913af6ab5fSopenharmony_ci        return "Successfully called key 123456789012345678";
923af6ab5fSopenharmony_ci    },
933af6ab5fSopenharmony_ci    123456789012345678: function () {
943af6ab5fSopenharmony_ci        "show source";
953af6ab5fSopenharmony_ci        return "Successfully called key 123456789012345678";
963af6ab5fSopenharmony_ci    },
973af6ab5fSopenharmony_ci};
983af6ab5fSopenharmony_ci
993af6ab5fSopenharmony_ciprint(obj[2e3]()); // call key 2e3
1003af6ab5fSopenharmony_ciprint(obj[2000]()); // call key 2e3
1013af6ab5fSopenharmony_ciprint(obj[1000]());
1023af6ab5fSopenharmony_ci// Special testcases
1033af6ab5fSopenharmony_ciprint(obj[NaN]());
1043af6ab5fSopenharmony_ciprint(obj[0]()); // 0.0 == 0
1053af6ab5fSopenharmony_ciprint(obj[Infinity]());
1063af6ab5fSopenharmony_ci// Boundary value of size : 1e-6
1073af6ab5fSopenharmony_ciprint(obj[1e-6]());
1083af6ab5fSopenharmony_ciprint(obj[0.000001]());
1093af6ab5fSopenharmony_ciprint(obj[0.000002]());
1103af6ab5fSopenharmony_ciprint(obj[1e-7]());
1113af6ab5fSopenharmony_ciprint(obj[0.0000001]());
1123af6ab5fSopenharmony_ciprint(obj[0.0000002]());
1133af6ab5fSopenharmony_ci// Boundary value of size : 1e0
1143af6ab5fSopenharmony_ciprint(obj[0.1]());
1153af6ab5fSopenharmony_ciprint(obj[1.1]());
1163af6ab5fSopenharmony_ci// Boundary value of size : 1e21
1173af6ab5fSopenharmony_ciprint(obj[1e20]());
1183af6ab5fSopenharmony_ciprint(obj[100000000000000000000]());
1193af6ab5fSopenharmony_ciprint(obj[200000000000000000000]());
1203af6ab5fSopenharmony_ciprint(obj[1e21]());
1213af6ab5fSopenharmony_ciprint(obj[1000000000000000000000]());
1223af6ab5fSopenharmony_ciprint(obj[2000000000000000000000]());
1233af6ab5fSopenharmony_ci// Precision digit : 17
1243af6ab5fSopenharmony_ciprint(obj[1234567890123456]());
1253af6ab5fSopenharmony_ciprint(obj[12345678901234567]());
1263af6ab5fSopenharmony_ciprint(obj[12345678901234568]()); // equal to 12345678901234567
1273af6ab5fSopenharmony_ciprint(obj[123456789012345678]());
1283af6ab5fSopenharmony_ciprint(obj[123456789012345680]()); // equal to 123456789012345678
129