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