diff --git a/testing/web-platform/tests/webnn/conformance_tests/logical_and.https.any.js b/testing/web-platform/tests/webnn/conformance_tests/logical_and.https.any.js new file mode 100644 index 000000000000..e08f5ffcfffd --- /dev/null +++ b/testing/web-platform/tests/webnn/conformance_tests/logical_and.https.any.js @@ -0,0 +1,2753 @@ +' +use +strict +' +; +const +logicalAndTests += +[ +{ +' +name +' +: +' +logicalAnd +uint8 +0D +scalar +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +1D +constant +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +' +constant +' +: +true +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +' +constant +' +: +true +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +1D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +2D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +3D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +4D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +5D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +broadcast +0D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +broadcast +1D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +1 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +broadcast +2D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +broadcast +3D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +0 +0 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalAnd +uint8 +broadcast +4D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +1 +1 +1 +1 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalAnd +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +] +; +if +( +navigator +. +ml +) +{ +logicalAndTests +. +forEach +( +( +test +) += +> +{ +webnn_conformance_test +( +buildGraphAndCompute +getPrecisionTolerance +test +) +; +} +) +; +} +else +{ +test +( +( +) += +> +assert_implements +( +navigator +. +ml +' +missing +navigator +. +ml +' +) +) +; +} diff --git a/testing/web-platform/tests/webnn/conformance_tests/logical_or.https.any.js b/testing/web-platform/tests/webnn/conformance_tests/logical_or.https.any.js new file mode 100644 index 000000000000..9c386544cc99 --- /dev/null +++ b/testing/web-platform/tests/webnn/conformance_tests/logical_or.https.any.js @@ -0,0 +1,2753 @@ +' +use +strict +' +; +const +logicalOrTests += +[ +{ +' +name +' +: +' +logicalOr +uint8 +0D +scalar +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +1D +constant +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +' +constant +' +: +true +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +' +constant +' +: +true +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +1D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +2D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +3D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +4D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +5D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +broadcast +0D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +broadcast +1D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +1 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +broadcast +2D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +1 +1 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +1 +1 +1 +1 +0 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +broadcast +3D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +0 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalOr +uint8 +broadcast +4D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +1 +1 +1 +1 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalOr +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +] +; +if +( +navigator +. +ml +) +{ +logicalOrTests +. +forEach +( +( +test +) += +> +{ +webnn_conformance_test +( +buildGraphAndCompute +getPrecisionTolerance +test +) +; +} +) +; +} +else +{ +test +( +( +) += +> +assert_implements +( +navigator +. +ml +' +missing +navigator +. +ml +' +) +) +; +} diff --git a/testing/web-platform/tests/webnn/conformance_tests/logical_xor.https.any.js b/testing/web-platform/tests/webnn/conformance_tests/logical_xor.https.any.js new file mode 100644 index 000000000000..709635446048 --- /dev/null +++ b/testing/web-platform/tests/webnn/conformance_tests/logical_xor.https.any.js @@ -0,0 +1,2753 @@ +' +use +strict +' +; +const +logicalXorTests += +[ +{ +' +name +' +: +' +logicalXor +uint8 +0D +scalar +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +1D +constant +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +' +constant +' +: +true +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +' +constant +' +: +true +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +1D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +24 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +2D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +4 +6 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +3D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +4 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +4D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +5D +tensors +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +broadcast +0D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +broadcast +1D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +1 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +broadcast +2D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +0 +1 +1 +1 +0 +0 +1 +0 +0 +0 +1 +1 +0 +1 +1 +1 +0 +0 +1 +0 +0 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +broadcast +3D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +0 +0 +1 +1 +0 +0 +2 +2 +0 +0 +8 +8 +0 +0 +8 +8 +0 +0 +255 +255 +0 +0 +255 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +255 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +1 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +0 +1 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +{ +' +name +' +: +' +logicalXor +uint8 +broadcast +4D +to +4D +' +' +graph +' +: +{ +' +inputs +' +: +{ +' +inputA +' +: +{ +' +data +' +: +[ +1 +] +' +descriptor +' +: +{ +shape +: +[ +1 +1 +1 +1 +] +dataType +: +' +uint8 +' +} +} +' +inputB +' +: +{ +' +data +' +: +[ +0 +1 +0 +1 +0 +2 +0 +2 +0 +8 +0 +8 +0 +2 +0 +2 +0 +255 +0 +255 +0 +8 +0 +8 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +' +operators +' +: +[ +{ +' +name +' +: +' +logicalXor +' +' +arguments +' +: +[ +{ +' +a +' +: +' +inputA +' +} +{ +' +b +' +: +' +inputB +' +} +] +' +outputs +' +: +' +output +' +} +] +' +expectedOutputs +' +: +{ +' +output +' +: +{ +' +data +' +: +[ +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +1 +0 +] +' +descriptor +' +: +{ +shape +: +[ +2 +2 +2 +3 +] +dataType +: +' +uint8 +' +} +} +} +} +} +] +; +if +( +navigator +. +ml +) +{ +logicalXorTests +. +forEach +( +( +test +) += +> +{ +webnn_conformance_test +( +buildGraphAndCompute +getPrecisionTolerance +test +) +; +} +) +; +} +else +{ +test +( +( +) += +> +assert_implements +( +navigator +. +ml +' +missing +navigator +. +ml +' +) +) +; +} diff --git a/testing/web-platform/tests/webnn/validation_tests/elementwise-logical.https.any.js b/testing/web-platform/tests/webnn/validation_tests/elementwise-logical.https.any.js index 436412759566..98d7d8a80032 100644 --- a/testing/web-platform/tests/webnn/validation_tests/elementwise-logical.https.any.js +++ b/testing/web-platform/tests/webnn/validation_tests/elementwise-logical.https.any.js @@ -22,6 +22,15 @@ lesser ' lesserOrEqual ' +' +logicalAnd +' +' +logicalOr +' +' +logicalXor +' ] ; const