// META: title=validation tests for WebNN API leakyRelu operation // META: global=window // META: variant=?cpu // META: variant=?gpu // META: variant=?npu // META: script=../resources/utils_validation.js 'use strict'; validateInputFromAnotherBuilder('leakyRelu'); const label = 'leaky_relu'; validateSingleInputOperation('leakyRelu', label); promise_test(async t => { const builder = new MLGraphBuilder(context); const options = {alpha: 0.02}; const input = builder.input('input', {dataType: 'float32', shape: [1, 2, 3]}); const output = builder.leakyRelu(input, options); assert_equals(output.dataType, 'float32'); assert_array_equals(output.shape, [1, 2, 3]); }, '[leakyRelu] Build with options'); promise_test(async t => { const builder = new MLGraphBuilder(context); const options = {alpha: Infinity}; const input = builder.input('input', {dataType: 'float16', shape: []}); assert_throws_js(TypeError, () => builder.leakyRelu(input, options)); }, '[leakyRelu] Throw if options.alpha is Infinity'); promise_test(async t => { const builder = new MLGraphBuilder(context); const options = {alpha: -NaN}; const input = builder.input('input', {dataType: 'float32', shape: [1]}); assert_throws_js(TypeError, () => builder.leakyRelu(input, options)); }, '[leakyRelu] Throw if options.alpha is -NaN');