| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- if (this.WScript && this.WScript.LoadScriptFile) { // Check for running in ch
- this.WScript.LoadScriptFile("..\\UnitTestFramework\\UnitTestFramework.js");
- }
- var tests = [
- {
- name: "BigInt literal",
- body: function () {
- var x = ~123n;
- assert.isTrue(x == -124n);
- }
- },
- {
- name: "Negative BigInt literal",
- body: function () {
- var x = ~-123n;
- assert.isTrue(x == 122n);
- }
- },
- {
- name: "0n",
- body: function () {
- var x = ~0n;
- assert.isTrue(x == -1n);
- }
- },
- {
- name: "BigInt Object",
- body: function () {
- var x = ~BigInt(12345n);
- var y = BigInt(-12346n);
- assert.isTrue(x == y);
- }
- },
- {
- name: "Out of 64 bit range",
- body: function () {
- var x = ~1234567890123456789012345678901234567890n;
- var y = -1234567890123456789012345678901234567891n;
- assert.isTrue(x == y);
- }
- },
- {
- name: "Very big",
- body: function () {
- var x = eval('1234567890'.repeat(20)+'0n');
- var y = -x-1n;
- var z = ~x;
- assert.isTrue(z == y);
- }
- },
- {
- name: "With assign",
- body: function () {
- var x = 3n;
- var y = x;
- assert.isTrue(x == 3n);
- assert.isTrue(y == 3n);
- y = ~x;
- assert.isTrue(x == 3n);
- assert.isTrue(y == -4n);
- }
- },
- ];
- testRunner.runTests(tests, { verbose: WScript.Arguments[0] != "summary" });
|