tor-browser

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

unit.js (4461B)


      1 // |reftest| skip-if(!this.hasOwnProperty("Intl"))
      2 
      3 const {
      4    Nan, Inf, Integer, MinusSign, PlusSign, Literal,
      5    Unit
      6 } = NumberFormatParts;
      7 
      8 const testcases = [
      9    {
     10        locale: "en",
     11        options: {
     12            style: "unit",
     13            unit: "meter",
     14            unitDisplay: "short",
     15        },
     16        values: [
     17            {value: +0, string: "0 m", parts: [Integer("0"), Literal(" "), Unit("m")]},
     18            {value: -0, string: "-0 m", parts: [MinusSign("-"), Integer("0"), Literal(" "), Unit("m")]},
     19            {value: 0n, string: "0 m", parts: [Integer("0"), Literal(" "), Unit("m")]},
     20 
     21            {value:   1, string: "1 m", parts: [Integer("1"), Literal(" "), Unit("m")]},
     22            {value:  -1, string: "-1 m", parts: [MinusSign("-"), Integer("1"), Literal(" "), Unit("m")]},
     23            {value:  1n, string: "1 m", parts: [Integer("1"), Literal(" "), Unit("m")]},
     24            {value: -1n, string: "-1 m", parts: [MinusSign("-"), Integer("1"), Literal(" "), Unit("m")]},
     25 
     26            {value:  Infinity, string: "∞ m", parts: [Inf("∞"), Literal(" "), Unit("m")]},
     27            {value: -Infinity, string: "-∞ m", parts: [MinusSign("-"), Inf("∞"), Literal(" "), Unit("m")]},
     28 
     29            {value:  NaN, string: "NaN m", parts: [Nan("NaN"), Literal(" "), Unit("m")]},
     30            {value: -NaN, string: "NaN m", parts: [Nan("NaN"), Literal(" "), Unit("m")]},
     31        ],
     32    },
     33 
     34    {
     35        locale: "en",
     36        options: {
     37            style: "unit",
     38            unit: "meter",
     39            unitDisplay: "narrow",
     40        },
     41        values: [
     42            {value: +0, string: "0m", parts: [Integer("0"), Unit("m")]},
     43            {value: -0, string: "-0m", parts: [MinusSign("-"), Integer("0"), Unit("m")]},
     44            {value: 0n, string: "0m", parts: [Integer("0"), Unit("m")]},
     45 
     46            {value:   1, string: "1m", parts: [Integer("1"), Unit("m")]},
     47            {value:  -1, string: "-1m", parts: [MinusSign("-"), Integer("1"), Unit("m")]},
     48            {value:  1n, string: "1m", parts: [Integer("1"), Unit("m")]},
     49            {value: -1n, string: "-1m", parts: [MinusSign("-"), Integer("1"), Unit("m")]},
     50 
     51            {value:  Infinity, string: "∞m", parts: [Inf("∞"), Unit("m")]},
     52            {value: -Infinity, string: "-∞m", parts: [MinusSign("-"), Inf("∞"), Unit("m")]},
     53 
     54            {value:  NaN, string: "NaNm", parts: [Nan("NaN"), Unit("m")]},
     55            {value: -NaN, string: "NaNm", parts: [Nan("NaN"), Unit("m")]},
     56        ],
     57    },
     58 
     59    {
     60        locale: "en",
     61        options: {
     62            style: "unit",
     63            unit: "meter",
     64            unitDisplay: "long",
     65        },
     66        values: [
     67            {value: +0, string: "0 meters", parts: [Integer("0"), Literal(" "), Unit("meters")]},
     68            {value: -0, string: "-0 meters", parts: [MinusSign("-"), Integer("0"), Literal(" "), Unit("meters")]},
     69            {value: 0n, string: "0 meters", parts: [Integer("0"), Literal(" "), Unit("meters")]},
     70 
     71            {value:   1, string: "1 meter", parts: [Integer("1"), Literal(" "), Unit("meter")]},
     72            {value:  -1, string: "-1 meter", parts: [MinusSign("-"), Integer("1"), Literal(" "), Unit("meter")]},
     73            {value:  1n, string: "1 meter", parts: [Integer("1"), Literal(" "), Unit("meter")]},
     74            {value: -1n, string: "-1 meter", parts: [MinusSign("-"), Integer("1"), Literal(" "), Unit("meter")]},
     75 
     76            {value:  Infinity, string: "∞ meters", parts: [Inf("∞"), Literal(" "), Unit("meters")]},
     77            {value: -Infinity, string: "-∞ meters", parts: [MinusSign("-"), Inf("∞"), Literal(" "), Unit("meters")]},
     78 
     79            {value:  NaN, string: "NaN meters", parts: [Nan("NaN"), Literal(" "), Unit("meters")]},
     80            {value: -NaN, string: "NaN meters", parts: [Nan("NaN"), Literal(" "), Unit("meters")]},
     81        ],
     82    },
     83 
     84    // Ensure the correct compound unit is automatically selected by ICU. For
     85    // example instead of "50 chilometri al orari", 50 km/h should return
     86    // "50 chilometri orari" in Italian.
     87 
     88    {
     89        locale: "it",
     90        options: {
     91            style: "unit",
     92            unit: "kilometer-per-hour",
     93            unitDisplay: "long",
     94        },
     95        values: [
     96            {value: 50, string: "50 chilometri orari", parts: [Integer("50"), Literal(" "), Unit("chilometri orari")]},
     97        ],
     98    },
     99 ];
    100 
    101 runNumberFormattingTestcases(testcases);
    102 
    103 if (typeof reportCompare === "function")
    104    reportCompare(true, true);