Closed Bug 1907138 Opened 1 year ago Closed 1 year ago

[wpt-sync] Sync PR 47077 - WebNN: WPT fixes c/o code coverage reports

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox130 fixed)

RESOLVED FIXED
130 Branch
Tracking Status
firefox130 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 47077 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/47077
Details from upstream follow.

Joshua Bell <jsbell@chromium.org> wrote:

WebNN: WPT fixes c/o code coverage reports

Code coverage reports [1] for WebNN input validation logic [2] [3]
turned up several missing cases, some cases where a glitch in the test
data was causing a failure before the intended one, and where helper
functions were producing the wrong test data so skipped code.

  • convTranspose2d(), resample2d(), pooling - validate size members;
    was just validating that 2 sizes were passed.

  • gru()/gruCell()/lstm()/lstmCell() - populate recurrentBias option;
    was incorrectly applying recurrentBias data to bias option.

  • split() - validate when splits option is scalar; ensure that axis is
    valid when not validating it

This doesn't bring code coverage to 100%; there are several more
validation cases in the code where the spec doesn't call out
validation. That is being tracked by a separate audit. Also,
validation for data types is being reworked, so leaving those cases
alone.

1: https://analysis.chromium.org/coverage/p/chromium
2: //services/webnn/public/cpp/graph_validation_utils.cc
3: //third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc
Change-Id: Iff70050500dcb2760b66013ba8bcfe95bb497191
Reviewed-on: https://chromium-review.googlesource.com/5672899
WPT-Export-Revision: f02dabd7f0c93cff4aca14711d2295b3b175f706

CI Results

Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 16 tests and 11 subtests

Status Summary

Firefox

OK : 16
FAIL: 510

Chrome

OK : 16
PASS: 510

Safari

OK : 16
FAIL: 510

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /webnn/validation_tests/convTranspose2d.https.any.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] throw if filter is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with default options.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nchw" and filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nchw" and filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nhwc" and filterLayout="iohw".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nhwc" and filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nhwc" and filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with strides=[3, 2], outputSizes=[10, 8].: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with strides=[3, 2], outputPadding=[1, 1].: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with padding=1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with padding=1, groups=3.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with strides=2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with strides=2 and padding=1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test when the output sizes are explicitly specified, the output padding values are ignored though padding value is not smaller than stride along the same axis.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input is not a 4-D tensor.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input data type is not floating point.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the filter is not a 4-D tensor.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the filter data type doesn't match the input data type.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the length of padding is not 4.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the length of strides is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if one stride value is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the length of dilations is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the one dilation value is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nchw" and filterLayout="iohw".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nchw" and filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nchw" and filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nhwc" and filterLayout="iohw".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels inputLayout="nhwc" and filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nhwc" and filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if output channels is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the groups is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to overflow when calculating the effective filter height.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to overflow when calculating the effective filter width.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to overflow when dilation height is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to overflow when dilation width is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias is not a 1-D tensor.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="iohw".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias data type doesn't match input data type.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the outputPadding is not a sequence of length 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the outputPadding is not smaller than stride along the width dimension.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the outputPadding is not smaller than stride along the height dimension.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the outputSizes is not a sequence of length 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if outputSizes[0] is not greater than 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if outputSizes[1] is not greater than 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the padding height is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the padding width is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to outputSizes values are smaller than the output sizes calculated by not using outputPadding.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to outputSizes values are greater than the output sizes calculated by not using outputPadding.: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/convTranspose2d.https.any.worker.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] throw if filter is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with default options.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nchw" and filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nchw" and filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nhwc" and filterLayout="iohw".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nhwc" and filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with inputLayout="nhwc" and filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with strides=[3, 2], outputSizes=[10, 8].: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with strides=[3, 2], outputPadding=[1, 1].: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with padding=1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with padding=1, groups=3.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with strides=2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test with strides=2 and padding=1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Test when the output sizes are explicitly specified, the output padding values are ignored though padding value is not smaller than stride along the same axis.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input is not a 4-D tensor.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input data type is not floating point.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the filter is not a 4-D tensor.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the filter data type doesn't match the input data type.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the length of padding is not 4.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the length of strides is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if one stride value is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the length of dilations is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the one dilation value is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nchw" and filterLayout="iohw".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nchw" and filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nchw" and filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nhwc" and filterLayout="iohw".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels inputLayout="nhwc" and filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the input channels is not equal to the filter input channels with inputLayout="nhwc" and filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if output channels is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the groups is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to overflow when calculating the effective filter height.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to overflow when calculating the effective filter width.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to overflow when dilation height is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to overflow when dilation width is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias is not a 1-D tensor.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="iohw".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="hwoi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias shape is not equal to [output_channels] with filterLayout="ohwi".: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the bias data type doesn't match input data type.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the outputPadding is not a sequence of length 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the outputPadding is not smaller than stride along the width dimension.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the outputPadding is not smaller than stride along the height dimension.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the outputSizes is not a sequence of length 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if outputSizes[0] is not greater than 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if outputSizes[1] is not greater than 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the padding height is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw if the padding width is too large.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to outputSizes values are smaller than the output sizes calculated by not using outputPadding.: FAIL (Chrome: PASS, Safari: FAIL)
    • [convTranspose2d] Throw due to outputSizes values are greater than the output sizes calculated by not using outputPadding.: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/gru.https.any.worker.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] Test with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] Test with given options: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if steps equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if hiddenSize equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if hiddenSize is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the data type of the inputs is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the rank of input is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if input.dimensions[0] is not equal to steps: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if weight.dimensions[1] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the rank of recurrentWeight is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the recurrentWeight.dimensions is invalid: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the size of options.activations is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the rank of options.bias is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if options.bias.dimensions[1] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if options.recurrentBias.dimensions[1] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the rank of options.initialHiddenState is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if options.initialHiddenState.dimensions[2] is not inputSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the dataType of options.initialHiddenState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if weight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if recurrentWeight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if recurrentBias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if initialHiddenState option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if any activation option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/gru.https.any.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] Test with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] Test with given options: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if steps equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if hiddenSize equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if hiddenSize is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the data type of the inputs is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the rank of input is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if input.dimensions[0] is not equal to steps: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if weight.dimensions[1] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the rank of recurrentWeight is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the recurrentWeight.dimensions is invalid: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the size of options.activations is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the rank of options.bias is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if options.bias.dimensions[1] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if options.recurrentBias.dimensions[1] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the rank of options.initialHiddenState is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if options.initialHiddenState.dimensions[2] is not inputSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] TypeError is expected if the dataType of options.initialHiddenState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if weight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if recurrentWeight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if recurrentBias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if initialHiddenState option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gru] throw if any activation option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/gruCell.https.any.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Test with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Test with given options: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if hiddenSize equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if hiddenSize is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the data type of the inputs is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of input is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the input.dimensions[1] is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of weight is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if rank of weight is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if weight.dimensions[0] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of recurrentWeight is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of recurrentWeight is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the recurrentWeight.dimensions is invalid: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of hiddenState is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of hiddenState is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the hiddenState.dimensions is invalid: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the size of options.activations is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of options.bias is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of options.bias is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if options.bias.dimensions[0] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of options.recurrentBias is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of options.recurrentBias is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if options.recurrentBias.dimensions[0] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if weight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if recurrentWeight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if hiddenState is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if recurrentBias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if any activation option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/gruCell.https.any.worker.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Test with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Test with given options: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if hiddenSize equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if hiddenSize is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the data type of the inputs is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of input is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the input.dimensions[1] is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of weight is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if rank of weight is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if weight.dimensions[0] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of recurrentWeight is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of recurrentWeight is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the recurrentWeight.dimensions is invalid: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of hiddenState is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of hiddenState is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the hiddenState.dimensions is invalid: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the size of options.activations is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of options.bias is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of options.bias is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if options.bias.dimensions[0] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if data type of options.recurrentBias is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if the rank of options.recurrentBias is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] Throw if options.recurrentBias.dimensions[0] is not 3 * hiddenSize: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if weight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if recurrentWeight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if hiddenState is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if recurrentBias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [gruCell] throw if any activation option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/lstm.https.any.worker.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] Test with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] Test with given options: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if hiddenSize equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if hiddenSize is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if steps equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the data type is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the rank of input is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if input.dimensions[0] is not equal to steps: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the shape of weight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the rank of recurrentWeight is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the size of options.activations is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the rank of options.bias is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the shape of options.recurrentBias.dimensions is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the dataType of options.peepholeWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the dataType of options.initialHiddenState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the shape of options.initialCellState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if weight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if recurrentWeight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if recurrentBias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if peepholeWeight option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if initialHiddenState option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if initialCellState option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if any activation option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/lstm.https.any.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] Test with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] Test with given options: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if hiddenSize equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if hiddenSize is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if steps equals to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the data type is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the rank of input is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if input.dimensions[0] is not equal to steps: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the shape of weight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the rank of recurrentWeight is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the size of options.activations is not 3: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the rank of options.bias is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the shape of options.recurrentBias.dimensions is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the dataType of options.peepholeWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the dataType of options.initialHiddenState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] TypeError is expected if the shape of options.initialCellState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if weight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if recurrentWeight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if recurrentBias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if peepholeWeight option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if initialHiddenState option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if initialCellState option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstm] throw if any activation option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/lstmCell.https.any.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if weight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if recurrentWeight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if hiddenState is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if cellState is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if recurrentBias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if peepholeWeight option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if activation option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Test with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Test with given options: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if hiddenSize is equal to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if hiddenSize is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the input data type is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of input is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of input is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of weight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of weight is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of weight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of recurrentWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of recurrentWeight is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of recurrentWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of hiddenState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of hiddenState is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of hiddenState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of cellState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of cellState is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of cellState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of options.bias is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of options.bias is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of options.bias is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of options.recurrentBias is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of options.recurrentBias is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of options.recurrentBias is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of options.peepholeWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of options.peepholeWeight is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of options.peepholeWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the size of options.activations is not 3: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/lstmCell.https.any.worker.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if weight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if recurrentWeight is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if hiddenState is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if cellState is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if bias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if recurrentBias option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if peepholeWeight option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] throw if activation option is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Test with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Test with given options: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if hiddenSize is equal to zero: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if hiddenSize is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the input data type is not one of the floating point types: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of input is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of input is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of weight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of weight is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of weight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of recurrentWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of recurrentWeight is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of recurrentWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of hiddenState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of hiddenState is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of hiddenState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of cellState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of cellState is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of cellState is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of options.bias is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of options.bias is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of options.bias is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of options.recurrentBias is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of options.recurrentBias is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of options.recurrentBias is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the data type of options.peepholeWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the rank of options.peepholeWeight is not 1: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the shape of options.peepholeWeight is incorrect: FAIL (Chrome: PASS, Safari: FAIL)
    • [lstmCell] Throw if the size of options.activations is not 3: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/pooling.https.any.worker.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [averagePool2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [l2Pool2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with default options.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with windowDimensions: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with padding.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides and padding.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides and asymmetric padding.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides, padding and roundingType="floor".: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides, padding and roundingType="ceil".: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with explicit outputSizes ignored roundingType: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides, padding and outputSizes=[3, 3].: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides, padding and outputSizes=[4, 4].: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with layout="nchw".: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with layout="nhwc".: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the input is not a 4-D tensor.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the output sizes is incorrect.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of output sizes is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if outputSizes[0] is not greater than 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if outputSizes[1] is not greater than 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of window dimensions is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if any window dimension is lesser than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the input height is too small to fill the pool window height.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the input width is too small to fill the pool window width.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the calculated output height is equal to 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the calculated output width is equal to 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of padding is not 4.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of strides is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if one stride value is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of dilations is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if one dilation value is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the padding height value is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the padding width value is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] Test maxPool2d with data type int32: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] Test maxPool2d with data type uint32: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] Test maxPool2d with data type int8: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] Test maxPool2d with data type uint8: FAIL (Chrome: PASS, Safari: FAIL)
    • [averagePool2d] Throw if the input data type is not floating point: FAIL (Chrome: PASS, Safari: FAIL)
    • [l2Pool2d] Throw if the input data type is not floating point: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/pooling.https.any.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [averagePool2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [l2Pool2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with default options.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with windowDimensions: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with padding.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides and padding.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides and asymmetric padding.: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides, padding and roundingType="floor".: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides, padding and roundingType="ceil".: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with explicit outputSizes ignored roundingType: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides, padding and outputSizes=[3, 3].: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with strides, padding and outputSizes=[4, 4].: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with layout="nchw".: FAIL (Chrome: PASS, Safari: FAIL)
    • Test pool2d with layout="nhwc".: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the input is not a 4-D tensor.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the output sizes is incorrect.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of output sizes is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if outputSizes[0] is not greater than 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if outputSizes[1] is not greater than 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of window dimensions is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if any window dimension is lesser than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the input height is too small to fill the pool window height.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the input width is too small to fill the pool window width.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the calculated output height is equal to 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the calculated output width is equal to 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of padding is not 4.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of strides is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if one stride value is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the length of dilations is not 2.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if one dilation value is smaller than 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the padding height value is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • Throw if the padding width value is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] Test maxPool2d with data type int32: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] Test maxPool2d with data type uint32: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] Test maxPool2d with data type int8: FAIL (Chrome: PASS, Safari: FAIL)
    • [maxPool2d] Test maxPool2d with data type uint8: FAIL (Chrome: PASS, Safari: FAIL)
    • [averagePool2d] Throw if the input data type is not floating point: FAIL (Chrome: PASS, Safari: FAIL)
    • [l2Pool2d] Throw if the input data type is not floating point: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/resample2d.https.any.worker.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[2.0, 2.0]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[0.5, 0.5]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with input's dataType = float16: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[0.5, 0.5] and explicit axes=[2, 3]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[1.0, 2.0] and axes=[0, 1]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[2.0, 2.0] and axes=[1, 2]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with sizes=[3, 6] ignored scales: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the dataType of input is not float32 or float16: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the rank of input is not 4: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the length of scales is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if any scale value is negative: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if any scale value is 0: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the length of sizes is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if sizes[0] is not a valid dimension: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if sizes[1] is not a valid dimension: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if input data type is not floating type: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if any size value is out of 'unsigned long' value range: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if outputHeight being floor(scaleHeight*inputHeight) is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if scaleHeight is too small: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if outputWidth being floor(scaleWidth*inputWidth) is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if scaleWidth is too small: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the length of axes is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if any axis value is greater than or equal to the input rank: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the values of axes are inconsecutive: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the values of axes are same: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/resample2d.https.any.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with default options: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[2.0, 2.0]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[0.5, 0.5]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with input's dataType = float16: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[0.5, 0.5] and explicit axes=[2, 3]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[1.0, 2.0] and axes=[0, 1]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with scales=[2.0, 2.0] and axes=[1, 2]: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Test building resample2d with sizes=[3, 6] ignored scales: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the dataType of input is not float32 or float16: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the rank of input is not 4: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the length of scales is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if any scale value is negative: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if any scale value is 0: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the length of sizes is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if sizes[0] is not a valid dimension: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if sizes[1] is not a valid dimension: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if input data type is not floating type: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if any size value is out of 'unsigned long' value range: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if outputHeight being floor(scaleHeight*inputHeight) is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if scaleHeight is too small: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if outputWidth being floor(scaleWidth*inputWidth) is too large: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if scaleWidth is too small: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the length of axes is not 2: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if any axis value is greater than or equal to the input rank: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the values of axes are inconsecutive: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] Throw if the values of axes are same: FAIL (Chrome: PASS, Safari: FAIL)
    • [resample2d] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/split.https.any.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [split] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Test with default options.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Test with a sequence of unsigned long splits and with options.axis = 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if splitting a scalar.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if axis is larger than input rank.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if splits is equal to 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if splits (scalar) is equal to 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if the splits can not evenly divide the dimension size of input along options.axis.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if splits (scalar) can not evenly divide the dimension size of input along options.axis.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if the sum of splits sizes not equal to the dimension size of input along options.axis.: FAIL (Chrome: PASS, Safari: FAIL)
  • /webnn/validation_tests/split.https.any.worker.html [wpt.fyi]
    • assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator"): FAIL (Chrome: PASS, Safari: FAIL)
    • [split] throw if input is from another builder: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Test with default options.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Test with a sequence of unsigned long splits and with options.axis = 1.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if splitting a scalar.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if axis is larger than input rank.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if splits is equal to 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if splits (scalar) is equal to 0.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if the splits can not evenly divide the dimension size of input along options.axis.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if splits (scalar) can not evenly divide the dimension size of input along options.axis.: FAIL (Chrome: PASS, Safari: FAIL)
    • [split] Throw if the sum of splits sizes not equal to the dimension size of input along options.axis.: FAIL (Chrome: PASS, Safari: FAIL)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/83275a19232b [wpt PR 47077] - WebNN: WPT fixes c/o code coverage reports, a=testonly
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 130 Branch
You need to log in before you can comment on or make changes to this bug.