| // META: title=validation tests for WebNN API cast operation |
| // META: global=window |
| // META: variant=?cpu |
| // META: variant=?gpu |
| // META: variant=?npu |
| // META: script=../resources/utils_validation.js |
| |
| 'use strict'; |
| |
| multi_builder_test(async (t, builder, otherBuilder) => { |
| const inputFromOtherBuilder = |
| otherBuilder.input('input', {dataType: 'int32', shape: [2, 2]}); |
| |
| assert_throws_js( |
| TypeError, () => builder.cast(inputFromOtherBuilder, 'int64')); |
| }, '[cast] throw if input is from another builder'); |
| |
| promise_test(async t => { |
| const builder = new MLGraphBuilder(context); |
| const input = builder.input('input', { |
| dataType: 'int8', |
| shape: [context.opSupportLimits().maxTensorByteLength / 2]}); |
| assert_throws_js( |
| TypeError, () => builder.cast(input, 'int64')); |
| }, '[cast] throw if the output tensor byte length exceeds limit'); |