1/* 2 * Copyright (c) 2023-2024 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 16function test_minus(): void { 17 assert new BigInt(10).operatorSubtract(new BigInt(2)) == (8n); 18 assert new BigInt(2).operatorSubtract(new BigInt(10)) == (-8n); 19 assert new BigInt(-10).operatorSubtract(new BigInt(-2)) == (-8n); 20 assert new BigInt(-100).operatorSubtract(new BigInt(1)) == (-101n); 21 assert new BigInt(-100).operatorSubtract(new BigInt(-1)) == (-99n); 22 assert new BigInt(-1000).operatorSubtract(new BigInt(10)) == (-1010n); 23 assert new BigInt(1237840127434312471243n).operatorSubtract(new BigInt(234112342314526914672342143621463921469n)) == (-234112342314526913434502016187151450226n); 24 assert new BigInt(-1237840127434312471243n).operatorSubtract(new BigInt(234112342314526914672342143621463921469n)) == (-234112342314526915910182271055776392712n); 25 assert new BigInt(1237840127434312471243n).operatorSubtract(new BigInt(-234112342314526914672342143621463921469n)) == (234112342314526915910182271055776392712n); 26 assert new BigInt(-1237840127434312471243n).operatorSubtract(new BigInt(-234112342314526914672342143621463921469n)) == (234112342314526913434502016187151450226n); 27 assert new BigInt(-1000).operatorSubtract(new BigInt(-10)) == (-990n); 28 assert new BigInt(-100).operatorSubtract(new BigInt(0)) == (-100n); 29 assert new BigInt(0).operatorSubtract(new BigInt(-100)) == (100n); 30 assert new BigInt(0).operatorSubtract(new BigInt(100)) == (-100n); 31 assert new BigInt(65500).operatorSubtract(new BigInt(1)) == (65499n); 32 assert new BigInt(65500).operatorSubtract(new BigInt(-1)) == (65501n); 33 assert new BigInt(-65500).operatorSubtract(new BigInt(-1)) == (-65499n); 34 assert new BigInt(-65500).operatorSubtract(new BigInt(1)) == (-65501n); 35 assert new BigInt(65500).operatorSubtract(new BigInt(100000)) == (-34500n); 36 assert new BigInt(49798775).operatorSubtract(new BigInt(43621978)) == (6176797n); 37 assert new BigInt(10).operatorSubtract(new BigInt(20)) == (-10n); 38} 39 40function test_subtraction(): void { 41 const a = 18446744073709551616n; 42 const b = 36893488147419103232n; 43 const c = -10000000000000000000n; 44 45 /* Subtraction testing (-) */ 46 assert 999999999999999n - 1n == 999999999999998n 47 assert b - a == a 48 assert a - b == -18446744073709551616n 49 assert b - a - a == 0n 50} 51 52function test_inc_dec(): void { 53 const a = 340282366920938463463374607431768211456n 54 const b = -2313455919991034304490n 55 56 /* Increment testing */ 57 /* Decrement testing */ 58} 59 60 61function main() { 62 test_minus(); 63 test_subtraction() 64 test_inc_dec() 65} 66