tor-browser

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

round-a-value.https.window.js (5545B)


      1 // META: script=/resources/testdriver.js
      2 // META: script=/resources/testdriver-vendor.js
      3 // META: script=/common/utils.js
      4 // META: script=resources/fledge-util.sub.js
      5 // META: timeout=long
      6 
      7 "use strict";
      8 
      9 promise_test(async test => {
     10  const uuid = generateUuid(test);
     11  await runReportTest(
     12    test, uuid,
     13    { generateBid:
     14        `return {'adCost': 1.99,
     15                 'bid': 9,
     16                 'render': interestGroup.ads[0].renderURL};`,
     17      reportWinSuccessCondition:
     18        // Possible stochastic rounding results for 1.99
     19        `browserSignals.adCost === 1.9921875 || browserSignals.adCost === 1.984375`,
     20      reportWin:
     21        `sendReportTo('${createBidderReportURL(uuid)}');` },
     22    // expectedReportURLs
     23    [createBidderReportURL(uuid)]
     24  );
     25 }, 'Check adCost is stochastically rounded with 8 bit mantissa and exponent.');
     26 
     27 promise_test(async test => {
     28  const uuid = generateUuid(test);
     29  await runReportTest(
     30    test, uuid,
     31    { generateBid:
     32        `return {'bid': 1.99,
     33                 'render': interestGroup.ads[0].renderURL};`,
     34      reportWinSuccessCondition:
     35        // Possible stochastic rounding results for 1.99
     36        `browserSignals.bid === 1.9921875 || browserSignals.bid === 1.984375`,
     37      reportWin:
     38        `sendReportTo('${createBidderReportURL(uuid)}');` },
     39    // expectedReportURLs
     40    [createBidderReportURL(uuid)]
     41  );
     42 }, 'Check bid is stochastically rounded with 8 bit mantissa and exponent.');
     43 
     44 promise_test(async test => {
     45  const uuid = generateUuid(test);
     46  await runReportTest(
     47    test, uuid,
     48    { scoreAd:
     49        `return {desirability: 1.99,
     50                 allowComponentAuction: false}`,
     51      reportResultSuccessCondition:
     52        // Possible stochastic rounding results for 1.99
     53        `browserSignals.desirability === 1.9921875 || browserSignals.desirability === 1.984375`,
     54      reportResult:
     55        `sendReportTo('${createBidderReportURL(uuid)}');` },
     56    // expectedReportURLs
     57    [createBidderReportURL(uuid)]
     58  );
     59 }, 'Check desirability is stochastically rounded with 8 bit mantissa and exponent.');
     60 
     61 promise_test(async test => {
     62  const uuid = generateUuid(test);
     63  await joinInterestGroup(test, uuid,
     64    {
     65      biddingLogicURL: createBiddingScriptURL({ bid: 1.99 }),
     66      name: 'other interest group 1' });
     67  await runReportTest(
     68    test, uuid,
     69    { reportResultSuccessCondition:
     70        // Possible stochastic rounding results for 1.99
     71        `browserSignals.highestScoringOtherBid === 1.9921875 || browserSignals.highestScoringOtherBid === 1.984375`,
     72      reportResult:
     73      `sendReportTo('${createBidderReportURL(uuid)}');` },
     74    // expectedReportURLs
     75    [createBidderReportURL(uuid)]
     76  );
     77 }, 'Check highestScoringOtherBid is stochastically rounded with 8 bit mantissa and exponent.');
     78 
     79 promise_test(async test => {
     80  const uuid = generateUuid(test);
     81  await runReportTest(
     82    test, uuid,
     83    { generateBid:
     84        `return {'adCost': 2,
     85                 'bid': 9,
     86                 'render': interestGroup.ads[0].renderURL};`,
     87      reportWinSuccessCondition:
     88        `browserSignals.adCost === 2`,
     89      reportWin:
     90        `sendReportTo('${createBidderReportURL(uuid)}');` },
     91    // expectedReportURLs
     92    [createBidderReportURL(uuid)]
     93  );
     94 }, 'Value is ignored as a non-valid floating-point number.');
     95 
     96 promise_test(async test => {
     97  const uuid = generateUuid(test);
     98  await runReportTest(
     99    test, uuid,
    100    { generateBid:
    101        `return {'adCost': 1E-46,
    102                 'bid': 9,
    103                 'render': interestGroup.ads[0].renderURL};`,
    104      reportWinSuccessCondition:
    105        `browserSignals.adCost === 0`,
    106      reportWin:
    107        `sendReportTo('${createBidderReportURL(uuid)}');` },
    108    // expectedReportURLs
    109    [createBidderReportURL(uuid)]
    110  );
    111 }, 'Value is rounded to 0 if value is greater than 0 and its exponent is less than -128.');
    112 
    113 promise_test(async test => {
    114  const uuid = generateUuid(test);
    115  await runReportTest(
    116    test, uuid,
    117    { generateBid:
    118        `return {'adCost': -1E-46,
    119                 'bid': 9,
    120                 'render': interestGroup.ads[0].renderURL};`,
    121      reportWinSuccessCondition:
    122        `browserSignals.adCost === -0`,
    123      reportWin:
    124        `sendReportTo('${createBidderReportURL(uuid)}');` },
    125    // expectedReportURLs
    126    [createBidderReportURL(uuid)]
    127  );
    128 }, 'Value is rounded to -0 if value is greater than 0 and its exponent is less than -128.');
    129 
    130 promise_test(async test => {
    131  const uuid = generateUuid(test);
    132  await runReportTest(
    133    test, uuid,
    134    { generateBid:
    135        `return {'adCost': 1E+39,
    136                 'bid': 9,
    137                 'render': interestGroup.ads[0].renderURL};`,
    138      reportWinSuccessCondition:
    139        `browserSignals.adCost === Infinity`,
    140      reportWin:
    141        `sendReportTo('${createBidderReportURL(uuid)}');` },
    142    // expectedReportURLs
    143    [createBidderReportURL(uuid)]
    144  );
    145 }, 'Value is rounded to Infinity if value is greater than 0 and its exponent is greater than 127.');
    146 
    147 promise_test(async test => {
    148  const uuid = generateUuid(test);
    149  await runReportTest(
    150    test, uuid,
    151    { generateBid:
    152        `return {'adCost': -1E+39,
    153                 'bid': 9,
    154                 'render': interestGroup.ads[0].renderURL};`,
    155      reportWinSuccessCondition:
    156        `browserSignals.adCost === -Infinity`,
    157      reportWin:
    158        `sendReportTo('${createBidderReportURL(uuid)}');` },
    159    // expectedReportURLs
    160    [createBidderReportURL(uuid)]
    161  );
    162 }, 'Value is rounded to -Infinity if value is less than 0 and its exponent is greater than 127.');