tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

sign-display.js (7459B)


      1 // |reftest| skip-if(!this.hasOwnProperty("Intl"))
      2 
      3 const {
      4    Nan, Inf, Integer, MinusSign, PlusSign, Decimal, Fraction
      5 } = NumberFormatParts;
      6 
      7 const testcases = [
      8    // "auto": Show the sign on negative numbers only.
      9    {
     10        locale: "en",
     11        options: {
     12            signDisplay: "auto",
     13        },
     14        values: [
     15            {value: +0, string: "0", parts: [Integer("0")]},
     16            {value: -0, string: "-0", parts: [MinusSign("-"), Integer("0")]},
     17            {value: 0n, string: "0", parts: [Integer("0")]},
     18 
     19            {value:   1, string: "1", parts: [Integer("1")]},
     20            {value:  -1, string: "-1", parts: [MinusSign("-"), Integer("1")]},
     21            {value:  1n, string: "1", parts: [Integer("1")]},
     22            {value: -1n, string: "-1", parts: [MinusSign("-"), Integer("1")]},
     23 
     24            {value: 0.1, string: "0.1", parts: [Integer("0"), Decimal("."), Fraction("1")]},
     25            {value: -0.1, string: "-0.1", parts: [MinusSign("-"), Integer("0"), Decimal("."), Fraction("1")]},
     26 
     27            {value: 0.9, string: "0.9", parts: [Integer("0"), Decimal("."), Fraction("9")]},
     28            {value: -0.9, string: "-0.9", parts: [MinusSign("-"), Integer("0"), Decimal("."), Fraction("9")]},
     29 
     30            {value:  Infinity, string: "∞", parts: [Inf("∞")]},
     31            {value: -Infinity, string: "-∞", parts: [MinusSign("-"), Inf("∞")]},
     32 
     33            {value:  NaN, string: "NaN", parts: [Nan("NaN")]},
     34            {value: -NaN, string: "NaN", parts: [Nan("NaN")]},
     35        ],
     36    },
     37 
     38    // "never": Show the sign on neither positive nor negative numbers.
     39    {
     40        locale: "en",
     41        options: {
     42            signDisplay: "never",
     43        },
     44        values: [
     45            {value: +0, string: "0", parts: [Integer("0")]},
     46            {value: -0, string: "0", parts: [Integer("0")]},
     47            {value: 0n, string: "0", parts: [Integer("0")]},
     48 
     49            {value:   1, string: "1", parts: [Integer("1")]},
     50            {value:  -1, string: "1", parts: [Integer("1")]},
     51            {value:  1n, string: "1", parts: [Integer("1")]},
     52            {value: -1n, string: "1", parts: [Integer("1")]},
     53 
     54            {value: 0.1, string: "0.1", parts: [Integer("0"), Decimal("."), Fraction("1")]},
     55            {value: -0.1, string: "0.1", parts: [Integer("0"), Decimal("."), Fraction("1")]},
     56 
     57            {value: 0.9, string: "0.9", parts: [Integer("0"), Decimal("."), Fraction("9")]},
     58            {value: -0.9, string: "0.9", parts: [Integer("0"), Decimal("."), Fraction("9")]},
     59 
     60            {value:  Infinity, string: "∞", parts: [Inf("∞")]},
     61            {value: -Infinity, string: "∞", parts: [Inf("∞")]},
     62 
     63            {value:  NaN, string: "NaN", parts: [Nan("NaN")]},
     64            {value: -NaN, string: "NaN", parts: [Nan("NaN")]},
     65        ],
     66    },
     67 
     68    // "always": Show the sign on positive and negative numbers including zero.
     69    {
     70        locale: "en",
     71        options: {
     72            signDisplay: "always",
     73        },
     74        values: [
     75            {value: +0, string: "+0", parts: [PlusSign("+"), Integer("0")]},
     76            {value: -0, string: "-0", parts: [MinusSign("-"), Integer("0")]},
     77            {value: 0n, string: "+0", parts: [PlusSign("+"), Integer("0")]},
     78 
     79            {value:   1, string: "+1", parts: [PlusSign("+"), Integer("1")]},
     80            {value:  -1, string: "-1", parts: [MinusSign("-"), Integer("1")]},
     81            {value:  1n, string: "+1", parts: [PlusSign("+"), Integer("1")]},
     82            {value: -1n, string: "-1", parts: [MinusSign("-"), Integer("1")]},
     83 
     84            {value: 0.1, string: "+0.1", parts: [PlusSign("+"), Integer("0"), Decimal("."), Fraction("1")]},
     85            {value: -0.1, string: "-0.1", parts: [MinusSign("-"), Integer("0"), Decimal("."), Fraction("1")]},
     86 
     87            {value: 0.9, string: "+0.9", parts: [PlusSign("+"), Integer("0"), Decimal("."), Fraction("9")]},
     88            {value: -0.9, string: "-0.9", parts: [MinusSign("-"), Integer("0"), Decimal("."), Fraction("9")]},
     89 
     90            {value:  Infinity, string: "+∞", parts: [PlusSign("+"), Inf("∞")]},
     91            {value: -Infinity, string: "-∞", parts: [MinusSign("-"), Inf("∞")]},
     92 
     93            {value:  NaN, string: "+NaN", parts: [PlusSign("+"), Nan("NaN")]},
     94            {value: -NaN, string: "+NaN", parts: [PlusSign("+"), Nan("NaN")]},
     95        ],
     96    },
     97 
     98    // "exceptZero": Show the sign on positive and negative numbers but not zero.
     99    {
    100        locale: "en",
    101        options: {
    102            signDisplay: "exceptZero",
    103        },
    104        values: [
    105            {value: +0, string: "0", parts: [Integer("0")]},
    106            {value: -0, string: "0", parts: [Integer("0")]},
    107            {value: 0n, string: "0", parts: [Integer("0")]},
    108 
    109            {value:   1, string: "+1", parts: [PlusSign("+"), Integer("1")]},
    110            {value:  -1, string: "-1", parts: [MinusSign("-"), Integer("1")]},
    111            {value:  1n, string: "+1", parts: [PlusSign("+"), Integer("1")]},
    112            {value: -1n, string: "-1", parts: [MinusSign("-"), Integer("1")]},
    113 
    114            {value: 0.1, string: "+0.1", parts: [PlusSign("+"), Integer("0"), Decimal("."), Fraction("1")]},
    115            {value: -0.1, string: "-0.1", parts: [MinusSign("-"), Integer("0"), Decimal("."), Fraction("1")]},
    116 
    117            {value: 0.9, string: "+0.9", parts: [PlusSign("+"), Integer("0"), Decimal("."), Fraction("9")]},
    118            {value: -0.9, string: "-0.9", parts: [MinusSign("-"), Integer("0"), Decimal("."), Fraction("9")]},
    119 
    120            {value:  Infinity, string: "+∞", parts: [PlusSign("+"), Inf("∞")]},
    121            {value: -Infinity, string: "-∞", parts: [MinusSign("-"), Inf("∞")]},
    122 
    123            {value:  NaN, string: "NaN", parts: [Nan("NaN")]},
    124            {value: -NaN, string: "NaN", parts: [Nan("NaN")]},
    125        ],
    126    },
    127 
    128    // Tests with suppressed fractional digits.
    129 
    130    // "auto": Show the sign on negative numbers only.
    131    {
    132        locale: "en",
    133        options: {
    134            signDisplay: "auto",
    135            maximumFractionDigits: 0,
    136        },
    137        values: [
    138            {value: +0.1, string: "0", parts: [Integer("0")]},
    139            {value: -0.1, string: "-0", parts: [MinusSign("-"), Integer("0")]},
    140        ],
    141    },
    142 
    143    // "never": Show the sign on neither positive nor negative numbers.
    144    {
    145        locale: "en",
    146        options: {
    147            signDisplay: "never",
    148            maximumFractionDigits: 0,
    149        },
    150        values: [
    151            {value: +0.1, string: "0", parts: [Integer("0")]},
    152            {value: -0.1, string: "0", parts: [Integer("0")]},
    153        ],
    154    },
    155 
    156    // "always": Show the sign on positive and negative numbers including zero.
    157    {
    158        locale: "en",
    159        options: {
    160            signDisplay: "always",
    161            maximumFractionDigits: 0,
    162        },
    163        values: [
    164            {value: +0.1, string: "+0", parts: [PlusSign("+"), Integer("0")]},
    165            {value: -0.1, string: "-0", parts: [MinusSign("-"), Integer("0")]},
    166        ],
    167    },
    168 
    169    // "exceptZero": Show the sign on positive and negative numbers but not zero.
    170    {
    171        locale: "en",
    172        options: {
    173            signDisplay: "exceptZero",
    174            maximumFractionDigits: 0,
    175        },
    176 
    177        values: [
    178            {value: +0.1, string: "0", parts: [Integer("0")]},
    179            {value: -0.1, string: "0", parts: [Integer("0")]},
    180        ],
    181    }
    182 ];
    183 
    184 runNumberFormattingTestcases(testcases);
    185 
    186 if (typeof reportCompare === "function")
    187    reportCompare(true, true);