1
0
Fork 0
firefox/testing/web-platform/tests/fledge/tentative/round-a-value.https.window.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

162 lines
5.4 KiB
JavaScript

// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/common/utils.js
// META: script=resources/fledge-util.sub.js
// META: timeout=long
"use strict";
promise_test(async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ generateBid:
`return {'adCost': 1.99,
'bid': 9,
'render': interestGroup.ads[0].renderURL};`,
reportWinSuccessCondition:
// Possible stochastic rounding results for 1.99
`browserSignals.adCost === 1.9921875 || browserSignals.adCost === 1.984375`,
reportWin:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Check adCost is stochastically rounded with 8 bit mantissa and exponent.');
promise_test(async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ generateBid:
`return {'bid': 1.99,
'render': interestGroup.ads[0].renderURL};`,
reportWinSuccessCondition:
// Possible stochastic rounding results for 1.99
`browserSignals.bid === 1.9921875 || browserSignals.bid === 1.984375`,
reportWin:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Check bid is stochastically rounded with 8 bit mantissa and exponent.');
promise_test(async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ scoreAd:
`return {desirability: 1.99,
allowComponentAuction: false}`,
reportResultSuccessCondition:
// Possible stochastic rounding results for 1.99
`browserSignals.desirability === 1.9921875 || browserSignals.desirability === 1.984375`,
reportResult:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Check desirability is stochastically rounded with 8 bit mantissa and exponent.');
promise_test(async test => {
const uuid = generateUuid(test);
await joinInterestGroup(test, uuid,
{
biddingLogicURL: createBiddingScriptURL({ bid: 1.99 }),
name: 'other interest group 1' });
await runReportTest(
test, uuid,
{ reportResultSuccessCondition:
// Possible stochastic rounding results for 1.99
`browserSignals.highestScoringOtherBid === 1.9921875 || browserSignals.highestScoringOtherBid === 1.984375`,
reportResult:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Check highestScoringOtherBid is stochastically rounded with 8 bit mantissa and exponent.');
promise_test(async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ generateBid:
`return {'adCost': 2,
'bid': 9,
'render': interestGroup.ads[0].renderURL};`,
reportWinSuccessCondition:
`browserSignals.adCost === 2`,
reportWin:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Value is ignored as a non-valid floating-point number.');
promise_test(async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ generateBid:
`return {'adCost': 1E-46,
'bid': 9,
'render': interestGroup.ads[0].renderURL};`,
reportWinSuccessCondition:
`browserSignals.adCost === 0`,
reportWin:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Value is rounded to 0 if value is greater than 0 and its exponent is less than -128.');
promise_test(async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ generateBid:
`return {'adCost': -1E-46,
'bid': 9,
'render': interestGroup.ads[0].renderURL};`,
reportWinSuccessCondition:
`browserSignals.adCost === -0`,
reportWin:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Value is rounded to -0 if value is greater than 0 and its exponent is less than -128.');
promise_test(async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ generateBid:
`return {'adCost': 1E+39,
'bid': 9,
'render': interestGroup.ads[0].renderURL};`,
reportWinSuccessCondition:
`browserSignals.adCost === Infinity`,
reportWin:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Value is rounded to Infinity if value is greater than 0 and its exponent is greater than 127.');
promise_test(async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ generateBid:
`return {'adCost': -1E+39,
'bid': 9,
'render': interestGroup.ads[0].renderURL};`,
reportWinSuccessCondition:
`browserSignals.adCost === -Infinity`,
reportWin:
`sendReportTo('${createBidderReportURL(uuid)}');` },
// expectedReportURLs
[createBidderReportURL(uuid)]
);
}, 'Value is rounded to -Infinity if value is less than 0 and its exponent is greater than 127.');