summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/BigInt/decimal.js
blob: f461307744878b295448b7b31969f8fa1208332a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Any copyright is dedicated to the Public Domain.
// https://creativecommons.org/licenses/publicdomain/

// Check base-10 BigInt string conversion
const decimalTests = [
    [32n, -1n, 1n, "4294967295"],
    [32n, -1n, -1n, "-4294967295"],
    [32n, 0n, 1n, "4294967296"],
    [32n, 0n, -1n, "-4294967296"],
    [32n, 1n, 1n, "4294967297"],
    [32n, 1n, -1n, "-4294967297"],
    [64n, -1n, 1n, "18446744073709551615"],
    [64n, -1n, -1n, "-18446744073709551615"],
    [64n, 0n, 1n, "18446744073709551616"],
    [64n, 0n, -1n, "-18446744073709551616"],
    [64n, 1n, 1n, "18446744073709551617"],
    [64n, 1n, -1n, "-18446744073709551617"],
    [128n, -1n, 1n, "340282366920938463463374607431768211455"],
    [128n, -1n, -1n, "-340282366920938463463374607431768211455"],
    [128n, 0n, 1n, "340282366920938463463374607431768211456"],
    [128n, 0n, -1n, "-340282366920938463463374607431768211456"],
    [128n, 1n, 1n, "340282366920938463463374607431768211457"],
    [128n, 1n, -1n, "-340282366920938463463374607431768211457"],
];
for (const [power, offset, sign, result] of decimalTests) {
    assertEq(((2n**power+offset)*sign).toString(),
             result);
}

reportCompare(true, true);