From 17f2b040f6d762577b1ed3d34ac3bcb904a8b6e8 Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Sun, 17 May 2026 18:49:24 +1000 Subject: [PATCH 1/8] migrate to new rustnn mlcontext interface --- src/python/context.rs | 1213 +++-------------------------------- src/python/graph.rs | 28 +- src/python/graph_builder.rs | 43 +- src/python/mod.rs | 1 + src/python/tensor.rs | 351 ++-------- 5 files changed, 205 insertions(+), 1431 deletions(-) diff --git a/src/python/context.rs b/src/python/context.rs index 7d040c8..1c1b676 100644 --- a/src/python/context.rs +++ b/src/python/context.rs @@ -1,44 +1,22 @@ -//! ML context and backend selection for WebNN API +//! ML context and backend selection for WebNN API //! //! PyO3 macros generate unsafe code that triggers unsafe_op_in_unsafe_fn warnings. //! This is expected behavior from the macro-generated code. #![allow(unsafe_op_in_unsafe_fn)] #![allow(clippy::useless_conversion)] +use super::context_state::{ + build_context_options, compute_with_dispatch, create_rustnn_tensor, read_rustnn_tensor, + write_rustnn_tensor, ContextState, +}; use super::graph::PyMLGraph; use super::graph_builder::PyMLGraphBuilder; -use super::operand::parse_data_type; -use super::tensor::PyMLTensor; +use super::tensor::{PyMLDeviceTensor, PyMLTensor}; use pyo3::prelude::*; use pyo3::types::PyDict; use rustnn::converters::GraphConverter; -use rustnn::debug_print; -use rustnn::graph::{get_static_or_max_size, to_dimension_vector, OperandDescriptor}; -use rustnn::Operation; - -#[cfg(feature = "onnx-runtime")] -use rustnn::executors::onnx::{run_onnx_with_inputs, OnnxInput}; -#[cfg(feature = "onnx-runtime")] -use std::borrow::Cow; - -#[cfg(all(target_os = "macos", feature = "coreml-runtime"))] -use rustnn::executors::coreml::run_coreml_zeroed_cached_with_weights; - -/// Backend execution engine selected at context creation -#[derive(Debug, Clone, Copy, PartialEq)] -#[allow(dead_code)] -enum Backend { - /// ONNX Runtime (CPU execution) - OnnxCpu, - /// ONNX Runtime (GPU execution) - OnnxGpu, - /// CoreML (macOS Neural Engine or GPU) - CoreML, - /// TensorRT (NVIDIA GPU execution) - TensorRT, - /// No backend available (returns zeros) - None, -} +use rustnn::graph::GraphInfo; +use std::sync::Mutex; /// ML namespace - entry point for WebNN API #[pyclass(name = "ML")] @@ -76,26 +54,22 @@ impl PyML { accelerated: bool, device_type: &str, ) -> PyResult { - Ok(PyMLContext::new( + PyMLContext::new( power_preference.to_string(), accelerated, device_type.to_string(), - )) + ) } } /// MLContext manages the execution environment for neural network graphs -#[pyclass(name = "MLContext")] +#[pyclass(name = "MLContext", unsendable)] pub struct PyMLContext { power_preference: String, - _accelerated_requested: bool, - accelerated_available: bool, - backend: Backend, - - /// Cached ONNX Runtime session for device tensor reuse - /// This enables zero-copy execution by keeping the session alive across operations - #[cfg(feature = "onnx-runtime")] - onnx_session: std::sync::Arc>>>, + #[allow(dead_code)] + accelerated_requested: bool, + device_type: String, + state: Mutex, } #[pymethods] @@ -104,8 +78,8 @@ impl PyMLContext { /// /// Returns: /// MLGraphBuilder: A new graph builder - fn create_graph_builder(&self) -> PyResult { - Ok(PyMLGraphBuilder::create()) + fn create_graph_builder(this: Py) -> PyResult { + Ok(PyMLGraphBuilder::new_for_context(this)) } /// Compute the graph with given inputs using the backend selected at context creation @@ -121,57 +95,16 @@ impl PyMLContext { /// Dictionary mapping output names to result numpy arrays #[pyo3(signature = (graph, inputs, _outputs=None))] fn compute( - &self, + this: Py, py: Python, - graph: &PyMLGraph, + graph: &mut PyMLGraph, inputs: &Bound<'_, PyDict>, _outputs: Option<&Bound<'_, PyDict>>, ) -> PyResult> { - // Validate slice ops: starts/sizes live on `Operation::Slice`, not only in MLSliceOptions (strides). - for (idx, op) in graph.graph_info.operations.iter().enumerate() { - if let Operation::Slice { - input, - starts, - sizes, - .. - } = op - { - if starts.len() != sizes.len() { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Slice operation at index {} has mismatched starts/sizes (starts.len()={}, sizes.len()={}).", - idx, - starts.len(), - sizes.len() - ))); - } - let both_empty = starts.is_empty() && sizes.is_empty(); - if both_empty { - let input_rank = graph - .graph_info - .operand(*input) - .map(|operand| operand.descriptor.static_or_max_shape().len()) - .unwrap_or(usize::MAX); - if input_rank != 0 { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Slice operation at index {} has empty starts/sizes but input rank is {} (only 0D no-op slice may have empty starts/sizes).", - idx, input_rank - ))); - } - } - } - } - - // Route to appropriate backend based on context's backend selection - match self.backend { - Backend::OnnxCpu | Backend::OnnxGpu => self.compute_onnx(py, graph, inputs), - Backend::CoreML => self.compute_coreml(py, graph, inputs), - Backend::TensorRT => self.compute_trtx(py, graph, inputs), - Backend::None => { - Err(pyo3::exceptions::PyRuntimeError::new_err( - "No backend available: build without onnx-runtime/coreml-runtime/trtx-runtime features", - )) - } - } + let bound = this.bind(py); + let ctx = bound.borrow(); + let mut state = ctx.state.lock().unwrap(); + compute_with_dispatch(py, &mut state, graph, &this, inputs) } /// Dispatch graph execution with MLTensor or MLDeviceTensor inputs/outputs @@ -192,142 +125,43 @@ impl PyMLContext { /// which is critical for iterative GenAI workloads like KV cache. #[pyo3(signature = (graph, inputs, outputs))] fn dispatch( - &self, + this: Py, py: Python, - graph: &PyMLGraph, + graph: &mut PyMLGraph, inputs: &Bound<'_, PyDict>, outputs: &Bound<'_, PyDict>, ) -> PyResult<()> { - use super::tensor::PyMLDeviceTensor; - - // Check if we have any device tensors - let mut has_device_tensors = false; - for (_, value) in inputs.iter() { + for (_, value) in inputs.iter().chain(outputs.iter()) { if value.cast::().is_ok() { - has_device_tensors = true; - break; - } - } - - if !has_device_tensors { - for (_, value) in outputs.iter() { - if value.cast::().is_ok() { - has_device_tensors = true; - break; - } + return Err(pyo3::exceptions::PyRuntimeError::new_err( + "MLDeviceTensor is not supported on the rustnn MLContext execution path", + )); } } - // Route to appropriate execution path - if has_device_tensors { - self.dispatch_with_device_tensors(py, graph, inputs, outputs) - } else { - // Legacy path: all host tensors (MLTensor) - self.dispatch_with_host_tensors(py, graph, inputs, outputs) - } - } - - /// Dispatch with host tensors (legacy path) - fn dispatch_with_host_tensors( - &self, - py: Python, - graph: &PyMLGraph, - inputs: &Bound<'_, PyDict>, - outputs: &Bound<'_, PyDict>, - ) -> PyResult<()> { - // Convert MLTensor inputs to numpy arrays let numpy_inputs = PyDict::new(py); for (key, value) in inputs.iter() { let tensor = value.cast::()?; - let numpy_array = self.read_tensor(py, &tensor.borrow())?; + let numpy_array = Self::read_tensor(this.clone_ref(py), py, &tensor.borrow())?; numpy_inputs.set_item(key, numpy_array)?; } - // Execute graph - let results = self.compute(py, graph, &numpy_inputs, None)?; + let results = { + let ctx = this.bind(py).borrow(); + let mut state = ctx.state.lock().unwrap(); + compute_with_dispatch(py, &mut state, graph, &this, &numpy_inputs)? + }; - // Write results to output tensors for (key, value) in outputs.iter() { let tensor = value.cast::()?; if let Some(result) = results.bind(py).get_item(&key)? { - self.write_tensor(py, &tensor.borrow(), result.into())?; + Self::write_tensor(this.clone_ref(py), py, &tensor.borrow(), result.into())?; } } Ok(()) } - /// Dispatch with device tensors (zero-copy path) - /// - /// Note: Current implementation uses host round-trips for compatibility. - /// Full zero-copy execution will be implemented in a future update. - #[cfg(feature = "onnx-runtime")] - fn dispatch_with_device_tensors( - &self, - py: Python, - graph: &PyMLGraph, - inputs: &Bound<'_, PyDict>, - outputs: &Bound<'_, PyDict>, - ) -> PyResult<()> { - use super::tensor::PyMLDeviceTensor; - - // For now, convert device tensors to numpy and use regular compute path - // Full zero-copy execution requires more complex lifetime management - // and will be implemented in a future update - - // Convert inputs (device or host tensors) to numpy - let numpy_inputs = PyDict::new(py); - for (key, value) in inputs.iter() { - if let Ok(device_tensor) = value.cast::() { - let numpy_array = device_tensor.borrow().read_data(py)?; - numpy_inputs.set_item(key, numpy_array)?; - } else if let Ok(host_tensor) = value.cast::() { - let numpy_array = self.read_tensor(py, &host_tensor.borrow())?; - numpy_inputs.set_item(key, numpy_array)?; - } else { - return Err(pyo3::exceptions::PyTypeError::new_err( - "Input must be MLTensor or MLDeviceTensor", - )); - } - } - - // Execute graph - let results = self.compute(py, graph, &numpy_inputs, None)?; - - // Write results to output tensors (device or host) - for (key, value) in outputs.iter() { - if let Ok(device_tensor) = value.cast::() { - if let Some(result) = results.bind(py).get_item(&key)? { - device_tensor.borrow_mut().write_data(py, result.into())?; - } - } else if let Ok(host_tensor) = value.cast::() { - if let Some(result) = results.bind(py).get_item(&key)? { - self.write_tensor(py, &host_tensor.borrow(), result.into())?; - } - } else { - return Err(pyo3::exceptions::PyTypeError::new_err( - "Output must be MLTensor or MLDeviceTensor", - )); - } - } - - Ok(()) - } - - /// Stub for when ONNX Runtime is not available - #[cfg(not(feature = "onnx-runtime"))] - fn dispatch_with_device_tensors( - &self, - py: Python, - graph: &PyMLGraph, - inputs: &Bound<'_, PyDict>, - outputs: &Bound<'_, PyDict>, - ) -> PyResult<()> { - Err(pyo3::exceptions::PyRuntimeError::new_err( - "Device tensors require ONNX Runtime (compile with onnx-runtime feature)", - )) - } - /// Convert graph to ONNX format /// /// Args: @@ -378,66 +212,6 @@ impl PyMLContext { Ok(()) } - /// Execute graph using CoreML runtime (macOS only, requires coreml-runtime feature) - /// - /// Args: - /// graph: The MLGraph to execute - /// device: Device to use ("cpu", "gpu", or "npu") - /// - /// Returns: - /// Dictionary with execution results - #[cfg(all(target_os = "macos", feature = "coreml-runtime"))] - #[pyo3(signature = (graph, device="cpu"))] - fn execute_with_coreml( - &self, - py: Python, - graph: &PyMLGraph, - device: &str, - ) -> PyResult> { - // Convert to CoreML - let converter = rustnn::converters::CoremlMlProgramConverter; - let converted = converter.convert(&graph.graph_info).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("CoreML conversion failed: {}", e)) - })?; - - // Parse device type (for future use with CoreML compute units selection) - let _compute_units = match device { - "cpu" => 0, - "gpu" => 1, - "npu" => 2, - _ => { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Invalid device type: {}. Use 'cpu', 'gpu', or 'npu'", - device - ))); - } - }; - - // Build input descriptors map - use std::collections::HashMap; - let mut inputs = HashMap::new(); - for &input_id in &graph.graph_info.input_operands { - if let Some(operand) = graph.graph_info.operand(input_id) { - let name = operand - .name - .clone() - .unwrap_or_else(|| format!("input_{}", input_id)); - inputs.insert(name, operand.descriptor.clone()); - } - } - - // Execute with optional weight file - let weights_ref = converted.weights_data.as_deref(); - run_coreml_zeroed_cached_with_weights(&converted.data, weights_ref, &inputs, None) - .map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("CoreML execution failed: {}", e)) - })?; - - // Return empty dict for now (actual implementation would return outputs) - let result = PyDict::new(py); - Ok(result.into()) - } - /// Create a tensor (device-resident by default, per WebNN spec) /// /// Following the W3C WebNN specification: @@ -469,32 +243,20 @@ impl PyMLContext { /// /// # Convenience: use create_host_tensor() for host tensors /// host_tensor = context.create_host_tensor([2, 3], "float32") - #[pyo3(signature = (shape, data_type, readable=false, writable=false, exportable_to_gpu=false))] + #[pyo3(signature = (shape, data_type, readable=false, writable=false, _exportable_to_gpu=false))] fn create_tensor( - &self, + this: Py, + py: Python, shape: Vec, data_type: &str, readable: bool, writable: bool, - exportable_to_gpu: bool, + _exportable_to_gpu: bool, ) -> PyResult { - use super::tensor::MLTensorDescriptor; - - let dtype = parse_data_type(data_type)?; - let descriptor = OperandDescriptor { - data_type: dtype, - shape: to_dimension_vector(&shape), - pending_permutation: Vec::new(), - }; - - let tensor_descriptor = MLTensorDescriptor { - descriptor, - readable, - writable, - exportable_to_gpu, - }; - - Ok(PyMLTensor::new(tensor_descriptor)) + let ctx = this.bind(py).borrow(); + let mut state = ctx.state.lock().unwrap(); + let inner = create_rustnn_tensor(&mut state, shape, data_type, readable, writable)?; + Ok(PyMLTensor::from_rustnn(this.clone_ref(py), inner)) } /// Convenience method for creating host-backed tensors (non-spec extension) @@ -521,92 +283,15 @@ impl PyMLContext { /// context.write_tensor(tensor, np.array([[1, 2, 3], [4, 5, 6]])) /// data = context.read_tensor(tensor) #[pyo3(signature = (shape, data_type))] - fn create_host_tensor(&self, shape: Vec, data_type: &str) -> PyResult { - // Just call create_tensor with explicit host flags - self.create_tensor(shape, data_type, true, true, false) - } - - /// Create a device-resident tensor for zero-copy execution - /// - /// Device tensors reside in GPU/NPU memory and enable persistent storage - /// across inference steps without host round-trips. This is critical for - /// iterative GenAI workloads like KV cache in transformers. - /// - /// Args: - /// graph: The MLGraph to associate with this tensor (needed for session management) - /// shape: Shape of the tensor - /// data_type: Data type string (e.g., "float32") - /// device: Device to allocate on (optional, defaults to context's backend device) - /// - /// Returns: - /// MLDeviceTensor: A new device-resident tensor - /// - /// Note: - /// Currently only supported with ONNX Runtime backend - #[cfg(feature = "onnx-runtime")] - #[pyo3(signature = (graph, shape, data_type, device=None))] - fn create_device_tensor( - &self, - graph: &PyMLGraph, - shape: Vec, + fn create_host_tensor( + this: Py, + py: Python, + shape: Vec, data_type: &str, - device: Option<&str>, - ) -> PyResult { - use super::tensor::PyMLDeviceTensor; - use rustnn::executors::onnx::OrtDeviceTensor; - use rustnn::tensor::{DeviceKind, DeviceTensorHandle}; - - // Parse data type - let dtype = parse_data_type(data_type)?; - - // Determine device from backend or parameter - let device_kind = if let Some(dev) = device { - match dev { - "cpu" => DeviceKind::Cpu, - "cuda" => DeviceKind::Cuda, - "directml" => DeviceKind::DirectML, - "coreml" => DeviceKind::CoreML, - _ => { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Unsupported device: {}. Use 'cpu', 'cuda', 'directml', or 'coreml'", - dev - ))); - } - } - } else { - // Infer from backend - match self.backend { - Backend::OnnxCpu => DeviceKind::Cpu, - Backend::OnnxGpu => DeviceKind::Cuda, - Backend::CoreML => DeviceKind::CoreML, - Backend::TensorRT => DeviceKind::Cuda, - Backend::None => { - return Err(pyo3::exceptions::PyRuntimeError::new_err( - "No backend available for device tensor creation", - )); - } - } - }; - - // Get or create ONNX session - let session = self.get_onnx_session(graph)?; - - // Create ONNX device tensor - let ort_tensor = OrtDeviceTensor::new(session, shape, dtype, device_kind).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!( - "Failed to create device tensor: {}", - e - )) - })?; - - // Wrap in DeviceTensorHandle - let handle = DeviceTensorHandle::new(Box::new(ort_tensor)); - - Ok(PyMLDeviceTensor::new(handle)) + ) -> PyResult { + Self::create_tensor(this, py, shape, data_type, true, true, false) } - /// Stub for when ONNX Runtime is not available - #[cfg(not(feature = "onnx-runtime"))] #[pyo3(signature = (_graph, _shape, _data_type, _device=None))] fn create_device_tensor( &self, @@ -614,9 +299,9 @@ impl PyMLContext { _shape: Vec, _data_type: &str, _device: Option<&str>, - ) -> PyResult { + ) -> PyResult { Err(pyo3::exceptions::PyRuntimeError::new_err( - "Device tensors require ONNX Runtime (compile with onnx-runtime feature)", + "MLDeviceTensor is not supported on the rustnn MLContext execution path", )) } @@ -633,26 +318,19 @@ impl PyMLContext { /// Raises: /// RuntimeError: If tensor is not readable or has been destroyed fn read_tensor<'py>( - &self, + this: Py, py: Python<'py>, tensor: &PyMLTensor, ) -> PyResult> { - let numpy = py.import("numpy")?; - let data = tensor.get_data()?; // Now returns PyResult - let shape_tuple = pyo3::types::PyTuple::new( - py, - tensor - .tensor_descriptor - .descriptor - .shape - .iter() - .map(|d| i64::from(get_static_or_max_size(d))), - )?; - - let array = numpy.call_method1("array", (data,))?; - let reshaped = array.call_method1("reshape", (shape_tuple,))?; - - Ok(reshaped) + tensor.check_destroyed()?; + if !tensor.readable() { + return Err(pyo3::exceptions::PyRuntimeError::new_err( + "Tensor is not readable (readable=false)", + )); + } + let ctx = this.bind(py).borrow(); + let mut state = ctx.state.lock().unwrap(); + read_rustnn_tensor(py, &mut state, &tensor.inner) } /// Write data from a numpy array into a tensor @@ -666,38 +344,21 @@ impl PyMLContext { /// Raises: /// RuntimeError: If tensor is not writable or has been destroyed /// ValueError: If data shape doesn't match tensor shape - fn write_tensor(&self, py: Python, tensor: &PyMLTensor, data: Bound) -> PyResult<()> { - let numpy = py.import("numpy")?; - - // Convert to numpy array - let array = numpy.call_method1("asarray", (data,))?; - - // Convert to float32 - let array_f32 = array.call_method1("astype", ("float32",))?; - - // Get shape - let shape_obj = array_f32.getattr("shape")?; - let shape: Vec = shape_obj - .extract::>()? - .iter() - .map(|&d| d as u32) - .collect(); - - // Validate shape - if shape != tensor.tensor_descriptor.descriptor.static_or_max_shape() { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Shape mismatch: tensor has shape {:?}, but data has shape {:?}", - tensor.tensor_descriptor.descriptor.shape, shape - ))); + fn write_tensor( + this: Py, + py: Python, + tensor: &PyMLTensor, + data: Bound, + ) -> PyResult<()> { + tensor.check_destroyed()?; + if !tensor.writable() { + return Err(pyo3::exceptions::PyRuntimeError::new_err( + "Tensor is not writable (writable=false)", + )); } - - // Get flattened data - let flat = array_f32.call_method0("flatten")?; - let data: Vec = flat.call_method0("tolist")?.extract()?; - - tensor.set_data(data)?; - - Ok(()) + let ctx = this.bind(py).borrow(); + let mut state = ctx.state.lock().unwrap(); + write_rustnn_tensor(py, &mut state, &tensor.inner, data) } /// Get power preference hint @@ -716,7 +377,7 @@ impl PyMLContext { /// The actual execution may still use CPU if needed. #[getter] fn accelerated(&self) -> bool { - self.accelerated_available + self.state.lock().unwrap().accelerated() } /// Get operation support limits for this context @@ -997,36 +658,13 @@ impl PyMLContext { /// available (otherwise the fallback path returns zeros). fn backend_info(&self, py: Python<'_>) -> PyResult> { let info = PyDict::new(py); - - let backend = match self.backend { - Backend::OnnxCpu => "onnx_cpu", - Backend::OnnxGpu => "onnx_gpu", - Backend::CoreML => "coreml", - Backend::TensorRT => "tensorrt", - Backend::None => "none", - }; - let onnx_compiled = cfg!(feature = "onnx-runtime"); let coreml_compiled = cfg!(all(target_os = "macos", feature = "coreml-runtime")); - let trtx_compiled = cfg!(feature = "trtx-runtime"); - - let backend_available = match self.backend { - Backend::OnnxCpu | Backend::OnnxGpu => onnx_compiled, - Backend::CoreML => coreml_compiled, - Backend::TensorRT => trtx_compiled, - Backend::None => false, - }; - - let fallback_reason = if backend == "none" { - Some("no backend selected (fallback)") - } else if !backend_available { - Some("selected backend not compiled into this build") - } else { - None - }; + let trtx_compiled = cfg!(any(feature = "trtx-runtime", feature = "trtx-runtime-mock")); - info.set_item("backend", backend)?; - info.set_item("accelerated_available", self.accelerated_available)?; + info.set_item("backend", "rustnn_mlcontext")?; + info.set_item("accelerated_available", self.accelerated())?; + info.set_item("device_type_requested", &self.device_type)?; info.set_item("compiled_features", { let compiled = PyDict::new(py); compiled.set_item("onnx_runtime", onnx_compiled)?; @@ -1034,10 +672,10 @@ impl PyMLContext { compiled.set_item("trtx_runtime", trtx_compiled)?; compiled })?; - info.set_item("backend_available", backend_available)?; - if let Some(reason) = fallback_reason { - info.set_item("fallback_reason", reason)?; - } + info.set_item( + "note", + "Execution uses rustnn MLContext::dispatch; CoreML/NPU not wired on this path", + )?; Ok(info.into()) } @@ -1045,676 +683,29 @@ impl PyMLContext { fn __repr__(&self) -> String { format!( "MLContext(accelerated={}, power='{}')", - self.accelerated_available, self.power_preference + self.accelerated(), + self.power_preference ) } } impl PyMLContext { - fn new(power_preference: String, accelerated_requested: bool, device_type: String) -> Self { - // Force specific backend if requested, otherwise use automatic selection - let (backend, accelerated_available) = match device_type.as_str() { - "cpu" => { - #[cfg(feature = "onnx-runtime")] - { - (Backend::OnnxCpu, false) - } - #[cfg(not(feature = "onnx-runtime"))] - { - (Backend::None, false) - } - } - "gpu" => { - #[cfg(feature = "onnx-runtime")] - { - (Backend::OnnxGpu, true) - } - #[cfg(not(feature = "onnx-runtime"))] - { - (Backend::None, false) - } - } - "npu" => { - #[cfg(all(target_os = "macos", feature = "coreml-runtime"))] - { - (Backend::CoreML, true) - } - #[cfg(not(all(target_os = "macos", feature = "coreml-runtime")))] - { - (Backend::None, false) - } - } - _ => { - // "auto" or unrecognized - use automatic selection - Self::select_backend(accelerated_requested, &power_preference) - } - }; - - Self { - power_preference, - _accelerated_requested: accelerated_requested, - accelerated_available, - backend, - - #[cfg(feature = "onnx-runtime")] - onnx_session: std::sync::Arc::new(std::sync::Mutex::new(None)), - } - } - - /// Get or create cached ONNX Runtime session for the given graph - /// - /// This enables device tensor reuse by keeping the session alive across operations. - /// The session is created on first access and cached for subsequent use. - #[cfg(feature = "onnx-runtime")] - fn get_onnx_session( - &self, - graph: &PyMLGraph, - ) -> Result, pyo3::PyErr> { - let mut session_guard = self.onnx_session.lock().unwrap(); - - if let Some(session) = session_guard.as_ref() { - return Ok(std::sync::Arc::clone(session)); - } - - // Create new session - let converter = rustnn::converters::OnnxConverter; - let converted = converter.convert(&graph.graph_info).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("ONNX conversion failed: {}", e)) - })?; - - let rustnn::converters::ConvertedGraph { - data, weights_data, .. - } = converted; - let mut builder = ort::session::Session::builder() - .map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("Session builder failed: {}", e)) - })? - .with_optimization_level(ort::session::builder::GraphOptimizationLevel::Level1) - .map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("Set opt level failed: {}", e)) - })?; - if let Some(weights) = weights_data { - builder = builder - .with_external_initializer_file_in_memory( - rustnn::ONNX_EXTERNAL_WEIGHTS_FILENAME, - Cow::Owned(weights), - ) - .map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!( - "Set external initializer failed: {}", - e - )) - })?; - } - let session = builder.commit_from_memory(&data).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("Load model failed: {}", e)) - })?; - - let session_arc = std::sync::Arc::new(session); - *session_guard = Some(std::sync::Arc::clone(&session_arc)); - - Ok(session_arc) - } - - /// Execute graph using ONNX Runtime backend - #[cfg(feature = "onnx-runtime")] - fn compute_onnx( - &self, - py: Python, - graph: &PyMLGraph, - inputs: &Bound<'_, PyDict>, - ) -> PyResult> { - debug_print!("[COMPUTE] compute_onnx called, converting graph to ONNX"); - // Convert graph to ONNX - let converter = rustnn::converters::OnnxConverter; - debug_print!("[COMPUTE] about to call converter.convert()"); - let converted = converter.convert(&graph.graph_info).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("ONNX conversion failed: {}", e)) - })?; - - // Convert Python inputs to OnnxInput structs - let numpy = py.import("numpy")?; - let mut onnx_inputs = Vec::new(); - - for input_id in &graph.graph_info.input_operands { - let input_op = graph - .graph_info - .operands - .get(*input_id as usize) - .ok_or_else(|| { - pyo3::exceptions::PyValueError::new_err(format!( - "Input operand {} not found in graph", - input_id - )) - })?; - - let default_name = format!("input_{}", input_id); - let input_name = input_op.name.as_deref().unwrap_or(&default_name); - - // Skip empty KV cache inputs (past_sequence_length=0) - // These will be removed by the converter, so don't expect them in inputs dict - let has_empty_dimension = input_op - .descriptor - .shape - .iter() - .any(|d| get_static_or_max_size(d) == 0); - let is_kv_input = input_name.starts_with("past_key_values_"); - if has_empty_dimension && is_kv_input { - debug_print!( - "[COMPUTE] Skipping empty KV input: {} (shape: {:?})", - input_name, - input_op.descriptor.shape - ); - continue; - } - - // Get the numpy array from inputs dict - let array = inputs.get_item(input_name)?.ok_or_else(|| { - pyo3::exceptions::PyValueError::new_err(format!("Missing input: {}", input_name)) - })?; - - // Get the data type from the operand descriptor - let data_type = &input_op.descriptor.data_type; - - // Convert array to the correct type based on descriptor - let dtype_str = match data_type { - rustnn::graph::DataType::Int4 => "int8", - rustnn::graph::DataType::Uint4 => "uint8", - rustnn::graph::DataType::Float32 => "float32", - rustnn::graph::DataType::Float16 => "float16", - rustnn::graph::DataType::Int8 => "int8", - rustnn::graph::DataType::Uint8 => "uint8", - rustnn::graph::DataType::Int32 => "int32", - rustnn::graph::DataType::Uint32 => "uint32", - rustnn::graph::DataType::Int64 => "int64", - rustnn::graph::DataType::Uint64 => "uint64", - }; - - let array_typed = array.call_method1("astype", (dtype_str,))?; - - // Get shape - let shape_obj = array_typed.getattr("shape")?; - let shape: Vec = shape_obj.extract()?; - - // Get flattened data and convert to appropriate TensorData - let flat = array_typed.call_method0("flatten")?; - - let tensor_data = match data_type { - rustnn::graph::DataType::Float32 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Float32(data) - } - rustnn::graph::DataType::Float16 => { - // Get as float32 list then convert to f16 bits - let data_f32: Vec = flat.call_method0("tolist")?.extract()?; - let data_u16: Vec = data_f32 - .iter() - .map(|&f| half::f16::from_f32(f).to_bits()) - .collect(); - rustnn::executors::onnx::TensorData::Float16(data_u16) - } - rustnn::graph::DataType::Int8 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Int8(data) - } - rustnn::graph::DataType::Uint8 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Uint8(data) - } - rustnn::graph::DataType::Int32 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Int32(data) - } - rustnn::graph::DataType::Uint32 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Uint32(data) - } - rustnn::graph::DataType::Int4 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Int8(data) - } - rustnn::graph::DataType::Uint4 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Uint8(data) - } - rustnn::graph::DataType::Int64 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Int64(data) - } - rustnn::graph::DataType::Uint64 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - rustnn::executors::onnx::TensorData::Uint64(data) - } - }; - - onnx_inputs.push(OnnxInput { - name: input_name.to_string(), - shape, - data: tensor_data, - }); - } - - // Execute with ONNX runtime - let onnx_outputs = run_onnx_with_inputs( - &converted.data, - converted.weights_data.as_deref(), - onnx_inputs, - ) - .map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("ONNX execution failed: {}", e)) - })?; - - // Convert outputs back to numpy arrays - let result = PyDict::new(py); - for output in onnx_outputs { - let shape_tuple = - pyo3::types::PyTuple::new(py, output.shape.iter().map(|&d| d as i64))?; - let array = numpy.call_method1("array", (output.data,))?; - let reshaped = array.call_method1("reshape", (shape_tuple,))?; - result.set_item(output.name, reshaped)?; - } - - Ok(result.into()) - } - - /// Stub for when ONNX Runtime is not available but backend was selected as ONNX - #[cfg(not(feature = "onnx-runtime"))] - fn compute_onnx( - &self, - py: Python, - graph: &PyMLGraph, - _inputs: &Bound<'_, PyDict>, - ) -> PyResult> { - Err(pyo3::exceptions::PyRuntimeError::new_err( - "ONNX Runtime backend selected but not compiled with onnx-runtime feature", - )) - } - - /// Execute graph using CoreML backend - #[cfg(all(target_os = "macos", feature = "coreml-runtime"))] - fn compute_coreml( - &self, - py: Python, - graph: &PyMLGraph, - inputs: &Bound<'_, PyDict>, - ) -> PyResult> { - use rustnn::executors::coreml::{run_coreml_with_inputs_with_weights, CoremlInput}; - - // Convert graph to CoreML - let converter = rustnn::converters::CoremlMlProgramConverter; - let converted = converter.convert(&graph.graph_info).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("CoreML conversion failed: {}", e)) - })?; - - // Convert Python inputs to CoremlInput structs - let numpy = py.import("numpy")?; - let mut coreml_inputs = Vec::new(); - - for input_id in &graph.graph_info.input_operands { - let input_op = graph - .graph_info - .operands - .get(*input_id as usize) - .ok_or_else(|| { - pyo3::exceptions::PyValueError::new_err(format!( - "Input operand {} not found in graph", - input_id - )) - })?; - - let default_name = format!("input_{}", input_id); - let input_name = input_op.name.as_deref().unwrap_or(&default_name); - - // Skip empty KV cache inputs (past_sequence_length=0) - // These will be removed by the converter, so don't expect them in inputs dict - let has_empty_dimension = input_op - .descriptor - .shape - .iter() - .any(|d| get_static_or_max_size(d) == 0); - let is_kv_input = input_name.starts_with("past_key_values_"); - if has_empty_dimension && is_kv_input { - debug_print!( - "[COMPUTE] Skipping empty KV input: {} (shape: {:?})", - input_name, - input_op.descriptor.shape - ); - continue; - } - - // Get the numpy array from inputs dict - let array = inputs.get_item(input_name)?.ok_or_else(|| { - pyo3::exceptions::PyValueError::new_err(format!("Missing input: {}", input_name)) - })?; - - // Convert to float32 array (CoreML uses float32) - let array_f32 = array.call_method1("astype", ("float32",))?; - - // Get shape - let shape_obj = array_f32.getattr("shape")?; - let mut shape: Vec = shape_obj.extract()?; - - // CoreML requires explicit shapes - convert scalars (0D) to 1D [1] - // This matches the conversion done in the CoreML model - if shape.is_empty() { - shape = vec![1]; - } - - // Get flattened data - let flat = array_f32.call_method0("flatten")?; - let data: Vec = flat.call_method0("tolist")?.extract()?; - - coreml_inputs.push(CoremlInput { - name: input_name.to_string(), - shape, - data, - }); - } - - // Execute with CoreML runtime (with optional weight file) - let weights_ref = converted.weights_data.as_deref(); - let attempts = - run_coreml_with_inputs_with_weights(&converted.data, weights_ref, coreml_inputs) - .map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!( - "CoreML execution failed: {}", - e - )) - })?; - - // Find first successful attempt - let outputs = attempts - .iter() - .find_map(|attempt| attempt.result.as_ref().ok().cloned()) - .ok_or_else(|| { - // Collect all error messages for debugging - let error_messages: Vec = attempts - .iter() - .map(|attempt| { - format!( - "{}: {}", - attempt.compute_unit, - attempt - .result - .as_ref() - .err() - .unwrap_or(&"unknown error".to_string()) - ) - }) - .collect(); - pyo3::exceptions::PyRuntimeError::new_err(format!( - "CoreML execution failed on all compute units:\n{}", - error_messages.join("\n") - )) - })?; - - // Convert outputs back to numpy arrays - let result = PyDict::new(py); - for output in outputs { - // Check if original graph output was scalar (0D) - // Find the corresponding output operand in the graph - let mut original_shape = output.shape.clone(); - for &output_id in &graph.graph_info.output_operands { - if let Some(operand) = graph.graph_info.operand(output_id) { - // Get output name from operand or use default naming - let default_name = format!("output_{}", output_id); - let output_name_in_graph = operand.name.as_deref().unwrap_or(&default_name); - - if output_name_in_graph == output.name { - // If original was 0D and we got [1], reshape back to [] - if operand.descriptor.shape.is_empty() && output.shape == vec![1] { - original_shape = vec![]; - } - break; - } - } - } - - let shape_tuple = pyo3::types::PyTuple::new(py, original_shape.iter().copied())?; - let array = numpy.call_method1("array", (output.data,))?; - let reshaped = array.call_method1("reshape", (shape_tuple,))?; - result.set_item(output.name, reshaped)?; - } - - Ok(result.into()) - } - - /// Stub for when CoreML is not available but backend was selected as CoreML - #[cfg(any(not(target_os = "macos"), not(feature = "coreml-runtime")))] - fn compute_coreml( - &self, - _py: Python, - _graph: &PyMLGraph, - _inputs: &Bound<'_, PyDict>, - ) -> PyResult> { - Err(pyo3::exceptions::PyRuntimeError::new_err( - "CoreML backend selected but not available on this platform or not compiled with coreml-runtime feature", - )) - } - - /// Execute graph using TensorRT backend - #[cfg(any(feature = "trtx-runtime", feature = "trtx-runtime-mock"))] - fn compute_trtx( - &self, - py: Python, - graph: &PyMLGraph, - inputs: &Bound<'_, PyDict>, - ) -> PyResult> { - use rustnn::executors::trtx::{run_trtx_with_inputs, TrtxInput}; - - // Convert graph to ONNX (TensorRT uses ONNX as input format) - let converter = rustnn::converters::OnnxConverter; - let converted = converter.convert(&graph.graph_info).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("ONNX conversion failed: {}", e)) - })?; - - // Convert Python inputs to TrtxInput structs - let numpy = py.import("numpy")?; - let mut trtx_inputs = Vec::new(); - - for input_id in &graph.graph_info.input_operands { - let input_op = graph - .graph_info - .operands - .get(*input_id as usize) - .ok_or_else(|| { - pyo3::exceptions::PyValueError::new_err(format!( - "Input operand {} not found in graph", - input_id - )) - })?; - - let default_name = format!("input_{}", input_id); - let input_name = input_op.name.as_deref().unwrap_or(&default_name); - - // Skip empty KV cache inputs (past_sequence_length=0) - // These will be removed by the converter, so don't expect them in inputs dict - let has_empty_dimension = input_op.descriptor.shape.iter().any(|&dim| dim == 0); - let is_kv_input = input_name.starts_with("past_key_values_"); - if has_empty_dimension && is_kv_input { - debug_print!( - "[COMPUTE] Skipping empty KV input: {} (shape: {:?})", - input_name, - input_op.descriptor.shape - ); - continue; - } - - // Get the numpy array from inputs dict - let array = inputs.get_item(input_name)?.ok_or_else(|| { - pyo3::exceptions::PyValueError::new_err(format!("Missing input: {}", input_name)) - })?; - - // Convert to float32 array - let array_f32 = array.call_method1("astype", ("float32",))?; - - // Get shape - let shape_obj = array_f32.getattr("shape")?; - let shape: Vec = shape_obj.extract()?; - - // Get flattened data - let flat = array_f32.call_method0("flatten")?; - let data: Vec = flat.call_method0("tolist")?.extract()?; - - trtx_inputs.push(TrtxInput { - name: input_name.to_string(), - shape, - data, - }); - } - - // Execute with TensorRT - let trtx_outputs = run_trtx_with_inputs(&converted.data, trtx_inputs).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!("TensorRT execution failed: {}", e)) - })?; - - // Convert outputs back to numpy arrays - let result = PyDict::new(py); - for output in trtx_outputs { - let shape_tuple = pyo3::types::PyTuple::new(py, output.shape.iter().map(|&d| d as i64)); - let array = numpy.call_method1("array", (output.data,))?; - let reshaped = array.call_method1("reshape", (shape_tuple,))?; - result.set_item(output.name, reshaped)?; - } - - Ok(result.into()) + pub(crate) fn compile_graph(&self, graph_info: GraphInfo) -> PyResult { + self.state.lock().unwrap().compile_graph(graph_info) } - /// Stub for when TensorRT is not available but backend was selected as TensorRT - #[cfg(not(any(feature = "trtx-runtime", feature = "trtx-runtime-mock")))] - fn compute_trtx( - &self, - _py: Python, - _graph: &PyMLGraph, - _inputs: &Bound<'_, PyDict>, - ) -> PyResult> { - Err(pyo3::exceptions::PyRuntimeError::new_err( - "TensorRT backend selected but not compiled with trtx-runtime feature", - )) - } - - /// Fallback computation removed: we now error when no backend is available. - /// Select the appropriate backend based on accelerated preference and power hint - /// - /// Returns: (Backend, accelerated_available) - /// - Backend: The selected backend to use - /// - accelerated_available: true if GPU/NPU acceleration is available - /// - /// Selection logic per WebNN Device Selection Explainer: - /// - accelerated=true + power="low-power" → NPU > GPU > CPU - /// - accelerated=true + power="high-performance" → GPU > NPU > CPU - /// - accelerated=true + power="default" → GPU > NPU > CPU - /// - accelerated=false → CPU only - fn select_backend(accelerated: bool, power_preference: &str) -> (Backend, bool) { - if !accelerated { - // User explicitly requested CPU-only execution - #[cfg(feature = "onnx-runtime")] - { - return (Backend::OnnxCpu, false); - } - #[cfg(not(feature = "onnx-runtime"))] - { - return (Backend::None, false); - } - } - - // Accelerated execution requested - select based on power preference - match power_preference { - "low-power" => { - // Prefer NPU (Neural Engine on macOS) for low power - #[cfg(all(target_os = "macos", feature = "coreml-runtime"))] - { - return (Backend::CoreML, true); - } - - // Fallback to GPU if NPU not available - #[cfg(all(not(target_os = "macos"), feature = "onnx-runtime"))] - { - return (Backend::OnnxGpu, true); - } - #[cfg(all( - target_os = "macos", - not(feature = "coreml-runtime"), - feature = "onnx-runtime" - ))] - { - return (Backend::OnnxGpu, true); - } - - // No acceleration available - only reachable when onnx-runtime is not enabled - #[cfg(not(feature = "onnx-runtime"))] - { - (Backend::None, false) - } - - // When onnx-runtime is enabled, one of the above cfg blocks will match and return, - // so this branch is never reached. We need this to satisfy the compiler in that case. - #[cfg(feature = "onnx-runtime")] - #[allow(unreachable_code)] - { - (Backend::None, false) - } - } - "high-performance" | "default" => { - // Prefer TensorRT for NVIDIA GPU when available (highest performance) - #[cfg(any(feature = "trtx-runtime", feature = "trtx-runtime-mock"))] - { - return (Backend::TensorRT, true); - } - - // Prefer ONNX GPU for cross-platform consistency - // TODO: Enable CoreML priority once CoreML executor bugs are fixed - // (currently panics on multi-output operations and some data type mismatches) - #[cfg(all( - feature = "onnx-runtime", - not(any(feature = "trtx-runtime", feature = "trtx-runtime-mock")) - ))] - { - (Backend::OnnxGpu, true) - } - - // Fallback to CoreML on macOS if ONNX not available - #[cfg(all( - target_os = "macos", - feature = "coreml-runtime", - not(feature = "onnx-runtime"), - not(any(feature = "trtx-runtime", feature = "trtx-runtime-mock")) - ))] - { - return (Backend::CoreML, true); - } - - // No acceleration available, fallback to CPU - #[cfg(all( - not(feature = "onnx-runtime"), - not(feature = "coreml-runtime"), - not(any(feature = "trtx-runtime", feature = "trtx-runtime-mock")) - ))] - { - return (Backend::None, false); - } - } - _ => { - // Unknown power preference, use default behavior (GPU preferred) - #[cfg(any(feature = "trtx-runtime", feature = "trtx-runtime-mock"))] - { - return (Backend::TensorRT, true); - } - #[cfg(all( - feature = "onnx-runtime", - not(any(feature = "trtx-runtime", feature = "trtx-runtime-mock")) - ))] - { - (Backend::OnnxGpu, true) - } - #[cfg(all( - not(feature = "onnx-runtime"), - not(any(feature = "trtx-runtime", feature = "trtx-runtime-mock")) - ))] - { - return (Backend::None, false); - } - } - } + fn new(power_preference: String, accelerated_requested: bool, device_type: String) -> PyResult { + let options = build_context_options( + &power_preference, + accelerated_requested, + &device_type, + )?; + let state = ContextState::new(options)?; + Ok(Self { + power_preference, + accelerated_requested, + device_type, + state: Mutex::new(state), + }) } } diff --git a/src/python/graph.rs b/src/python/graph.rs index d823cd6..e23ab02 100644 --- a/src/python/graph.rs +++ b/src/python/graph.rs @@ -16,6 +16,10 @@ use std::path::Path; #[pyclass(name = "MLGraph")] pub struct PyMLGraph { pub(crate) graph_info: GraphInfo, + /// Context that compiled this graph (required for execution). + pub(crate) context: Option>, + /// Index into the owning context's compiled-graph arena. + pub(crate) graph_slot: Option, } #[pymethods] @@ -407,13 +411,33 @@ impl PyMLGraph { let graph_info = webnn_json::from_graph_json(&graph_json) .map_err(|e| PyIOError::new_err(format!("Failed to convert graph: {}", e)))?; - Ok(PyMLGraph { graph_info }) + Ok(PyMLGraph { + graph_info, + context: None, + graph_slot: None, + }) } } impl PyMLGraph { pub fn new(graph_info: GraphInfo) -> Self { - Self { graph_info } + Self { + graph_info, + context: None, + graph_slot: None, + } + } + + pub fn new_compiled( + graph_info: GraphInfo, + context: Py, + graph_slot: usize, + ) -> Self { + Self { + graph_info, + context: Some(context), + graph_slot: Some(graph_slot), + } } /// Delegates to [`webnn_graph::resolve_external_weights`], then surfaces a Python error if any diff --git a/src/python/graph_builder.rs b/src/python/graph_builder.rs index dcfdd57..0ab6ca1 100644 --- a/src/python/graph_builder.rs +++ b/src/python/graph_builder.rs @@ -30,6 +30,8 @@ use std::collections::HashMap; /// Builder for constructing WebNN computational graphs #[pyclass(name = "MLGraphBuilder")] pub struct PyMLGraphBuilder { + context: Py, + built: bool, operands: Vec, operations: Vec, input_operands: Vec, @@ -41,15 +43,10 @@ pub struct PyMLGraphBuilder { #[pymethods] impl PyMLGraphBuilder { #[new] - fn new() -> Self { - Self { - operands: Vec::new(), - operations: Vec::new(), - input_operands: Vec::new(), - next_operand_id: 0, - operand_map: HashMap::new(), - constant_data_map: HashMap::new(), - } + fn new() -> PyResult { + Err(pyo3::exceptions::PyRuntimeError::new_err( + "MLGraphBuilder must be created via MLContext.create_graph_builder()", + )) } /// Create an input operand @@ -2715,7 +2712,7 @@ impl PyMLGraphBuilder { /// /// Returns: /// MLGraph: The compiled graph - fn build(&mut self, outputs: &Bound<'_, PyDict>) -> PyResult { + fn build(&mut self, py: Python<'_>, outputs: &Bound<'_, PyDict>) -> PyResult { let mut output_operands = Vec::new(); // Mark outputs and collect output IDs @@ -2748,7 +2745,25 @@ impl PyMLGraphBuilder { pyo3::exceptions::PyValueError::new_err(format!("Graph validation failed: {}", e)) })?; - Ok(PyMLGraph::new(graph_info)) + if self.built { + return Err(pyo3::exceptions::PyRuntimeError::new_err( + "MLGraphBuilder.build() was already called", + )); + } + self.built = true; + + let graph_slot = { + self.context + .bind(py) + .borrow() + .compile_graph(graph_info.clone())? + }; + + Ok(PyMLGraph::new_compiled( + graph_info, + self.context.clone_ref(py), + graph_slot, + )) } /// Scatter elements operation @@ -3395,9 +3410,11 @@ impl PyMLGraphBuilder { self.operations.push(op); } - /// Create a new graph builder (Rust-accessible constructor) - pub fn create() -> Self { + /// Create a new graph builder tied to a context (internal). + pub(crate) fn new_for_context(context: Py) -> Self { Self { + context, + built: false, operands: Vec::new(), operations: Vec::new(), input_operands: Vec::new(), diff --git a/src/python/mod.rs b/src/python/mod.rs index 4fdf83c..b1846d2 100644 --- a/src/python/mod.rs +++ b/src/python/mod.rs @@ -1,6 +1,7 @@ //! Python bindings for the WebNN API mod context; +mod context_state; mod graph; mod graph_builder; mod operand; diff --git a/src/python/tensor.rs b/src/python/tensor.rs index d7c4872..559d944 100644 --- a/src/python/tensor.rs +++ b/src/python/tensor.rs @@ -1,73 +1,37 @@ //! MLTensor implementation following WebNN MLTensor Explainer -//! -//! PyO3 macros generate unsafe code that triggers unsafe_op_in_unsafe_fn warnings. -//! This is expected behavior from the macro-generated code. + #![allow(unsafe_op_in_unsafe_fn)] #![allow(clippy::useless_conversion)] use pyo3::prelude::*; -use rustnn::graph::{get_static_or_max_size, DataType, OperandDescriptor}; +use rustnn::mlcontext::MLTensorDescriptor; use std::sync::{Arc, Mutex}; -/// MLTensorDescriptor - Describes tensor properties and usage flags -/// -/// Following the W3C WebNN MLTensor Explainer: -/// https://github.com/webmachinelearning/webnn/blob/main/mltensor-explainer.md -#[derive(Clone, Debug)] -pub struct MLTensorDescriptor { - pub descriptor: OperandDescriptor, - /// If true, tensor data can be read back to CPU - pub readable: bool, - /// If true, tensor data can be written from CPU - pub writable: bool, - /// If true, tensor can be exported for use as GPU texture (future use) - pub exportable_to_gpu: bool, +use super::context::PyMLContext; +/// Host-side view of a rustnn `MLTensor` owned by a context. +pub(crate) struct RustnnTensor { + pub tensor: rustnn::mlcontext::MLTensor, + pub desc: MLTensorDescriptor, } -/// MLTensor - Represents an opaque typed tensor with data storage -/// -/// MLTensor is used for explicit tensor management in WebNN, allowing -/// pre-allocation of input/output buffers and explicit data transfer. -/// -/// Following the W3C WebNN MLTensor Explainer: -/// https://github.com/webmachinelearning/webnn/blob/main/mltensor-explainer.md -#[pyclass(name = "MLTensor", from_py_object)] -#[derive(Clone)] +/// MLTensor - opaque typed tensor backed by rustnn runtime storage. +#[pyclass(name = "MLTensor")] pub struct PyMLTensor { - pub(crate) tensor_descriptor: MLTensorDescriptor, - pub(crate) data: Arc>>, + pub(crate) context: Py, + pub(crate) inner: RustnnTensor, destroyed: Arc>, } impl PyMLTensor { - /// Create a new tensor with the given tensor descriptor - pub fn new(tensor_descriptor: MLTensorDescriptor) -> Self { - let total_elements: usize = tensor_descriptor - .descriptor - .shape - .iter() - .map(|d| get_static_or_max_size(d) as usize) - .product(); - let data = vec![0.0f32; total_elements]; - - Self { - tensor_descriptor, - data: Arc::new(Mutex::new(data)), - destroyed: Arc::new(Mutex::new(false)), - } - } - - /// Create a tensor from existing data - pub fn from_data(tensor_descriptor: MLTensorDescriptor, data: Vec) -> Self { + pub(crate) fn from_rustnn(context: Py, inner: RustnnTensor) -> Self { Self { - tensor_descriptor, - data: Arc::new(Mutex::new(data)), + context, + inner, destroyed: Arc::new(Mutex::new(false)), } } - /// Check if tensor has been destroyed - fn check_destroyed(&self) -> PyResult<()> { + pub(crate) fn check_destroyed(&self) -> PyResult<()> { if *self.destroyed.lock().unwrap() { return Err(pyo3::exceptions::PyRuntimeError::new_err( "Tensor has been destroyed", @@ -75,103 +39,58 @@ impl PyMLTensor { } Ok(()) } - - /// Get the data as a vector - pub fn get_data(&self) -> PyResult> { - self.check_destroyed()?; - if !self.tensor_descriptor.readable { - return Err(pyo3::exceptions::PyRuntimeError::new_err( - "Tensor is not readable (readable=false)", - )); - } - Ok(self.data.lock().unwrap().clone()) - } - - /// Set the data from a vector - pub fn set_data(&self, data: Vec) -> PyResult<()> { - self.check_destroyed()?; - if !self.tensor_descriptor.writable { - return Err(pyo3::exceptions::PyRuntimeError::new_err( - "Tensor is not writable (writable=false)", - )); - } - let expected_size: usize = self - .tensor_descriptor - .descriptor - .shape - .iter() - .map(|d| get_static_or_max_size(d) as usize) - .product(); - if data.len() != expected_size { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Data size mismatch: expected {} elements, got {}", - expected_size, - data.len() - ))); - } - *self.data.lock().unwrap() = data; - Ok(()) - } } #[pymethods] impl PyMLTensor { - /// Get the data type of the tensor #[getter] fn data_type(&self) -> String { - match self.tensor_descriptor.descriptor.data_type { - DataType::Int4 => "int4".to_string(), - DataType::Uint4 => "uint4".to_string(), - DataType::Float32 => "float32".to_string(), - DataType::Float16 => "float16".to_string(), - DataType::Int32 => "int32".to_string(), - DataType::Uint32 => "uint32".to_string(), - DataType::Int8 => "int8".to_string(), - DataType::Uint8 => "uint8".to_string(), - DataType::Int64 => "int64".to_string(), - DataType::Uint64 => "uint64".to_string(), + match self.inner.desc.data_type() { + rustnn::operator_enums::MLOperandDataType::Float32 => "float32".to_string(), + rustnn::operator_enums::MLOperandDataType::Float16 => "float16".to_string(), + rustnn::operator_enums::MLOperandDataType::Int32 => "int32".to_string(), + rustnn::operator_enums::MLOperandDataType::Uint32 => "uint32".to_string(), + rustnn::operator_enums::MLOperandDataType::Int8 => "int8".to_string(), + rustnn::operator_enums::MLOperandDataType::Uint8 => "uint8".to_string(), + rustnn::operator_enums::MLOperandDataType::Int64 => "int64".to_string(), + rustnn::operator_enums::MLOperandDataType::Uint64 => "uint64".to_string(), } } - /// Get the shape of the tensor #[getter] fn shape(&self) -> Vec { - self.tensor_descriptor.descriptor.static_or_max_shape() + self.inner + .tensor + .shape() + .iter() + .map(|&d| d as u32) + .collect() } - /// Get the number of elements in the tensor #[getter] fn size(&self) -> usize { - self.tensor_descriptor - .descriptor - .shape + self.inner + .tensor + .shape() .iter() - .map(|d| get_static_or_max_size(d) as usize) - .product() + .product::() as usize } - /// Check if tensor data can be read back to CPU #[getter] - fn readable(&self) -> bool { - self.tensor_descriptor.readable + pub(crate) fn readable(&self) -> bool { + self.inner.desc.readable() } - /// Check if tensor data can be written from CPU #[getter] - fn writable(&self) -> bool { - self.tensor_descriptor.writable + pub(crate) fn writable(&self) -> bool { + self.inner.desc.writable() } - /// Check if tensor can be exported for use as GPU texture #[getter] fn exportable_to_gpu(&self) -> bool { - self.tensor_descriptor.exportable_to_gpu + false } - /// Destroy the tensor and release its resources - /// - /// After calling destroy(), the tensor cannot be used for any operations. - /// This follows the W3C WebNN MLTensor Explainer for explicit resource management. fn destroy(&self) -> PyResult<()> { let mut destroyed = self.destroyed.lock().unwrap(); if *destroyed { @@ -183,202 +102,24 @@ impl PyMLTensor { Ok(()) } - /// String representation fn __repr__(&self) -> String { - let shape = self.tensor_descriptor.descriptor.static_or_max_shape(); format!( - "MLTensor(shape={:?}, dtype={}, readable={}, writable={}, exportable_to_gpu={})", - shape, + "MLTensor(shape={:?}, dtype={}, readable={}, writable={})", + self.shape(), self.data_type(), self.readable(), - self.writable(), - self.exportable_to_gpu() + self.writable() ) } } -/// Device-resident tensor for zero-copy execution -/// -/// MLDeviceTensor represents a tensor that resides on device (GPU/NPU) memory, -/// enabling persistent storage across inference steps without host round-trips. -/// This is critical for iterative GenAI workloads like KV cache in transformers. -#[pyclass(name = "MLDeviceTensor", skip_from_py_object)] -pub struct PyMLDeviceTensor { - pub(crate) handle: rustnn::tensor::DeviceTensorHandle, - destroyed: Arc>, -} - -impl PyMLDeviceTensor { - /// Create a new device tensor from a handle - pub fn new(handle: rustnn::tensor::DeviceTensorHandle) -> Self { - Self { - handle, - destroyed: Arc::new(Mutex::new(false)), - } - } - - /// Check if tensor has been destroyed - fn check_destroyed(&self) -> PyResult<()> { - if *self.destroyed.lock().unwrap() { - return Err(pyo3::exceptions::PyRuntimeError::new_err( - "Device tensor has been destroyed", - )); - } - Ok(()) - } - - /// Public method to read tensor data (callable from Rust) - pub fn read_data<'py>(&self, py: Python<'py>) -> PyResult> { - self.read(py) - } - - /// Public method to write tensor data (callable from Rust) - pub fn write_data<'py>(&mut self, py: Python<'py>, data: Bound<'py, PyAny>) -> PyResult<()> { - self.write(py, data) - } -} +/// Device-resident tensor — not supported on the rustnn MLContext execution path. +#[pyclass(name = "MLDeviceTensor")] +pub struct PyMLDeviceTensor; #[pymethods] impl PyMLDeviceTensor { - /// Get the shape of the tensor - #[getter] - fn shape(&self) -> Vec { - self.handle.shape.clone() - } - - /// Get the data type of the tensor - #[getter] - fn data_type(&self) -> String { - match self.handle.dtype { - DataType::Int4 => "int4".to_string(), - DataType::Uint4 => "uint4".to_string(), - DataType::Float32 => "float32".to_string(), - DataType::Float16 => "float16".to_string(), - DataType::Int32 => "int32".to_string(), - DataType::Uint32 => "uint32".to_string(), - DataType::Int8 => "int8".to_string(), - DataType::Uint8 => "uint8".to_string(), - DataType::Int64 => "int64".to_string(), - DataType::Uint64 => "uint64".to_string(), - } - } - - /// Get the device kind where this tensor resides - #[getter] - fn device(&self) -> String { - self.handle.device_kind().to_string() - } - - /// Get the backend that created this tensor - #[getter] - fn backend(&self) -> String { - self.handle.backend_kind().to_string() - } - - /// Get the number of elements in the tensor - #[getter] - fn size(&self) -> usize { - self.handle.shape.iter().product() - } - - /// Read tensor data from device to host - /// - /// This performs a device-to-host memory transfer. - /// - /// Returns: - /// numpy.ndarray: The tensor data as a numpy array - /// - /// Raises: - /// RuntimeError: If tensor has been destroyed - fn read<'py>(&self, py: Python<'py>) -> PyResult> { - self.check_destroyed()?; - - let data = self.handle.inner.read_to_host().map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!( - "Failed to read device tensor: {}", - e - )) - })?; - - let numpy = py.import("numpy")?; - let shape_tuple = - pyo3::types::PyTuple::new(py, self.handle.shape.iter().map(|&d| d as i64))?; - let array = numpy.call_method1("array", (data,))?; - let reshaped = array.call_method1("reshape", (shape_tuple,))?; - - Ok(reshaped) - } - - /// Write tensor data from host to device - /// - /// This performs a host-to-device memory transfer. - /// - /// Args: - /// data: Numpy array or array-like data to write - /// - /// Raises: - /// RuntimeError: If tensor has been destroyed - /// ValueError: If data shape doesn't match tensor shape - fn write(&mut self, py: Python, data: Bound) -> PyResult<()> { - self.check_destroyed()?; - - let numpy = py.import("numpy")?; - - // Convert to numpy array - let array = numpy.call_method1("asarray", (data,))?; - - // Convert to float32 - let array_f32 = array.call_method1("astype", ("float32",))?; - - // Get shape - let shape_obj = array_f32.getattr("shape")?; - let shape: Vec = shape_obj.extract()?; - - // Validate shape - if shape != self.handle.shape { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Shape mismatch: tensor has shape {:?}, but data has shape {:?}", - self.handle.shape, shape - ))); - } - - // Get flattened data - let flat = array_f32.call_method0("flatten")?; - let data_vec: Vec = flat.call_method0("tolist")?.extract()?; - - self.handle.inner.write_from_host(&data_vec).map_err(|e| { - pyo3::exceptions::PyRuntimeError::new_err(format!( - "Failed to write device tensor: {}", - e - )) - })?; - - Ok(()) - } - - /// Destroy the tensor and release its device resources - /// - /// After calling destroy(), the tensor cannot be used for any operations. - /// This enables explicit resource management for device memory. - fn destroy(&self) -> PyResult<()> { - let mut destroyed = self.destroyed.lock().unwrap(); - if *destroyed { - return Err(pyo3::exceptions::PyRuntimeError::new_err( - "Device tensor already destroyed", - )); - } - *destroyed = true; - Ok(()) - } - - /// String representation fn __repr__(&self) -> String { - format!( - "MLDeviceTensor(shape={:?}, dtype={}, device={}, backend={})", - self.handle.shape, - self.data_type(), - self.device(), - self.backend() - ) + "MLDeviceTensor(not supported)".to_string() } } From a1f6ece66cbf31ae7f389c862b86cd98f49d3019 Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Sun, 17 May 2026 18:55:38 +1000 Subject: [PATCH 2/8] fix dynamic shape issues in smollm_from_hub.py example. --- examples/smollm_from_hub.py | 332 +++++++++++++++++++++++++++++++----- pyproject.toml | 2 +- python/webnn/__init__.pyi | 8 + python/webnn/_rustnn.pyi | 4 + src/python/context.rs | 53 +++--- 5 files changed, 335 insertions(+), 64 deletions(-) diff --git a/examples/smollm_from_hub.py b/examples/smollm_from_hub.py index f115c55..bfc7ed1 100644 --- a/examples/smollm_from_hub.py +++ b/examples/smollm_from_hub.py @@ -17,6 +17,7 @@ import difflib import re import sys +from dataclasses import dataclass from pathlib import Path from urllib.error import HTTPError from urllib.request import urlretrieve @@ -243,6 +244,268 @@ def discover_layers(input_names: list[str]) -> list[int]: return sorted(set(layers)) +_DIM_TOKEN_RE = re.compile(r"(?:Static\(\d+\)|Dynamic\([^)]+\))") + + +def _max_dim_from_token(token: str) -> int: + token = token.strip() + if token.startswith("Static("): + return int(token[7:-1]) + match = re.search(r"max_size:\s*(\d+)", token) + if match: + return int(match.group(1)) + return 0 + + +def _parse_operand_shape(debug_line: str) -> list[int]: + start = debug_line.find("shape=[") + if start < 0: + raise RuntimeError(f"Could not parse operand shape from: {debug_line}") + start += len("shape=[") + end = debug_line.find("]", start) + if end < 0: + raise RuntimeError(f"Could not parse operand shape from: {debug_line}") + inner = debug_line[start:end] + return [_max_dim_from_token(token) for token in _DIM_TOKEN_RE.findall(inner)] + + +@dataclass +class SmolLMLayout: + num_layers: int + num_heads: int + max_cache_len: int + head_dim: int + logits_name: str + vocab_size: int + + +def detect_layout(graph: webnn.MLGraph, output_names: list[str]) -> SmolLMLayout: + num_heads = head_dim = max_cache_len = None + for idx in range(graph.operand_count): + line = graph.debug_operand(idx) + if "past_key_values_0_key" not in line: + continue + shape = _parse_operand_shape(line) + if len(shape) != 4: + raise RuntimeError(f"Unexpected past_key shape: {shape}") + num_heads, max_cache_len, head_dim = shape[1], shape[2], shape[3] + break + if num_heads is None or max_cache_len is None or head_dim is None: + raise RuntimeError("Failed to detect KV layout from graph operands") + + logits_name = None + vocab_size = None + for name in output_names: + if "logits" in name: + logits_name = name + break + if logits_name is None: + raise RuntimeError("Failed to detect logits output name") + for idx in range(graph.operand_count): + line = graph.debug_operand(idx) + if logits_name not in line: + continue + shape = _parse_operand_shape(line) + vocab_size = shape[-1] + break + if vocab_size is None: + raise RuntimeError(f"Failed to detect vocab size for {logits_name}") + + layers = discover_layers(graph.get_input_names()) + return SmolLMLayout( + num_layers=len(layers), + num_heads=num_heads, + max_cache_len=max_cache_len, + head_dim=head_dim, + logits_name=logits_name, + vocab_size=vocab_size, + ) + + +@dataclass +class StepState: + cache: dict[str, np.ndarray] + current_pos: int + + +@dataclass +class StepTensors: + input_ids: webnn.MLTensor + position_ids: webnn.MLTensor + attention_mask: webnn.MLTensor + past_k: list[webnn.MLTensor] + past_v: list[webnn.MLTensor] + present_k: list[webnn.MLTensor] + present_v: list[webnn.MLTensor] + logits: webnn.MLTensor + + +def init_step_state(layout: SmolLMLayout) -> StepState: + elems = layout.num_heads * layout.max_cache_len * layout.head_dim + cache: dict[str, np.ndarray] = {} + for layer in range(layout.num_layers): + cache[f"past_key_values_{layer}_key"] = np.zeros(elems, dtype=np.float32) + cache[f"past_key_values_{layer}_value"] = np.zeros(elems, dtype=np.float32) + return StepState(cache=cache, current_pos=0) + + +def init_step_tensors(context: webnn.MLContext, layout: SmolLMLayout) -> StepTensors: + h = layout.num_heads + d = layout.head_dim + max_seq = layout.max_cache_len + max_past = max(0, max_seq - 1) + + input_ids = context.create_host_tensor([1, 1], "int64") + position_ids = context.create_host_tensor([1, 1], "int64") + + attention_mask = context.create_host_tensor([1, 1], "int64") + context.set_tensor_capacity(attention_mask, [1, max_seq]) + + past_k: list[webnn.MLTensor] = [] + past_v: list[webnn.MLTensor] = [] + present_k: list[webnn.MLTensor] = [] + present_v: list[webnn.MLTensor] = [] + for _ in range(layout.num_layers): + pk = context.create_host_tensor([1, h, 0, d], "float32") + context.set_tensor_capacity(pk, [1, h, max_past, d]) + past_k.append(pk) + + pv = context.create_host_tensor([1, h, 0, d], "float32") + context.set_tensor_capacity(pv, [1, h, max_past, d]) + past_v.append(pv) + + prk = context.create_host_tensor([1, h, 1, d], "float32") + context.set_tensor_capacity(prk, [1, h, max_seq, d]) + present_k.append(prk) + + prv = context.create_host_tensor([1, h, 1, d], "float32") + context.set_tensor_capacity(prv, [1, h, max_seq, d]) + present_v.append(prv) + + logits_shape = [1, 1, layout.vocab_size] + logits = context.create_host_tensor(logits_shape, "float32") + + return StepTensors( + input_ids=input_ids, + position_ids=position_ids, + attention_mask=attention_mask, + past_k=past_k, + past_v=past_v, + present_k=present_k, + present_v=present_v, + logits=logits, + ) + + +def _compact_kv( + state: StepState, + layout: SmolLMLayout, + layer: int, + kv: str, + past_len: int, +) -> np.ndarray: + if past_len == 0: + return np.array([], dtype=np.float32) + cache = state.cache[f"past_key_values_{layer}_{kv}"] + out = np.zeros(layout.num_heads * past_len * layout.head_dim, dtype=np.float32) + for head in range(layout.num_heads): + for t in range(past_len): + src = (head * layout.max_cache_len + t) * layout.head_dim + dst = (head * past_len + t) * layout.head_dim + out[dst : dst + layout.head_dim] = cache[src : src + layout.head_dim] + return out + + +def _store_present( + state: StepState, + layout: SmolLMLayout, + layer: int, + kv: str, + present: np.ndarray, + seq_len: int, +) -> None: + cache = state.cache[f"past_key_values_{layer}_{kv}"] + present = np.asarray(present, dtype=np.float32).reshape( + layout.num_heads, seq_len, layout.head_dim + ) + for head in range(layout.num_heads): + dst = (head * layout.max_cache_len + state.current_pos) * layout.head_dim + cache[dst : dst + layout.head_dim] = present[head, seq_len - 1, :] + + +def run_generation_step( + context: webnn.MLContext, + graph: webnn.MLGraph, + layout: SmolLMLayout, + tensors: StepTensors, + state: StepState, + token_id: int, +) -> np.ndarray: + past_len = state.current_pos + seq_len = past_len + 1 + h = layout.num_heads + d = layout.head_dim + + context.resize_tensor(tensors.attention_mask, [1, seq_len]) + for layer in range(layout.num_layers): + context.resize_tensor(tensors.past_k[layer], [1, h, past_len, d]) + context.resize_tensor(tensors.past_v[layer], [1, h, past_len, d]) + context.resize_tensor(tensors.present_k[layer], [1, h, seq_len, d]) + context.resize_tensor(tensors.present_v[layer], [1, h, seq_len, d]) + + context.write_tensor(tensors.input_ids, np.array([[token_id]], dtype=np.int64)) + context.write_tensor(tensors.position_ids, np.array([[past_len]], dtype=np.int64)) + context.write_tensor( + tensors.attention_mask, np.ones((1, seq_len), dtype=np.int64) + ) + + for layer in range(layout.num_layers): + k_data = _compact_kv(state, layout, layer, "key", past_len) + if k_data.size: + context.write_tensor(tensors.past_k[layer], k_data) + v_data = _compact_kv(state, layout, layer, "value", past_len) + if v_data.size: + context.write_tensor(tensors.past_v[layer], v_data) + + inputs: dict[str, webnn.MLTensor] = { + "input_ids": tensors.input_ids, + "position_ids": tensors.position_ids, + "attention_mask": tensors.attention_mask, + } + for layer in range(layout.num_layers): + inputs[f"past_key_values_{layer}_key"] = tensors.past_k[layer] + inputs[f"past_key_values_{layer}_value"] = tensors.past_v[layer] + + outputs: dict[str, webnn.MLTensor] = {layout.logits_name: tensors.logits} + for layer in range(layout.num_layers): + outputs[f"present_{layer}_key"] = tensors.present_k[layer] + outputs[f"present_{layer}_value"] = tensors.present_v[layer] + + context.dispatch(graph, inputs, outputs) + + logits = np.asarray(context.read_tensor(tensors.logits), dtype=np.float32) + if logits.ndim == 3: + logits = logits[0, 0, :] + elif logits.ndim == 2: + logits = logits[0, :] + else: + logits = logits.reshape(-1) + + kv_elems = layout.num_heads * seq_len * layout.head_dim + for layer in range(layout.num_layers): + present_k = np.asarray( + context.read_tensor(tensors.present_k[layer]), dtype=np.float32 + ).reshape(-1)[:kv_elems] + _store_present(state, layout, layer, "key", present_k, seq_len) + present_v = np.asarray( + context.read_tensor(tensors.present_v[layer]), dtype=np.float32 + ).reshape(-1)[:kv_elems] + _store_present(state, layout, layer, "value", present_v, seq_len) + + state.current_pos += 1 + return logits + + def run_transformers_baseline( model_id: str, prompt: str, @@ -350,53 +613,32 @@ def main() -> None: if not layers: raise RuntimeError("No KV-cache layer inputs detected in graph") - num_heads = 3 - head_dim = 64 - past_key_values: dict[str, np.ndarray] = {} - for layer in layers: - past_key_values[f"past_key_values_{layer}_key"] = np.zeros( - (1, num_heads, 0, head_dim), dtype=np.float32 - ) - past_key_values[f"past_key_values_{layer}_value"] = np.zeros( - (1, num_heads, 0, head_dim), dtype=np.float32 - ) + layout = detect_layout(graph, output_names) + print( + f" [OK] Layout: {layout.num_layers} layers, {layout.num_heads} heads, " + f"cache_len={layout.max_cache_len}, head_dim={layout.head_dim}, vocab={layout.vocab_size}" + ) - def run_step(token_id: int, position: int) -> np.ndarray: - inputs: dict[str, np.ndarray] = { - "input_ids": np.array([[token_id]], dtype=np.int64), - "position_ids": np.array([[position]], dtype=np.int64), - "attention_mask": np.ones((1, position + 1), dtype=np.int64), - } - inputs.update(past_key_values) - - outputs = context.compute(graph, inputs) - logits = np.asarray(outputs["logits"], dtype=np.float32)[0, 0, :] - - for layer in layers: - pk_name = f"present_{layer}_key" - pv_name = f"present_{layer}_value" - if pk_name not in outputs or pv_name not in outputs: - raise RuntimeError(f"Missing cache outputs for layer {layer}") - past_key_values[f"past_key_values_{layer}_key"] = np.asarray( - outputs[pk_name], dtype=np.float32 - ) - past_key_values[f"past_key_values_{layer}_value"] = np.asarray( - outputs[pv_name], dtype=np.float32 - ) + if len(prompt_ids) >= layout.max_cache_len: + raise RuntimeError( + f"Prompt too long: {len(prompt_ids)} tokens (max {layout.max_cache_len - 1})" + ) - if args.trace: - print( - f"TRACE pos={position} token_in={token_id} logits_argmax={int(np.argmax(logits))}" - ) - return logits + step_state = init_step_state(layout) + step_tensors = init_step_tensors(context, layout) print("Running generation...") rng = np.random.default_rng(args.seed) - position = 0 last_logits = None for token_id in prompt_ids: - last_logits = run_step(token_id, position) - position += 1 + last_logits = run_generation_step( + context, graph, layout, step_tensors, step_state, token_id + ) + if args.trace: + print( + f"TRACE pos={step_state.current_pos - 1} token_in={token_id} " + f"logits_argmax={int(np.argmax(last_logits))}" + ) if last_logits is None: raise RuntimeError("Failed to run prompt prefill") @@ -417,8 +659,14 @@ def run_step(token_id: int, position: int) -> np.ndarray: if args.stream: piece = tokenizer.decode([next_id]) print(piece, end="", flush=True) - last_logits = run_step(next_id, position) - position += 1 + last_logits = run_generation_step( + context, graph, layout, step_tensors, step_state, next_id + ) + if args.trace: + print( + f"TRACE pos={step_state.current_pos - 1} token_in={next_id} " + f"logits_argmax={int(np.argmax(last_logits))}" + ) if args.stream: print() diff --git a/pyproject.toml b/pyproject.toml index 41cbc46..2263c61 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -46,4 +46,4 @@ Issues = "https://github.com/rustnn/pywebnn/issues" module-name = "webnn._rustnn" python-source = "python" # Enable ONNX Runtime and CoreML by default for editable installs. -features = ["pyo3/extension-module", "onnx-runtime", "coreml-runtime"] +features = ["pyo3/extension-module", "onnx-runtime", "coreml-runtime", "dynamic-inputs"] diff --git a/python/webnn/__init__.pyi b/python/webnn/__init__.pyi index b9f8b5f..736ee85 100644 --- a/python/webnn/__init__.pyi +++ b/python/webnn/__init__.pyi @@ -117,6 +117,14 @@ class MLContext: """ ... + def resize_tensor(self, tensor: "MLTensor", shape: List[int]) -> None: + """Resize logical tensor shape for dynamic-input inference.""" + ... + + def set_tensor_capacity(self, tensor: "MLTensor", max_shape: List[int]) -> None: + """Pre-allocate tensor storage up to max_shape (logical shape unchanged).""" + ... + def create_tensor( self, shape: List[int], diff --git a/python/webnn/_rustnn.pyi b/python/webnn/_rustnn.pyi index 3dabc22..239d90c 100644 --- a/python/webnn/_rustnn.pyi +++ b/python/webnn/_rustnn.pyi @@ -45,6 +45,10 @@ class MLContext: self, graph: MLGraph, inputs: Dict[str, MLTensor], outputs: Dict[str, MLTensor] ) -> None: ... + def resize_tensor(self, tensor: MLTensor, shape: List[int]) -> None: ... + + def set_tensor_capacity(self, tensor: MLTensor, max_shape: List[int]) -> None: ... + def read_tensor(self, tensor: MLTensor) -> np.ndarray: ... def write_tensor(self, tensor: MLTensor, data: npt.ArrayLike) -> None: ... diff --git a/src/python/context.rs b/src/python/context.rs index 1c1b676..8d2307a 100644 --- a/src/python/context.rs +++ b/src/python/context.rs @@ -6,8 +6,9 @@ #![allow(clippy::useless_conversion)] use super::context_state::{ - build_context_options, compute_with_dispatch, create_rustnn_tensor, read_rustnn_tensor, - write_rustnn_tensor, ContextState, + build_context_options, compute_with_dispatch, create_rustnn_tensor, dispatch_with_ml_tensors, + read_rustnn_tensor, resize_rustnn_tensor, set_rustnn_tensor_capacity, write_rustnn_tensor, + ContextState, }; use super::graph::PyMLGraph; use super::graph_builder::PyMLGraphBuilder; @@ -139,27 +140,37 @@ impl PyMLContext { } } - let numpy_inputs = PyDict::new(py); - for (key, value) in inputs.iter() { - let tensor = value.cast::()?; - let numpy_array = Self::read_tensor(this.clone_ref(py), py, &tensor.borrow())?; - numpy_inputs.set_item(key, numpy_array)?; - } - - let results = { - let ctx = this.bind(py).borrow(); - let mut state = ctx.state.lock().unwrap(); - compute_with_dispatch(py, &mut state, graph, &this, &numpy_inputs)? - }; + let ctx = this.bind(py).borrow(); + let mut state = ctx.state.lock().unwrap(); + dispatch_with_ml_tensors(py, &mut state, graph, &this, inputs, outputs) + } - for (key, value) in outputs.iter() { - let tensor = value.cast::()?; - if let Some(result) = results.bind(py).get_item(&key)? { - Self::write_tensor(this.clone_ref(py), py, &tensor.borrow(), result.into())?; - } - } + /// Resize a tensor's logical shape for dynamic-input graphs (KV cache, masks). + /// + /// Storage may be pre-allocated with `set_tensor_capacity`. See `rustnn/examples/smollm_mlcontext.rs`. + fn resize_tensor( + this: Py, + _py: Python, + tensor: &mut PyMLTensor, + shape: Vec, + ) -> PyResult<()> { + tensor.check_destroyed()?; + let ctx = this.bind(_py).borrow(); + let mut state = ctx.state.lock().unwrap(); + resize_rustnn_tensor(&mut state, &mut tensor.inner, &shape) + } - Ok(()) + /// Pre-allocate tensor storage up to `max_shape` without changing the logical shape. + fn set_tensor_capacity( + this: Py, + _py: Python, + tensor: &mut PyMLTensor, + max_shape: Vec, + ) -> PyResult<()> { + tensor.check_destroyed()?; + let ctx = this.bind(_py).borrow(); + let mut state = ctx.state.lock().unwrap(); + set_rustnn_tensor_capacity(&mut state, &mut tensor.inner, &max_shape) } /// Convert graph to ONNX format From d86132ba0bb486044cc1467fb8d230f44e1abb06 Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Tue, 19 May 2026 20:15:40 +1000 Subject: [PATCH 3/8] more fixes to run flux 2 klein with the new mlcontext interface --- src/python/context_state.rs | 731 ++++++++++++++++++++++++++++++++++++ src/python/graph.rs | 18 + src/python/tensor.rs | 11 +- 3 files changed, 750 insertions(+), 10 deletions(-) create mode 100644 src/python/context_state.rs diff --git a/src/python/context_state.rs b/src/python/context_state.rs new file mode 100644 index 0000000..6e7da4f --- /dev/null +++ b/src/python/context_state.rs @@ -0,0 +1,731 @@ +//! Internal rustnn `MLContext` state shared by pywebnn bindings. + +use pyo3::exceptions::{PyRuntimeError, PyValueError}; +use pyo3::prelude::*; +use pyo3::types::{PyDict, PyTuple}; +use rustnn::graph::{get_static_or_max_size, DataType, GraphInfo}; +use rustnn::mlcontext::{ + MLContext, MLContextOptions, MLGraph, MLGraphBuilder, MLTensor, MLTensorDescriptor, + MLPowerPreference, +}; +use rustnn::operator_enums::MLOperandDataType; +use rustnn::Operation; +use std::collections::HashMap; + +use super::graph::PyMLGraph; +use super::operand::parse_data_type; +use super::tensor::RustnnTensor; + +/// Owned runtime state: context and compiled graphs share one lifetime region. +pub(crate) struct ContextState { + pub ml_context: MLContext<'static>, + /// Keeps graph IR alive for `'static` references held by compiled backends. + _graph_info_storage: Vec<&'static GraphInfo>, + pub graphs: Vec>>, +} + +pub(crate) fn map_rustnn_error(err: rustnn::error::Error) -> PyErr { + PyRuntimeError::new_err(err.to_string()) +} + +pub(crate) fn parse_power_preference(s: &str) -> PyResult { + match s { + "default" => Ok(MLPowerPreference::Default), + "high-performance" => Ok(MLPowerPreference::HighPerformance), + "low-power" => Ok(MLPowerPreference::LowPower), + _ => Err(PyValueError::new_err(format!( + "Invalid power_preference: {s}. Use 'default', 'high-performance', or 'low-power'" + ))), + } +} + +#[allow(dead_code)] +pub(crate) fn power_preference_to_string(pref: MLPowerPreference) -> String { + match pref { + MLPowerPreference::Default => "default".to_string(), + MLPowerPreference::HighPerformance => "high-performance".to_string(), + MLPowerPreference::LowPower => "low-power".to_string(), + } +} + +/// Map accelerated + legacy `device_type` hints to `MLContextOptions` (rustnn has no device_type field). +pub(crate) fn build_context_options( + power_preference: &str, + accelerated_requested: bool, + device_type: &str, +) -> PyResult { + let power_preference = parse_power_preference(power_preference)?; + let accelerated = match device_type { + "cpu" => false, + "gpu" | "npu" | "auto" => accelerated_requested, + other => { + return Err(PyValueError::new_err(format!( + "Invalid device_type: {other}. Use 'auto', 'cpu', 'gpu', or 'npu' (npu not supported on rustnn MLContext path)" + ))); + } + }; + Ok(MLContextOptions { + power_preference, + accelerated, + }) +} + +pub(crate) fn data_type_to_ml_operand(dt: DataType) -> PyResult { + Ok(match dt { + DataType::Float32 => MLOperandDataType::Float32, + DataType::Float16 => MLOperandDataType::Float16, + DataType::Int32 => MLOperandDataType::Int32, + DataType::Uint32 => MLOperandDataType::Uint32, + DataType::Int8 => MLOperandDataType::Int8, + DataType::Uint8 => MLOperandDataType::Uint8, + DataType::Int64 => MLOperandDataType::Int64, + DataType::Uint64 => MLOperandDataType::Uint64, + DataType::Int4 | DataType::Uint4 => { + return Err(PyValueError::new_err( + "4-bit types are not supported for MLTensor execution", + )); + } + }) +} + +pub(crate) fn ml_tensor_descriptor( + shape: &[u32], + data_type: &str, + readable: bool, + writable: bool, +) -> PyResult { + let dt = parse_data_type(data_type)?; + let ml_dt = data_type_to_ml_operand(dt)?; + let shape_u64: Vec = shape.iter().map(|&d| d as u64).collect(); + let mut desc = MLTensorDescriptor::new(ml_dt, shape_u64); + desc.set_readable(readable); + desc.set_writable(writable); + Ok(desc) +} + +impl ContextState { + pub fn new(options: MLContextOptions) -> PyResult { + // SAFETY: `MLContext` and backend builders do not expose references tied to caller + // stack frames; storing in this struct is the intended ownership model for pywebnn. + let ml_context = MLContext::create(&options).map_err(map_rustnn_error)?; + let ml_context = unsafe { std::mem::transmute::, MLContext<'static>>(ml_context) }; + Ok(Self { + ml_context, + _graph_info_storage: Vec::new(), + graphs: Vec::new(), + }) + } + + pub fn accelerated(&self) -> bool { + self.ml_context.accelerated() + } + + pub fn compile_graph(&mut self, graph_info: GraphInfo) -> PyResult { + let info: &'static GraphInfo = Box::leak(Box::new(graph_info)); + self._graph_info_storage.push(info); + let mut builder = MLGraphBuilder::new(&mut self.ml_context).map_err(map_rustnn_error)?; + let ml_graph = builder.build_graph_info(info).map_err(map_rustnn_error)?; + let ml_graph = + unsafe { std::mem::transmute::, MLGraph<'static>>(ml_graph) }; + let slot = self.graphs.len(); + self.graphs.push(Some(ml_graph)); + Ok(slot) + } + + pub fn dispatch_graph( + &mut self, + graph_slot: usize, + inputs: &HashMap<&str, &MLTensor>, + outputs: &HashMap<&str, &MLTensor>, + ) -> PyResult<()> { + let graph = self.graphs.get_mut(graph_slot).and_then(|g| g.as_mut()).ok_or_else(|| { + PyRuntimeError::new_err(format!("Invalid compiled graph slot: {graph_slot}")) + })?; + self.ml_context + .dispatch(graph, inputs, outputs) + .map_err(map_rustnn_error) + } +} + +pub(crate) fn validate_slice_ops(graph: &PyMLGraph) -> PyResult<()> { + for (idx, op) in graph.graph_info.operations.iter().enumerate() { + if let Operation::Slice { + input, + starts, + sizes, + .. + } = op + { + if starts.len() != sizes.len() { + return Err(PyValueError::new_err(format!( + "Slice operation at index {idx} has mismatched starts/sizes (starts.len()={}, sizes.len()={}).", + starts.len(), + sizes.len() + ))); + } + let both_empty = starts.is_empty() && sizes.is_empty(); + if both_empty { + let input_rank = graph + .graph_info + .operand(*input) + .map(|operand| operand.descriptor.static_or_max_shape().len()) + .unwrap_or(usize::MAX); + if input_rank != 0 { + return Err(PyValueError::new_err(format!( + "Slice operation at index {idx} has empty starts/sizes but input rank is {input_rank} (only 0D no-op slice may have empty starts/sizes)." + ))); + } + } + } + } + Ok(()) +} + +pub(crate) fn ensure_graph_compiled( + py: Python, + state: &mut ContextState, + graph: &mut PyMLGraph, + context: &Py, +) -> PyResult { + if let Some(slot) = graph.graph_slot { + return Ok(slot); + } + let slot = state.compile_graph(graph.graph_info.clone())?; + graph.graph_slot = Some(slot); + graph.context = Some(context.clone_ref(py)); + Ok(slot) +} + +fn operand_input_name(graph: &GraphInfo, input_id: u32) -> String { + graph + .operands + .get(input_id as usize) + .and_then(|op| op.name.clone()) + .unwrap_or_else(|| format!("input_{input_id}")) +} + +fn operand_output_name(graph: &GraphInfo, output_id: u32) -> String { + graph + .operands + .get(output_id as usize) + .and_then(|op| op.name.clone()) + .unwrap_or_else(|| format!("output_{output_id}")) +} + +/// Validate that each provided numpy input matches the graph's static input descriptor. +/// +/// Validation only: does not mutate `GraphInfo` or run shape inference (handled at load +/// via rustnn `from_graph_json`). Dynamic graphs must use `resize_tensor` + `dispatch`. +fn validate_compute_static_input_shapes( + graph_info: &GraphInfo, + named_input_shapes: &HashMap>, +) -> PyResult<()> { + for &input_id in &graph_info.input_operands { + let input_name = graph_info.operands[input_id as usize] + .name + .clone() + .unwrap_or_else(|| operand_input_name(graph_info, input_id)); + let Some(runtime_shape) = named_input_shapes.get(&input_name) else { + continue; + }; + + let descriptor = &graph_info.operands[input_id as usize].descriptor; + + if descriptor.shape.is_empty() { + return Err(PyValueError::new_err(format!( + "Input '{input_name}' has no shape in the graph; cannot run compute()" + ))); + } + + if descriptor.has_dynamic_dimensions() { + return Err(PyValueError::new_err(format!( + "Input '{input_name}' has dynamic dimensions in the graph. \ + compute() is for static shapes only; use resize_tensor + dispatch for variable sizes." + ))); + } + + let expected = descriptor.static_shape().ok_or_else(|| { + PyValueError::new_err(format!( + "Input '{input_name}' has a non-static graph shape that could not be resolved" + )) + })?; + if runtime_shape != &expected { + return Err(PyValueError::new_err(format!( + "Input '{input_name}' shape {runtime_shape:?} does not match graph input shape {expected:?}. \ + Static graph inputs cannot change at compute(); use resize_tensor + dispatch for variable sizes." + ))); + } + } + + Ok(()) +} + +fn operand_shape_for_compute(graph_info: &GraphInfo, operand_id: u32) -> PyResult> { + let operand = &graph_info.operands[operand_id as usize]; + if operand.descriptor.shape.is_empty() { + let name = operand + .name + .clone() + .unwrap_or_else(|| format!("operand_{operand_id}")); + return Err(PyValueError::new_err(format!( + "No shape available for '{name}'; reload the graph or fix the model export (output shapes are checked at load)" + ))); + } + Ok(operand.descriptor.static_or_max_shape()) +} + +fn numpy_shape_u32(array: &Bound<'_, PyAny>) -> PyResult> { + let shape_attr = array.getattr("shape")?; + let dims: Vec = if let Ok(tuple) = shape_attr.extract::>() { + tuple + } else { + let len: usize = shape_attr.len()?; + (0..len) + .map(|i| shape_attr.get_item(i)?.extract::()) + .collect::>()? + }; + Ok(dims.into_iter().map(|d| d as u32).collect()) +} + +fn numpy_dtype_str(dt: DataType) -> PyResult<&'static str> { + Ok(data_type_to_ml_operand(dt)?.as_str()) +} + +/// One-shot `compute()` for **static** graphs: validates numpy inputs against load-time +/// descriptors, then dispatches with ephemeral tensors. Variable sizes → `resize_tensor` + `dispatch`. +pub(crate) fn compute_with_dispatch( + py: Python, + state: &mut ContextState, + graph: &mut PyMLGraph, + context: &Py, + inputs: &Bound<'_, PyDict>, +) -> PyResult> { + validate_slice_ops(graph)?; + + let numpy = py.import("numpy")?; + + let mut named_input_shapes: HashMap> = HashMap::new(); + for &input_id in &graph.graph_info.input_operands { + let input_name = graph.graph_info.operands[input_id as usize] + .name + .clone() + .unwrap_or_else(|| operand_input_name(&graph.graph_info, input_id)); + let has_empty_dimension = graph.graph_info.operands[input_id as usize] + .descriptor + .shape + .iter() + .any(|d| get_static_or_max_size(d) == 0); + let is_kv_input = input_name.starts_with("past_key_values_"); + if has_empty_dimension && is_kv_input { + continue; + } + if let Some(array) = inputs.get_item(&input_name)? { + named_input_shapes.insert(input_name, numpy_shape_u32(&array)?); + } + } + + validate_compute_static_input_shapes(&graph.graph_info, &named_input_shapes)?; + + let graph_slot = ensure_graph_compiled(py, state, graph, context)?; + let graph_info = &graph.graph_info; + + let mut input_tensors: Vec<(String, MLTensor)> = Vec::new(); + + for &input_id in &graph_info.input_operands { + let input_op = graph_info.operands.get(input_id as usize).ok_or_else(|| { + PyValueError::new_err(format!("Input operand {input_id} not found in graph")) + })?; + + let input_name = input_op + .name + .clone() + .unwrap_or_else(|| operand_input_name(graph_info, input_id)); + + let has_empty_dimension = input_op + .descriptor + .shape + .iter() + .any(|d| get_static_or_max_size(d) == 0); + let is_kv_input = input_name.starts_with("past_key_values_"); + if has_empty_dimension && is_kv_input { + continue; + } + + let array = inputs.get_item(&input_name)?.ok_or_else(|| { + PyValueError::new_err(format!("Missing input: {input_name}")) + })?; + + let shape = numpy_shape_u32(&array)?; + let dtype_str = numpy_dtype_str(input_op.descriptor.data_type)?; + let desc = ml_tensor_descriptor(&shape, dtype_str, true, true)?; + let mut tensor = state + .ml_context + .create_tensor(&desc) + .map_err(map_rustnn_error)?; + + write_numpy_to_ml_tensor(py, state, &mut tensor, &desc, array, &numpy)?; + input_tensors.push((input_name, tensor)); + } + + let input_refs: HashMap<&str, &MLTensor> = input_tensors + .iter() + .map(|(name, tensor)| (name.as_str(), tensor)) + .collect(); + + let mut output_tensors: Vec<(String, MLTensor)> = Vec::new(); + + for &output_id in &graph_info.output_operands { + let output_op = graph_info.operands.get(output_id as usize).ok_or_else(|| { + PyValueError::new_err(format!("Output operand {output_id} not found in graph")) + })?; + let output_name = output_op + .name + .clone() + .unwrap_or_else(|| operand_output_name(graph_info, output_id)); + + let shape = operand_shape_for_compute(graph_info, output_id)?; + let dtype_str = numpy_dtype_str(output_op.descriptor.data_type)?; + let desc = ml_tensor_descriptor(&shape, dtype_str, true, true)?; + let tensor = state + .ml_context + .create_tensor(&desc) + .map_err(map_rustnn_error)?; + output_tensors.push((output_name, tensor)); + } + + let output_refs: HashMap<&str, &MLTensor> = output_tensors + .iter() + .map(|(name, tensor)| (name.as_str(), tensor)) + .collect(); + + state.dispatch_graph(graph_slot, &input_refs, &output_refs)?; + + let result = PyDict::new(py); + for (name, tensor) in &output_tensors { + let output_op = graph_info + .output_operands + .iter() + .find_map(|&id| { + let op = &graph_info.operands[id as usize]; + let n = op + .name + .clone() + .unwrap_or_else(|| operand_output_name(graph_info, id)); + if n == *name { + Some(op) + } else { + None + } + }) + .ok_or_else(|| PyRuntimeError::new_err(format!("Output metadata missing for {name}")))?; + + let arr = + read_ml_tensor_to_numpy(py, state, tensor, output_op.descriptor.data_type, &numpy)?; + result.set_item(name, arr)?; + } + + Ok(result.into()) +} + +fn write_numpy_to_ml_tensor( + _py: Python, + state: &mut ContextState, + tensor: &MLTensor, + desc: &MLTensorDescriptor, + array: Bound<'_, PyAny>, + _numpy: &Bound<'_, PyModule>, +) -> PyResult<()> { + let dt = desc.data_type(); + let array_typed = array.call_method1("astype", (dt.as_str(),))?; + let flat = array_typed.call_method0("flatten")?; + + match dt { + MLOperandDataType::Float32 => { + let data: Vec = flat.call_method0("tolist")?.extract()?; + state + .ml_context + .write_tensor(tensor, &data) + .map_err(map_rustnn_error) + } + MLOperandDataType::Float16 => { + let data_f32: Vec = flat.call_method0("tolist")?.extract()?; + let data: Vec = data_f32 + .iter() + .map(|f| half::f16::from_f32(*f).to_bits()) + .collect(); + state + .ml_context + .write_tensor(tensor, &data) + .map_err(map_rustnn_error) + } + MLOperandDataType::Int32 => { + let data: Vec = flat.call_method0("tolist")?.extract()?; + state + .ml_context + .write_tensor(tensor, &data) + .map_err(map_rustnn_error) + } + MLOperandDataType::Uint32 => { + let data: Vec = flat.call_method0("tolist")?.extract()?; + state + .ml_context + .write_tensor(tensor, &data) + .map_err(map_rustnn_error) + } + MLOperandDataType::Int8 => { + let data: Vec = flat.call_method0("tolist")?.extract()?; + state + .ml_context + .write_tensor(tensor, &data) + .map_err(map_rustnn_error) + } + MLOperandDataType::Uint8 => { + let data: Vec = flat.call_method0("tolist")?.extract()?; + state + .ml_context + .write_tensor(tensor, &data) + .map_err(map_rustnn_error) + } + MLOperandDataType::Int64 => { + let data: Vec = flat.call_method0("tolist")?.extract()?; + state + .ml_context + .write_tensor(tensor, &data) + .map_err(map_rustnn_error) + } + MLOperandDataType::Uint64 => { + let data: Vec = flat.call_method0("tolist")?.extract()?; + state + .ml_context + .write_tensor(tensor, &data) + .map_err(map_rustnn_error) + } + } +} + +fn read_ml_tensor_to_numpy<'py>( + py: Python<'py>, + state: &mut ContextState, + tensor: &MLTensor, + data_type: DataType, + numpy: &Bound<'py, PyModule>, +) -> PyResult> { + let shape: Vec = tensor.shape().iter().map(|&d| d as i64).collect(); + let shape_tuple = PyTuple::new(py, shape)?; + + match data_type { + DataType::Float32 => { + let n = tensor.shape().iter().product::() as usize; + let mut buf = vec![0f32; n]; + state + .ml_context + .read_tensor(tensor, &mut buf) + .map_err(map_rustnn_error)?; + let array = numpy.call_method1("array", (buf,))?; + array.call_method1("reshape", (shape_tuple,)) + } + DataType::Float16 => { + let n = tensor.shape().iter().product::() as usize; + let mut buf = vec![0u16; n]; + state + .ml_context + .read_tensor(tensor, &mut buf) + .map_err(map_rustnn_error)?; + let f32s: Vec = buf + .iter() + .map(|&b| half::f16::from_bits(b).to_f32()) + .collect(); + let array = numpy.call_method1("array", (f32s,))?; + array.call_method1("astype", ("float16",))? + .call_method1("reshape", (shape_tuple,)) + } + DataType::Int32 => { + let n = tensor.shape().iter().product::() as usize; + let mut buf = vec![0i32; n]; + state + .ml_context + .read_tensor(tensor, &mut buf) + .map_err(map_rustnn_error)?; + let array = numpy.call_method1("array", (buf,))?; + array.call_method1("reshape", (shape_tuple,)) + } + DataType::Uint32 => { + let n = tensor.shape().iter().product::() as usize; + let mut buf = vec![0u32; n]; + state + .ml_context + .read_tensor(tensor, &mut buf) + .map_err(map_rustnn_error)?; + let array = numpy.call_method1("array", (buf,))?; + array.call_method1("reshape", (shape_tuple,)) + } + DataType::Int8 => { + let n = tensor.shape().iter().product::() as usize; + let mut buf = vec![0i8; n]; + state + .ml_context + .read_tensor(tensor, &mut buf) + .map_err(map_rustnn_error)?; + let array = numpy.call_method1("array", (buf,))?; + array.call_method1("reshape", (shape_tuple,)) + } + DataType::Uint8 => { + let n = tensor.shape().iter().product::() as usize; + let mut buf = vec![0u8; n]; + state + .ml_context + .read_tensor(tensor, &mut buf) + .map_err(map_rustnn_error)?; + let array = numpy.call_method1("array", (buf,))?; + array.call_method1("reshape", (shape_tuple,)) + } + DataType::Int64 => { + let n = tensor.shape().iter().product::() as usize; + let mut buf = vec![0i64; n]; + state + .ml_context + .read_tensor(tensor, &mut buf) + .map_err(map_rustnn_error)?; + let array = numpy.call_method1("array", (buf,))?; + array.call_method1("reshape", (shape_tuple,)) + } + DataType::Uint64 => { + let n = tensor.shape().iter().product::() as usize; + let mut buf = vec![0u64; n]; + state + .ml_context + .read_tensor(tensor, &mut buf) + .map_err(map_rustnn_error)?; + let array = numpy.call_method1("array", (buf,))?; + array.call_method1("reshape", (shape_tuple,)) + } + DataType::Int4 | DataType::Uint4 => Err(PyValueError::new_err( + "4-bit types are not supported for MLTensor execution", + )), + } +} + +pub(crate) fn create_rustnn_tensor( + state: &mut ContextState, + shape: Vec, + data_type: &str, + readable: bool, + writable: bool, +) -> PyResult { + let desc = ml_tensor_descriptor(&shape, data_type, readable, writable)?; + let tensor = state + .ml_context + .create_tensor(&desc) + .map_err(map_rustnn_error)?; + Ok(RustnnTensor { tensor, desc }) +} + +pub(crate) fn read_rustnn_tensor<'py>( + py: Python<'py>, + state: &mut ContextState, + tensor: &RustnnTensor, +) -> PyResult> { + let numpy = py.import("numpy")?; + // TODO: use rustnn::data_type_from_ml_operand_dtype once it is public (see webnn_json.rs). + let data_type = match tensor.desc.data_type() { + MLOperandDataType::Float32 => DataType::Float32, + MLOperandDataType::Float16 => DataType::Float16, + MLOperandDataType::Int32 => DataType::Int32, + MLOperandDataType::Uint32 => DataType::Uint32, + MLOperandDataType::Int8 => DataType::Int8, + MLOperandDataType::Uint8 => DataType::Uint8, + MLOperandDataType::Int64 => DataType::Int64, + MLOperandDataType::Uint64 => DataType::Uint64, + }; + read_ml_tensor_to_numpy(py, state, &tensor.tensor, data_type, &numpy) +} + +pub(crate) fn write_rustnn_tensor( + py: Python, + state: &mut ContextState, + tensor: &RustnnTensor, + data: Bound<'_, PyAny>, +) -> PyResult<()> { + let numpy = py.import("numpy")?; + write_numpy_to_ml_tensor(py, state, &tensor.tensor, &tensor.desc, data, &numpy) +} + +fn sync_rustnn_tensor_desc(inner: &mut RustnnTensor) { + inner.desc.set_shape(inner.tensor.shape().to_vec()); +} + +pub(crate) fn resize_rustnn_tensor( + state: &mut ContextState, + inner: &mut RustnnTensor, + shape: &[u32], +) -> PyResult<()> { + let shape_u64: Vec = shape.iter().map(|&d| d as u64).collect(); + state + .ml_context + .rustnn_resize_tensor(&mut inner.tensor, &shape_u64) + .map_err(map_rustnn_error)?; + sync_rustnn_tensor_desc(inner); + Ok(()) +} + +pub(crate) fn set_rustnn_tensor_capacity( + state: &mut ContextState, + inner: &mut RustnnTensor, + max_shape: &[u32], +) -> PyResult<()> { + let shape_u64: Vec = max_shape.iter().map(|&d| d as u64).collect(); + state + .ml_context + .rustnn_set_tensor_capacity(&mut inner.tensor, &shape_u64) + .map_err(map_rustnn_error)?; + sync_rustnn_tensor_desc(inner); + Ok(()) +} + +/// Dispatch with persistent `MLTensor` bindings (no numpy round-trip). +pub(crate) fn dispatch_with_ml_tensors( + py: Python, + state: &mut ContextState, + graph: &mut PyMLGraph, + context: &Py, + inputs: &Bound<'_, PyDict>, + outputs: &Bound<'_, PyDict>, +) -> PyResult<()> { + validate_slice_ops(graph)?; + let slot = ensure_graph_compiled(py, state, graph, context)?; + + let mut input_names = Vec::new(); + let mut input_tensors = Vec::new(); + for (key, value) in inputs.iter() { + let name: String = key.extract()?; + let py_tensor = value.cast::()?; + let bound = py_tensor.borrow(); + bound.check_destroyed()?; + input_names.push(name); + input_tensors.push(bound.inner.tensor.clone()); + } + + let mut output_names = Vec::new(); + let mut output_tensors = Vec::new(); + for (key, value) in outputs.iter() { + let name: String = key.extract()?; + let py_tensor = value.cast::()?; + let bound = py_tensor.borrow(); + bound.check_destroyed()?; + output_names.push(name); + output_tensors.push(bound.inner.tensor.clone()); + } + + let input_refs: HashMap<&str, &MLTensor> = input_names + .iter() + .zip(&input_tensors) + .map(|(name, tensor)| (name.as_str(), tensor)) + .collect(); + let output_refs: HashMap<&str, &MLTensor> = output_names + .iter() + .zip(&output_tensors) + .map(|(name, tensor)| (name.as_str(), tensor)) + .collect(); + + state.dispatch_graph(slot, &input_refs, &output_refs) +} diff --git a/src/python/graph.rs b/src/python/graph.rs index e23ab02..d5f75fc 100644 --- a/src/python/graph.rs +++ b/src/python/graph.rs @@ -12,6 +12,23 @@ use rustnn::webnn_json; use std::fs; use std::path::Path; +/// After `from_graph_json` (which runs rustnn shape inference), require inferred output shapes. +fn ensure_graph_output_shapes(graph_info: &GraphInfo) -> PyResult<()> { + for &output_id in &graph_info.output_operands { + let operand = &graph_info.operands[output_id as usize]; + let name = operand + .name + .clone() + .unwrap_or_else(|| format!("output_{output_id}")); + if operand.descriptor.shape.is_empty() { + return Err(PyIOError::new_err(format!( + "Graph output '{name}' has no shape after load; rustnn shape inference did not complete for this graph" + ))); + } + } + Ok(()) +} + /// Represents a compiled computational graph #[pyclass(name = "MLGraph")] pub struct PyMLGraph { @@ -410,6 +427,7 @@ impl PyMLGraph { // Convert GraphJson to GraphInfo let graph_info = webnn_json::from_graph_json(&graph_json) .map_err(|e| PyIOError::new_err(format!("Failed to convert graph: {}", e)))?; + ensure_graph_output_shapes(&graph_info)?; Ok(PyMLGraph { graph_info, diff --git a/src/python/tensor.rs b/src/python/tensor.rs index 559d944..6f74906 100644 --- a/src/python/tensor.rs +++ b/src/python/tensor.rs @@ -45,16 +45,7 @@ impl PyMLTensor { impl PyMLTensor { #[getter] fn data_type(&self) -> String { - match self.inner.desc.data_type() { - rustnn::operator_enums::MLOperandDataType::Float32 => "float32".to_string(), - rustnn::operator_enums::MLOperandDataType::Float16 => "float16".to_string(), - rustnn::operator_enums::MLOperandDataType::Int32 => "int32".to_string(), - rustnn::operator_enums::MLOperandDataType::Uint32 => "uint32".to_string(), - rustnn::operator_enums::MLOperandDataType::Int8 => "int8".to_string(), - rustnn::operator_enums::MLOperandDataType::Uint8 => "uint8".to_string(), - rustnn::operator_enums::MLOperandDataType::Int64 => "int64".to_string(), - rustnn::operator_enums::MLOperandDataType::Uint64 => "uint64".to_string(), - } + self.inner.desc.data_type().as_str().to_string() } #[getter] From 97a8188473bb6b6528ba7211d27ea644198830b0 Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Thu, 18 Jun 2026 14:32:39 +0200 Subject: [PATCH 4/8] Update to latest changes in RustNN and add int4 support. --- Cargo.toml | 6 ++++-- src/python/context_state.rs | 17 ++++++++++++----- src/python/graph_builder.rs | 23 +++++++++++++++++------ 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2c3c54f..3fde03c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ keywords = ["webnn", "python", "machine-learning", "neural-networks", "ai"] categories = ["api-bindings", "science"] [lib] -crate-type = ["cdylib"] +crate-type = ["cdylib", "rlib"] name = "pywebnn" [features] @@ -22,14 +22,16 @@ dynamic-inputs = ["rustnn/dynamic-inputs"] [dependencies] pyo3 = { version = "0.28", features = ["extension-module"] } +bytemuck = "1.14" rustnn = { git = "https://github.com/rustnn/rustnn", branch = "main" } +#rustnn = { path = "../rustnn" } serde_json = "1.0" webnn-graph = { git = "https://github.com/rustnn/webnn-graph", branch = "main" } half = "2.4" regex = "1.11" # Optional runtime dependencies ndarray = { version = "0.16", optional = true } -ort = { version = "=2.0.0-rc.11", optional = true, features = ["ndarray", "half", "load-dynamic"] } +ort = { version = "=2.0.0-rc.12", optional = true, features = ["ndarray", "half", "load-dynamic"] } objc = { version = "0.2", optional = true } # Make this crate independent from the parent workspace diff --git a/src/python/context_state.rs b/src/python/context_state.rs index 6e7da4f..0ed9ea3 100644 --- a/src/python/context_state.rs +++ b/src/python/context_state.rs @@ -64,10 +64,7 @@ pub(crate) fn build_context_options( ))); } }; - Ok(MLContextOptions { - power_preference, - accelerated, - }) + Ok(MLContextOptions::new(power_preference, accelerated)) } pub(crate) fn data_type_to_ml_operand(dt: DataType) -> PyResult { @@ -124,7 +121,9 @@ impl ContextState { let info: &'static GraphInfo = Box::leak(Box::new(graph_info)); self._graph_info_storage.push(info); let mut builder = MLGraphBuilder::new(&mut self.ml_context).map_err(map_rustnn_error)?; - let ml_graph = builder.build_graph_info(info).map_err(map_rustnn_error)?; + let ml_graph = builder + .build_graph_info(info.clone()) + .map_err(map_rustnn_error)?; let ml_graph = unsafe { std::mem::transmute::, MLGraph<'static>>(ml_graph) }; let slot = self.graphs.len(); @@ -500,6 +499,9 @@ fn write_numpy_to_ml_tensor( .write_tensor(tensor, &data) .map_err(map_rustnn_error) } + MLOperandDataType::Int4 | MLOperandDataType::Uint4 => Err(PyValueError::new_err( + "4-bit types are not supported for MLTensor execution", + )), } } @@ -636,6 +638,11 @@ pub(crate) fn read_rustnn_tensor<'py>( MLOperandDataType::Uint8 => DataType::Uint8, MLOperandDataType::Int64 => DataType::Int64, MLOperandDataType::Uint64 => DataType::Uint64, + MLOperandDataType::Int4 | MLOperandDataType::Uint4 => { + return Err(PyValueError::new_err( + "4-bit types are not supported for MLTensor execution", + )); + } }; read_ml_tensor_to_numpy(py, state, &tensor.tensor, data_type, &numpy) } diff --git a/src/python/graph_builder.rs b/src/python/graph_builder.rs index 0ab6ca1..c64a524 100644 --- a/src/python/graph_builder.rs +++ b/src/python/graph_builder.rs @@ -1982,12 +1982,27 @@ impl PyMLGraphBuilder { } // 0D no-op: output shape is same as input + let strides_vec: Vec = strides + .as_ref() + .map(|s| s.iter().map(|&x| x as u32).collect()) + .unwrap_or_default(); + let strides_arg = if strides_vec.is_empty() { + None + } else { + Some(strides_vec.as_slice()) + }; + // Infer output shape (for 0D with empty starts/sizes, use input shape; else infer) let output_shape = if input_rank == 0 && starts.is_empty() { input.descriptor.static_or_max_shape() } else { - infer_slice_shape(&input.descriptor.static_or_max_shape(), &starts, &sizes) - .map_err(|e| pyo3::exceptions::PyValueError::new_err(e.to_string()))? + infer_slice_shape( + &input.descriptor.static_or_max_shape(), + &starts, + &sizes, + strides_arg, + ) + .map_err(|e| pyo3::exceptions::PyValueError::new_err(e.to_string()))? }; let output_descriptor = OperandDescriptor { @@ -1999,10 +2014,6 @@ impl PyMLGraphBuilder { let output_id = self.next_operand_id; self.next_operand_id += 1; - let strides_vec: Vec = strides - .map(|s| s.iter().map(|&x| x as u32).collect()) - .unwrap_or_default(); - let sizes_dims: Vec = sizes.iter().copied().map(MLDimension::Static).collect(); let slice_opts = MLSliceOptions { From fbc4d9a8941ce153ce8819653ee39c5bcff32e87 Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Thu, 18 Jun 2026 14:49:42 +0200 Subject: [PATCH 5/8] add int4 support --- python/webnn/__init__.py | 51 ++++----- src/python/context.rs | 19 ++-- src/python/context_state.rs | 134 ++++++++++++++++------ src/python/graph_builder.rs | 8 +- tests/conftest.py | 127 +++++++-------------- tests/test_device_tensors.py | 4 +- tests/test_python_api.py | 212 ++++++++++++++++++++--------------- 7 files changed, 299 insertions(+), 256 deletions(-) diff --git a/python/webnn/__init__.py b/python/webnn/__init__.py index 84d78a6..4b9ccf8 100644 --- a/python/webnn/__init__.py +++ b/python/webnn/__init__.py @@ -28,10 +28,14 @@ import numpy as np import numpy.typing as npt -# Set up ONNX Runtime dynamic library path if not already set. -# Users can override by setting ORT_DYLIB_PATH before importing webnn. +# Configure the native runtime library path when needed (implementation detail). +# Users may set WEBNN_RUNTIME_LIBRARY before importing webnn. +_RUNTIME_LIBRARY_ENV = "WEBNN_RUNTIME_LIBRARY" +if _RUNTIME_LIBRARY_ENV in os.environ: + os.environ.setdefault("ORT_DYLIB_PATH", os.environ[_RUNTIME_LIBRARY_ENV]) + if "ORT_DYLIB_PATH" not in os.environ: - def _is_core_ort_library(path: str) -> bool: + def _is_core_runtime_library(path: str) -> bool: name = os.path.basename(path).lower() if any(token in name for token in ("providers", "pybind", "extensions")): return False @@ -41,61 +45,54 @@ def _is_core_ort_library(path: str) -> bool: return name.startswith("onnxruntime") and name.endswith(".dll") return name.startswith("libonnxruntime.so") - def _exports_ort_api_base(path: str) -> bool: + def _exports_runtime_api(path: str) -> bool: try: lib = ctypes.CDLL(path) return hasattr(lib, "OrtGetApiBase") except Exception: return False - def _pick_ort_dylib(candidates): - core_candidates = [p for p in candidates if _is_core_ort_library(p)] - # Prefer stable ordering and shortest basename (libonnxruntime.so before versioned variants). + def _pick_runtime_library(candidates): + core_candidates = [p for p in candidates if _is_core_runtime_library(p)] core_candidates.sort(key=lambda p: (len(os.path.basename(p)), os.path.basename(p))) for candidate in core_candidates: - if _exports_ort_api_base(candidate): + if _exports_runtime_api(candidate): return candidate return None - # Try to find ONNX Runtime from the installed onnxruntime package try: - import onnxruntime import glob - # Get the onnxruntime package directory - ort_file = getattr(onnxruntime, "__file__", None) - ort_package_dir = ( - os.path.dirname(os.path.abspath(str(ort_file))) if ort_file else "" + import onnxruntime + + runtime_file = getattr(onnxruntime, "__file__", None) + runtime_package_dir = ( + os.path.dirname(os.path.abspath(str(runtime_file))) if runtime_file else "" ) - if ort_package_dir: - # ONNX Runtime libraries are typically in the capi subdirectory - ort_capi_dir = os.path.join(ort_package_dir, "capi") + if runtime_package_dir: + capi_dir = os.path.join(runtime_package_dir, "capi") - # Check for platform-specific library files if sys.platform == "darwin": lib_pattern = "libonnxruntime*.dylib" elif sys.platform == "win32": lib_pattern = "onnxruntime*.dll" - else: # Linux and other Unix-like + else: lib_pattern = "libonnxruntime*.so*" - # Look for the library in the capi directory - if os.path.exists(ort_capi_dir): - ort_libs = glob.glob(os.path.join(ort_capi_dir, lib_pattern)) - selected = _pick_ort_dylib(ort_libs) + if os.path.exists(capi_dir): + libs = glob.glob(os.path.join(capi_dir, lib_pattern)) + selected = _pick_runtime_library(libs) if selected: os.environ["ORT_DYLIB_PATH"] = selected - # Fallback: check the main package directory if "ORT_DYLIB_PATH" not in os.environ: - ort_libs = glob.glob(os.path.join(ort_package_dir, lib_pattern)) - selected = _pick_ort_dylib(ort_libs) + libs = glob.glob(os.path.join(runtime_package_dir, lib_pattern)) + selected = _pick_runtime_library(libs) if selected: os.environ["ORT_DYLIB_PATH"] = selected except ImportError: - # onnxruntime package not installed - user must set ORT_DYLIB_PATH manually pass from ._rustnn import ( diff --git a/src/python/context.rs b/src/python/context.rs index 8d2307a..0e2979c 100644 --- a/src/python/context.rs +++ b/src/python/context.rs @@ -45,9 +45,9 @@ impl PyML { /// decides the actual device allocation based on runtime conditions. /// Query context.accelerated after creation to check if acceleration is available. /// device_type="auto" uses automatic backend selection based on availability. - /// device_type="cpu" forces ONNX CPU backend. - /// device_type="gpu" forces ONNX GPU backend. - /// device_type="npu" forces CoreML backend (macOS only). + /// device_type="cpu" requests CPU execution. + /// device_type="gpu" requests GPU-accelerated execution. + /// device_type="npu" requests NPU execution (platform-dependent, e.g. Apple Neural Engine). #[pyo3(signature = (power_preference="default", accelerated=true, device_type="auto"))] fn create_context( &self, @@ -669,24 +669,19 @@ impl PyMLContext { /// available (otherwise the fallback path returns zeros). fn backend_info(&self, py: Python<'_>) -> PyResult> { let info = PyDict::new(py); - let onnx_compiled = cfg!(feature = "onnx-runtime"); + let execution_compiled = cfg!(feature = "onnx-runtime"); let coreml_compiled = cfg!(all(target_os = "macos", feature = "coreml-runtime")); let trtx_compiled = cfg!(any(feature = "trtx-runtime", feature = "trtx-runtime-mock")); - info.set_item("backend", "rustnn_mlcontext")?; info.set_item("accelerated_available", self.accelerated())?; info.set_item("device_type_requested", &self.device_type)?; info.set_item("compiled_features", { let compiled = PyDict::new(py); - compiled.set_item("onnx_runtime", onnx_compiled)?; - compiled.set_item("coreml_runtime", coreml_compiled)?; - compiled.set_item("trtx_runtime", trtx_compiled)?; + compiled.set_item("execution", execution_compiled)?; + compiled.set_item("coreml", coreml_compiled)?; + compiled.set_item("trtx", trtx_compiled)?; compiled })?; - info.set_item( - "note", - "Execution uses rustnn MLContext::dispatch; CoreML/NPU not wired on this path", - )?; Ok(info.into()) } diff --git a/src/python/context_state.rs b/src/python/context_state.rs index 0ed9ea3..be44f6a 100644 --- a/src/python/context_state.rs +++ b/src/python/context_state.rs @@ -3,7 +3,9 @@ use pyo3::exceptions::{PyRuntimeError, PyValueError}; use pyo3::prelude::*; use pyo3::types::{PyDict, PyTuple}; -use rustnn::graph::{get_static_or_max_size, DataType, GraphInfo}; +use rustnn::graph::{ + get_static_or_max_size, pack_int4, pack_uint4, unpack_int4, unpack_uint4, DataType, GraphInfo, +}; use rustnn::mlcontext::{ MLContext, MLContextOptions, MLGraph, MLGraphBuilder, MLTensor, MLTensorDescriptor, MLPowerPreference, @@ -68,21 +70,58 @@ pub(crate) fn build_context_options( } pub(crate) fn data_type_to_ml_operand(dt: DataType) -> PyResult { - Ok(match dt { - DataType::Float32 => MLOperandDataType::Float32, - DataType::Float16 => MLOperandDataType::Float16, - DataType::Int32 => MLOperandDataType::Int32, - DataType::Uint32 => MLOperandDataType::Uint32, - DataType::Int8 => MLOperandDataType::Int8, - DataType::Uint8 => MLOperandDataType::Uint8, - DataType::Int64 => MLOperandDataType::Int64, - DataType::Uint64 => MLOperandDataType::Uint64, - DataType::Int4 | DataType::Uint4 => { - return Err(PyValueError::new_err( - "4-bit types are not supported for MLTensor execution", - )); + MLOperandDataType::try_from(dt).map_err(|e| PyValueError::new_err(e.to_string())) +} + +fn tensor_element_count(tensor: &MLTensor) -> usize { + tensor.shape().iter().product::() as usize +} + +fn packed_storage_bytes(data_type: DataType, elements: usize) -> PyResult { + data_type + .storage_byte_length(elements) + .ok_or_else(|| PyValueError::new_err(format!("invalid element count for {data_type:?}"))) +} + +fn extract_int4_logical_values(flat: Bound<'_, PyAny>) -> PyResult> { + let values: Vec = flat.call_method0("tolist")?.extract()?; + for (idx, value) in values.iter().enumerate() { + if !(-8..=7).contains(value) { + return Err(PyValueError::new_err(format!( + "int4 values must be in [-8, 7]; got {value} at index {idx}" + ))); } - }) + } + Ok(values) +} + +fn extract_uint4_logical_values(flat: Bound<'_, PyAny>) -> PyResult> { + let values: Vec = flat.call_method0("tolist")?.extract()?; + let mut out = Vec::with_capacity(values.len()); + for (idx, value) in values.iter().enumerate() { + if !(0..=15).contains(value) { + return Err(PyValueError::new_err(format!( + "uint4 values must be in [0, 15]; got {value} at index {idx}" + ))); + } + out.push(*value as u8); + } + Ok(out) +} + +/// Pack NumPy logical values into WebNN constant/tensor bytes for 4-bit types. +pub(crate) fn pack_numpy_to_4bit_bytes( + array: Bound<'_, PyAny>, + data_type: DataType, +) -> PyResult> { + let flat = array.call_method0("flatten")?; + match data_type { + DataType::Int4 => Ok(pack_int4(&extract_int4_logical_values(flat)?)), + DataType::Uint4 => Ok(pack_uint4(&extract_uint4_logical_values(flat)?)), + _ => Err(PyValueError::new_err( + "pack_numpy_to_4bit_bytes expects int4 or uint4", + )), + } } pub(crate) fn ml_tensor_descriptor( @@ -435,6 +474,19 @@ fn write_numpy_to_ml_tensor( _numpy: &Bound<'_, PyModule>, ) -> PyResult<()> { let dt = desc.data_type(); + if matches!(dt, MLOperandDataType::Int4 | MLOperandDataType::Uint4) { + let data_type = match dt { + MLOperandDataType::Int4 => DataType::Int4, + MLOperandDataType::Uint4 => DataType::Uint4, + _ => unreachable!(), + }; + let packed = pack_numpy_to_4bit_bytes(array, data_type)?; + return state + .ml_context + .write_tensor(tensor, &packed) + .map_err(map_rustnn_error); + } + let array_typed = array.call_method1("astype", (dt.as_str(),))?; let flat = array_typed.call_method0("flatten")?; @@ -499,9 +551,7 @@ fn write_numpy_to_ml_tensor( .write_tensor(tensor, &data) .map_err(map_rustnn_error) } - MLOperandDataType::Int4 | MLOperandDataType::Uint4 => Err(PyValueError::new_err( - "4-bit types are not supported for MLTensor execution", - )), + MLOperandDataType::Int4 | MLOperandDataType::Uint4 => unreachable!(), } } @@ -601,9 +651,34 @@ fn read_ml_tensor_to_numpy<'py>( let array = numpy.call_method1("array", (buf,))?; array.call_method1("reshape", (shape_tuple,)) } - DataType::Int4 | DataType::Uint4 => Err(PyValueError::new_err( - "4-bit types are not supported for MLTensor execution", - )), + DataType::Int4 => { + let elements = tensor_element_count(tensor); + let byte_len = packed_storage_bytes(data_type, elements)?; + let mut packed = vec![0u8; byte_len]; + state + .ml_context + .read_tensor(tensor, &mut packed) + .map_err(map_rustnn_error)?; + let logical = unpack_int4(&packed, elements); + let values: Vec = logical.into_iter().map(|v| v as i8).collect(); + let array = numpy.call_method1("array", (values,))?; + array.call_method1("astype", ("int8",))? + .call_method1("reshape", (shape_tuple,)) + } + DataType::Uint4 => { + let elements = tensor_element_count(tensor); + let byte_len = packed_storage_bytes(data_type, elements)?; + let mut packed = vec![0u8; byte_len]; + state + .ml_context + .read_tensor(tensor, &mut packed) + .map_err(map_rustnn_error)?; + let logical = unpack_uint4(&packed, elements); + let values: Vec = logical.into_iter().map(|v| v as i32).collect(); + let array = numpy.call_method1("array", (values,))?; + array.call_method1("astype", ("uint8",))? + .call_method1("reshape", (shape_tuple,)) + } } } @@ -628,22 +703,7 @@ pub(crate) fn read_rustnn_tensor<'py>( tensor: &RustnnTensor, ) -> PyResult> { let numpy = py.import("numpy")?; - // TODO: use rustnn::data_type_from_ml_operand_dtype once it is public (see webnn_json.rs). - let data_type = match tensor.desc.data_type() { - MLOperandDataType::Float32 => DataType::Float32, - MLOperandDataType::Float16 => DataType::Float16, - MLOperandDataType::Int32 => DataType::Int32, - MLOperandDataType::Uint32 => DataType::Uint32, - MLOperandDataType::Int8 => DataType::Int8, - MLOperandDataType::Uint8 => DataType::Uint8, - MLOperandDataType::Int64 => DataType::Int64, - MLOperandDataType::Uint64 => DataType::Uint64, - MLOperandDataType::Int4 | MLOperandDataType::Uint4 => { - return Err(PyValueError::new_err( - "4-bit types are not supported for MLTensor execution", - )); - } - }; + let data_type = DataType::from(tensor.desc.data_type()); read_ml_tensor_to_numpy(py, state, &tensor.tensor, data_type, &numpy) } diff --git a/src/python/graph_builder.rs b/src/python/graph_builder.rs index c64a524..71e21a8 100644 --- a/src/python/graph_builder.rs +++ b/src/python/graph_builder.rs @@ -7,6 +7,7 @@ #![allow(clippy::too_many_arguments)] use super::graph::PyMLGraph; +use super::context_state::pack_numpy_to_4bit_bytes; use super::operand::{parse_data_type, PyMLOperand}; use pyo3::prelude::*; use pyo3::types::PyDict; @@ -125,8 +126,11 @@ impl PyMLGraphBuilder { pending_permutation: Vec::new(), }; - // Convert array to bytes - let bytes: Vec = array.call_method0("tobytes")?.extract()?; + // Convert array to bytes (nibble-packed for int4/uint4) + let bytes = match actual_dtype { + DataType::Int4 | DataType::Uint4 => pack_numpy_to_4bit_bytes(array, actual_dtype)?, + _ => array.call_method0("tobytes")?.extract()?, + }; let constant_data = ConstantData { data: bytes, label: None, diff --git a/tests/conftest.py b/tests/conftest.py index ac05060..8c811ee 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,92 +5,58 @@ """ import pytest -import numpy as np - -# Try to import webnn module -try: - import webnn - WEBNN_AVAILABLE = True -except ImportError: - WEBNN_AVAILABLE = False +from runtime_support import ( + COREML_BACKEND_AVAILABLE, + EXECUTION_BACKEND_AVAILABLE, + requires_coreml_backend, + requires_execution_backend, +) -def _has_onnx_runtime(): - """Check if ONNX runtime is available for actual computation""" - if not WEBNN_AVAILABLE: - return False - try: - ml = webnn.ML() - # Explicitly force ONNX GPU backend with device_type="gpu" - ctx = ml.create_context(power_preference="default", accelerated=True, device_type="gpu") - builder = ctx.create_graph_builder() - x = builder.input("x", [1, 1], "float32") - y = builder.relu(x) - graph = builder.build({"output": y}) - result = ctx.compute(graph, {"x": np.array([[1.0]], dtype=np.float32)}) - # If ONNX runtime is available, result should be non-zero - return np.any(result["output"] != 0) - except: - return False - - -def _has_coreml_runtime(): - """Check if CoreML runtime is available (macOS only)""" - if not WEBNN_AVAILABLE: - return False - try: - import platform - if platform.system() != "Darwin": - return False - ml = webnn.ML() - # Explicitly force CoreML backend with device_type="npu" - ctx = ml.create_context(power_preference="default", accelerated=True, device_type="npu") - builder = ctx.create_graph_builder() - x = builder.input("x", [1, 1], "float32") - y = builder.relu(x) - graph = builder.build({"output": y}) - result = ctx.compute(graph, {"x": np.array([[1.0]], dtype=np.float32)}) - # If CoreML runtime is available, result should be non-zero - return np.any(result["output"] != 0) - except Exception as e: - # Log the error for debugging but don't fail - print(f"CoreML runtime check failed: {e}") - return False - - -ONNX_RUNTIME_AVAILABLE = _has_onnx_runtime() -COREML_RUNTIME_AVAILABLE = _has_coreml_runtime() +# Re-export markers for tests that import from conftest. +__all__ = [ + "requires_execution_backend", + "requires_coreml_backend", + "EXECUTION_BACKEND_AVAILABLE", + "COREML_BACKEND_AVAILABLE", +] # Pytest markers def pytest_configure(config): """Register custom markers.""" + config.addinivalue_line("markers", "wpt: WebNN W3C Web Platform Tests") config.addinivalue_line( - "markers", "wpt: WebNN W3C Web Platform Tests" - ) - config.addinivalue_line( - "markers", "requires_onnx_runtime: Test requires ONNX Runtime" - ) - config.addinivalue_line( - "markers", "requires_coreml_runtime: Test requires CoreML Runtime" + "markers", + "requires_execution_backend: Test requires a working MLContext execution backend", ) config.addinivalue_line( - "markers", "slow: Tests with large inputs that take longer to run" + "markers", + "requires_coreml_backend: Test requires CoreML (NPU) backend on macOS", ) + config.addinivalue_line("markers", "slow: Tests with large inputs that take longer to run") @pytest.fixture(scope="session") def ml(): """Create ML instance (session-scoped).""" - if not WEBNN_AVAILABLE: + try: + import webnn + except ImportError: pytest.skip("webnn not built yet") return webnn.ML() -@pytest.fixture(params=[ - pytest.param("onnx", id="onnx") if ONNX_RUNTIME_AVAILABLE else pytest.param(None, id="no_onnx", marks=pytest.mark.skip), - pytest.param("coreml", id="coreml") if COREML_RUNTIME_AVAILABLE else pytest.param(None, id="no_coreml", marks=pytest.mark.skip), -]) +@pytest.fixture( + params=[ + pytest.param("cpu", id="cpu") + if EXECUTION_BACKEND_AVAILABLE + else pytest.param(None, id="no_cpu_backend", marks=pytest.mark.skip), + pytest.param("coreml", id="coreml") + if COREML_BACKEND_AVAILABLE + else pytest.param(None, id="no_coreml_backend", marks=pytest.mark.skip), + ] +) def backend_name(request): """Return the backend name for the current test.""" return request.param @@ -100,38 +66,25 @@ def backend_name(request): def context(backend_name, ml): """Create ML context for the specified backend. - Uses explicit device_type to force backend selection: - - "onnx" -> device_type="gpu" (ONNX GPU backend) - - "coreml" -> device_type="npu" (CoreML backend on macOS) + Uses WebNN device_type hints (cpu / npu), not implementation-specific names. """ if backend_name is None: pytest.skip("Backend not available") - # Map backend name to device_type for explicit backend selection device_type_map = { - "onnx": "gpu", # Force ONNX GPU backend - "coreml": "npu", # Force CoreML backend (macOS only) + "cpu": "cpu", + "coreml": "npu", } device_type = device_type_map.get(backend_name, "auto") - ctx = ml.create_context(power_preference="default", accelerated=True, device_type=device_type) - return ctx + return ml.create_context( + power_preference="default", + accelerated=backend_name != "cpu", + device_type=device_type, + ) @pytest.fixture def builder(context): """Create graph builder.""" return context.create_graph_builder() - - -# Mark for tests requiring ONNX runtime -requires_onnx_runtime = pytest.mark.skipif( - not ONNX_RUNTIME_AVAILABLE, - reason="ONNX runtime not available - built without onnx-runtime feature" -) - -# Mark for tests requiring CoreML runtime -requires_coreml_runtime = pytest.mark.skipif( - not COREML_RUNTIME_AVAILABLE, - reason="CoreML runtime not available - macOS only or built without coreml-runtime feature" -) diff --git a/tests/test_device_tensors.py b/tests/test_device_tensors.py index 1cddfc8..526ebae 100644 --- a/tests/test_device_tensors.py +++ b/tests/test_device_tensors.py @@ -43,8 +43,8 @@ def test_create_device_tensor(context, simple_graph): assert tensor.shape == [2, 3] assert tensor.data_type == "float32" assert tensor.size == 6 - # Device should be cpu since we're using CPU backend - assert "cpu" in tensor.device.lower() or "onnx" in tensor.backend.lower() + # Device metadata is backend-specific; CPU contexts should report a CPU device. + assert "cpu" in tensor.device.lower() def test_device_tensor_write_read(context, simple_graph): diff --git a/tests/test_python_api.py b/tests/test_python_api.py index 7499b91..5575446 100644 --- a/tests/test_python_api.py +++ b/tests/test_python_api.py @@ -5,6 +5,8 @@ import pytest import numpy as np +from runtime_support import requires_execution_backend + # Note: Import will only work after building with maturin try: import webnn @@ -13,30 +15,6 @@ WEBNN_AVAILABLE = False pytestmark = pytest.mark.skip(reason="webnn not built yet") -# Check if ONNX runtime is available by testing if compute returns non-zero values -def _has_onnx_runtime(): - """Check if ONNX runtime is available for actual computation""" - if not WEBNN_AVAILABLE: - return False - try: - ml = webnn.ML() - ctx = ml.create_context(power_preference="default", accelerated=False) - builder = ctx.create_graph_builder() - x = builder.input("x", [1, 1], "float32") - y = builder.relu(x) - graph = builder.build({"output": y}) - result = ctx.compute(graph, {"x": np.array([[1.0]], dtype=np.float32)}) - # If ONNX runtime is available, result should be non-zero - return np.any(result["output"] != 0) - except: - return False - -ONNX_RUNTIME_AVAILABLE = _has_onnx_runtime() -requires_onnx_runtime = pytest.mark.skipif( - not ONNX_RUNTIME_AVAILABLE, - reason="ONNX runtime not available - built without onnx-runtime feature" -) - @pytest.fixture def ml(): @@ -204,9 +182,9 @@ def test_simple_computation(context, builder): assert results["z"].shape == (2, 3) -@requires_onnx_runtime +@requires_execution_backend def test_simple_computation_with_values(context, builder): - """Test simple graph computation with actual values (requires ONNX runtime)""" + """Test simple graph computation with actual values (requires execution backend)""" x = builder.input("x", [2, 3], "float32") y = builder.input("y", [2, 3], "float32") z = builder.add(x, y) @@ -271,7 +249,7 @@ def test_complex_graph(builder): assert set(graph.get_output_names()) == {"relu_out", "sigmoid_out"} -@requires_onnx_runtime +@requires_execution_backend def test_relu_computation(context, builder): """Test ReLU activation with actual computation""" x = builder.input("x", [2, 3], "float32") @@ -290,7 +268,7 @@ def test_relu_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_sigmoid_computation(context, builder): """Test sigmoid activation with actual computation""" x = builder.input("x", [2, 3], "float32") @@ -308,7 +286,7 @@ def test_sigmoid_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_tanh_computation(context, builder): """Test tanh activation with actual computation""" x = builder.input("x", [2, 3], "float32") @@ -326,7 +304,7 @@ def test_tanh_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_softmax_computation(context, builder): """Test softmax activation with actual computation""" x = builder.input("x", [2, 3], "float32") @@ -355,7 +333,7 @@ def test_softmax_computation(context, builder): # Basic math operations -@requires_onnx_runtime +@requires_execution_backend def test_abs_computation(context, builder): """Test element-wise absolute value""" x = builder.input("x", [2, 3], "float32") @@ -372,7 +350,7 @@ def test_abs_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_ceil_computation(context, builder): """Test element-wise ceiling""" x = builder.input("x", [2, 3], "float32") @@ -389,7 +367,7 @@ def test_ceil_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_floor_computation(context, builder): """Test element-wise floor""" x = builder.input("x", [2, 3], "float32") @@ -406,7 +384,7 @@ def test_floor_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_neg_computation(context, builder): """Test element-wise negation""" x = builder.input("x", [2, 3], "float32") @@ -423,7 +401,7 @@ def test_neg_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_sign_computation(context, builder): """Test element-wise sign""" x = builder.input("x", [2, 3], "float32") @@ -442,7 +420,7 @@ def test_sign_computation(context, builder): # Exponential and logarithmic operations -@requires_onnx_runtime +@requires_execution_backend def test_exp_computation(context, builder): """Test element-wise exponential""" x = builder.input("x", [2, 3], "float32") @@ -459,7 +437,7 @@ def test_exp_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_log_computation(context, builder): """Test element-wise natural logarithm""" x = builder.input("x", [2, 3], "float32") @@ -476,7 +454,7 @@ def test_log_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_sqrt_computation(context, builder): """Test element-wise square root""" x = builder.input("x", [2, 3], "float32") @@ -493,7 +471,7 @@ def test_sqrt_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_reciprocal_computation(context, builder): """Test element-wise reciprocal (1/x)""" x = builder.input("x", [2, 3], "float32") @@ -512,7 +490,7 @@ def test_reciprocal_computation(context, builder): # Trigonometric operations -@requires_onnx_runtime +@requires_execution_backend def test_sin_computation(context, builder): """Test element-wise sine""" x = builder.input("x", [2, 3], "float32") @@ -529,7 +507,7 @@ def test_sin_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5, atol=1e-7) -@requires_onnx_runtime +@requires_execution_backend def test_cos_computation(context, builder): """Test element-wise cosine""" x = builder.input("x", [2, 3], "float32") @@ -546,7 +524,7 @@ def test_cos_computation(context, builder): np.testing.assert_allclose(results["y"], expected, rtol=1e-5, atol=1e-7) -@requires_onnx_runtime +@requires_execution_backend def test_tan_computation(context, builder): """Test element-wise tangent""" x = builder.input("x", [2, 3], "float32") @@ -565,7 +543,7 @@ def test_tan_computation(context, builder): # Special operations -@requires_onnx_runtime +@requires_execution_backend def test_erf_computation(context, builder): """Test element-wise error function""" x = builder.input("x", [2, 3], "float32") @@ -588,7 +566,7 @@ def test_erf_computation(context, builder): assert np.all(results["y"] >= -1) and np.all(results["y"] <= 1) -@requires_onnx_runtime +@requires_execution_backend def test_identity_computation(context, builder): """Test identity operation""" x = builder.input("x", [2, 3], "float32") @@ -607,7 +585,7 @@ def test_identity_computation(context, builder): # Logic operations tests -@requires_onnx_runtime +@requires_execution_backend def test_equal_computation(context, builder): """Test element-wise equality comparison""" a = builder.input("a", [2, 3], "float32") @@ -626,7 +604,7 @@ def test_equal_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_greater_computation(context, builder): """Test element-wise greater than comparison""" a = builder.input("a", [2, 3], "float32") @@ -645,7 +623,7 @@ def test_greater_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_greater_or_equal_computation(context, builder): """Test element-wise greater than or equal comparison""" a = builder.input("a", [2, 3], "float32") @@ -664,7 +642,7 @@ def test_greater_or_equal_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_lesser_computation(context, builder): """Test element-wise less than comparison""" a = builder.input("a", [2, 3], "float32") @@ -683,7 +661,7 @@ def test_lesser_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_lesser_or_equal_computation(context, builder): """Test element-wise less than or equal comparison""" a = builder.input("a", [2, 3], "float32") @@ -702,7 +680,7 @@ def test_lesser_or_equal_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_logical_not_computation(context, builder): """Test element-wise logical NOT""" x = builder.input("x", [2, 3], "float32") @@ -720,7 +698,7 @@ def test_logical_not_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_logical_and_computation(context, builder): """Test element-wise logical AND""" a = builder.input("a", [2, 3], "float32") @@ -740,7 +718,7 @@ def test_logical_and_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_logical_or_computation(context, builder): """Test element-wise logical OR""" a = builder.input("a", [2, 3], "float32") @@ -760,7 +738,7 @@ def test_logical_or_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_logical_xor_computation(context, builder): """Test element-wise logical XOR""" a = builder.input("a", [2, 3], "float32") @@ -780,7 +758,7 @@ def test_logical_xor_computation(context, builder): np.testing.assert_array_equal(results["y"], expected) -@requires_onnx_runtime +@requires_execution_backend def test_chained_operations(context, builder): """Test chained operations with actual computation""" x = builder.input("x", [2, 3], "float32") @@ -802,7 +780,7 @@ def test_chained_operations(context, builder): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_matmul_computation(context, builder): """Test matrix multiplication with actual computation""" a = builder.input("a", [2, 3], "float32") @@ -822,7 +800,7 @@ def test_matmul_computation(context, builder): np.testing.assert_allclose(results["c"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_multi_output_computation(context, builder): """Test graph with multiple outputs""" x = builder.input("x", [2, 3], "float32") @@ -1395,7 +1373,7 @@ def test_reshape_invalid(builder): builder.reshape(x, [5]) -@requires_onnx_runtime +@requires_execution_backend def test_broadcasting_computation(context, builder): """Test that broadcasting works with actual computation""" a = builder.input("a", [2, 3], "float32") @@ -1549,7 +1527,7 @@ def test_tensor_read_write_permissions(context): context.read_tensor(tensor_writeonly) -@requires_onnx_runtime +@requires_execution_backend def test_dispatch_method(context, builder): """Test dispatch() method for async execution per W3C MLTensor Explainer""" # Build a simple graph @@ -1576,7 +1554,7 @@ def test_dispatch_method(context, builder): np.testing.assert_array_equal(result, expected) -@requires_onnx_runtime +@requires_execution_backend def test_tensor_workflow(context, builder): """Test complete tensor workflow with graph execution""" # Create tensors for inputs and outputs @@ -1692,9 +1670,9 @@ async def write_tensor(tensor, value): @pytest.mark.asyncio -@requires_onnx_runtime +@requires_execution_backend async def test_async_dispatch_with_actual_computation(async_context): - """Test async dispatch with actual ONNX computation""" + """Test async dispatch with actual graph computation""" builder = async_context.create_graph_builder() # Build graph: output = relu(x + y) @@ -2014,6 +1992,62 @@ def test_dequantize_linear_int4_blockwise(context): graph = builder.build({"y": y}) +@requires_execution_backend +def test_dequantize_linear_int4_blockwise_compute(context): + """DequantizeLinear with int4 input via compute()""" + builder = context.create_graph_builder() + qx = builder.input("qx", [2, 2], "int4") + scale = builder.constant(np.array([[0.5, 2.0], [0.5, 2.0]], dtype=np.float32)) + zero_point = builder.constant(np.array([[0, -1], [0, -1]], dtype=np.int8)) + y = builder.dequantize_linear(qx, scale, zero_point) + graph = builder.build({"y": y}) + + qx_data = np.array([[2, -1], [0, 7]], dtype=np.int8) + result = context.compute(graph, {"qx": qx_data})["y"] + expected = np.array([[1.0, 0.0], [0.0, 16.0]], dtype=np.float32) + np.testing.assert_allclose(result, expected, rtol=1e-5) + + +def test_int4_tensor_read_write_roundtrip(context): + """MLTensor int4 write/read round-trip using int8 carrier arrays""" + tensor = context.create_host_tensor([4], "int4") + values = np.array([2, -1, 0, 7], dtype=np.int8) + context.write_tensor(tensor, values) + read_back = context.read_tensor(tensor) + np.testing.assert_array_equal(read_back, values) + assert read_back.dtype == np.int8 + + +def test_uint4_tensor_read_write_roundtrip(context): + """MLTensor uint4 write/read round-trip using uint8 carrier arrays""" + tensor = context.create_host_tensor([4], "uint4") + values = np.array([0, 15, 7, 3], dtype=np.uint8) + context.write_tensor(tensor, values) + read_back = context.read_tensor(tensor) + np.testing.assert_array_equal(read_back, values) + assert read_back.dtype == np.uint8 + + +def test_int4_constant_packed(context): + """int4 constants are nibble-packed and usable in compiled graphs""" + builder = context.create_graph_builder() + c = builder.constant(np.array([2, -1, 0, 7], dtype=np.int8), data_type="int4") + assert c.data_type == "int4" + assert c.shape == [4] + scale = builder.constant(np.array(1.0, dtype=np.float32)) + zero_point = builder.constant(np.array(0, dtype=np.int8)) + y = builder.dequantize_linear(c, scale, zero_point) + graph = builder.build({"y": y}) + assert graph.operation_count == 1 + + +def test_int4_out_of_range_rejected(context): + """int4 write rejects values outside [-8, 7]""" + tensor = context.create_host_tensor([1], "int4") + with pytest.raises(Exception, match="int4 values must be in"): + context.write_tensor(tensor, np.array([8], dtype=np.int8)) + + def test_quantized_roundtrip_save_and_load(tmp_path, context): """End-to-end quantized graph round-trip: build, run, save with quantized flag, reload, rerun.""" builder = context.create_graph_builder() @@ -2855,7 +2889,7 @@ def test_triangular_non_square(context): # ============================================================================ -@requires_onnx_runtime +@requires_execution_backend def test_prelu_basic(context): """Test PReLU activation with basic slope tensor""" builder = context.create_graph_builder() @@ -2876,7 +2910,7 @@ def test_prelu_basic(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_prelu_per_channel(context): """Test PReLU with per-channel slopes""" builder = context.create_graph_builder() @@ -2894,7 +2928,7 @@ def test_prelu_per_channel(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_prelu_broadcast_slope(context): """Test PReLU with broadcasted slope""" builder = context.create_graph_builder() @@ -2911,7 +2945,7 @@ def test_prelu_broadcast_slope(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_elu_default_alpha(context): """Test ELU activation with default alpha=1.0""" builder = context.create_graph_builder() @@ -2930,7 +2964,7 @@ def test_elu_default_alpha(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_elu_custom_alpha(context): """Test ELU activation with custom alpha""" builder = context.create_graph_builder() @@ -2946,7 +2980,7 @@ def test_elu_custom_alpha(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_elu_multidimensional(context): """Test ELU with multidimensional input""" builder = context.create_graph_builder() @@ -2962,7 +2996,7 @@ def test_elu_multidimensional(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_leaky_relu_default_alpha(context): """Test Leaky ReLU with default alpha=0.01""" builder = context.create_graph_builder() @@ -2981,7 +3015,7 @@ def test_leaky_relu_default_alpha(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_leaky_relu_custom_alpha(context): """Test Leaky ReLU with custom alpha""" builder = context.create_graph_builder() @@ -2997,7 +3031,7 @@ def test_leaky_relu_custom_alpha(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_leaky_relu_multidimensional(context): """Test Leaky ReLU with 4D input""" builder = context.create_graph_builder() @@ -3013,7 +3047,7 @@ def test_leaky_relu_multidimensional(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_softplus_basic(context): """Test softplus activation: log(1 + exp(x))""" builder = context.create_graph_builder() @@ -3032,7 +3066,7 @@ def test_softplus_basic(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_softplus_multidimensional(context): """Test softplus with 3D input""" builder = context.create_graph_builder() @@ -3050,7 +3084,7 @@ def test_softplus_multidimensional(context): np.testing.assert_allclose(results["output"], expected, rtol=5e-4) -@requires_onnx_runtime +@requires_execution_backend def test_softsign_basic(context): """Test softsign activation: x / (1 + |x|)""" builder = context.create_graph_builder() @@ -3069,7 +3103,7 @@ def test_softsign_basic(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_softsign_multidimensional(context): """Test softsign with 3D input""" builder = context.create_graph_builder() @@ -3085,7 +3119,7 @@ def test_softsign_multidimensional(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_hard_sigmoid_default_params(context): """Test hard sigmoid with default alpha=0.2, beta=0.5""" builder = context.create_graph_builder() @@ -3104,7 +3138,7 @@ def test_hard_sigmoid_default_params(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_hard_sigmoid_custom_params(context): """Test hard sigmoid with custom alpha and beta""" builder = context.create_graph_builder() @@ -3120,7 +3154,7 @@ def test_hard_sigmoid_custom_params(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_hard_sigmoid_multidimensional(context): """Test hard sigmoid with 4D input""" builder = context.create_graph_builder() @@ -3137,7 +3171,7 @@ def test_hard_sigmoid_multidimensional(context): @pytest.mark.skip(reason="HardSwish requires ONNX opset 14+, runtime 1.17.0 uses opset 13") -@requires_onnx_runtime +@requires_execution_backend def test_hard_swish_default_params(context): """Test hard swish with default alpha=1/6, beta=0.5""" builder = context.create_graph_builder() @@ -3160,7 +3194,7 @@ def test_hard_swish_default_params(context): @pytest.mark.skip(reason="HardSwish requires ONNX opset 14+, runtime 1.17.0 uses opset 13") -@requires_onnx_runtime +@requires_execution_backend def test_hard_swish_custom_params(context): """Test hard swish with custom alpha and beta""" builder = context.create_graph_builder() @@ -3178,7 +3212,7 @@ def test_hard_swish_custom_params(context): @pytest.mark.skip(reason="HardSwish requires ONNX opset 14+, runtime 1.17.0 uses opset 13") -@requires_onnx_runtime +@requires_execution_backend def test_hard_swish_multidimensional(context): """Test hard swish with 3D input""" builder = context.create_graph_builder() @@ -3200,7 +3234,7 @@ def test_hard_swish_multidimensional(context): # ============================================================================ -@requires_onnx_runtime +@requires_execution_backend def test_clamp_basic(context): """Test clamp with min and max values""" builder = context.create_graph_builder() @@ -3219,7 +3253,7 @@ def test_clamp_basic(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_clamp_relu6(context): """Test clamp as ReLU6 (min=0, max=6)""" builder = context.create_graph_builder() @@ -3234,7 +3268,7 @@ def test_clamp_relu6(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_clamp_multidimensional(context): """Test clamp with multidimensional input""" builder = context.create_graph_builder() @@ -3273,7 +3307,7 @@ def test_clamp_invalid_range(context): # ============================================================================ -@requires_onnx_runtime +@requires_execution_backend def test_gemm_basic(context): """Test basic GEMM: C = A * B""" builder = context.create_graph_builder() @@ -3293,7 +3327,7 @@ def test_gemm_basic(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_gemm_transpose_a(context): """Test GEMM with A transposed""" builder = context.create_graph_builder() @@ -3311,7 +3345,7 @@ def test_gemm_transpose_a(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_gemm_transpose_b(context): """Test GEMM with B transposed""" builder = context.create_graph_builder() @@ -3329,7 +3363,7 @@ def test_gemm_transpose_b(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_gemm_transpose_both(context): """Test GEMM with both A and B transposed""" builder = context.create_graph_builder() @@ -3347,7 +3381,7 @@ def test_gemm_transpose_both(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_gemm_with_bias(context): """Test GEMM with bias: C = A * B + c""" builder = context.create_graph_builder() @@ -3367,7 +3401,7 @@ def test_gemm_with_bias(context): np.testing.assert_allclose(results["output"], expected, rtol=1e-5) -@requires_onnx_runtime +@requires_execution_backend def test_gemm_with_alpha_beta(context): """Test GEMM with scaling factors: C = alpha * A * B + beta * c""" builder = context.create_graph_builder() From 094137e62e923abb02cbcf89e73b889d10c03154 Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Thu, 18 Jun 2026 18:30:35 +0200 Subject: [PATCH 6/8] remove converted json files, use node to extract WPT WebNN tests and tolerances to run them directly within PyWebNN. --- src/python/context_state.rs | 170 +- src/python/graph_builder.rs | 753 +- tests/conftest.py | 10 + tests/test_python_api.py | 145 +- tests/test_wpt_conformance.py | 865 +- tests/wpt_data/README.md | 139 - tests/wpt_data/conformance/abs.json | 1521 - tests/wpt_data/conformance/add.json | 2630 - .../wpt_data/conformance/average_pool2d.json | 8 - .../conformance/batch_normalization.json | 3193 - tests/wpt_data/conformance/cast.json | 4637 - tests/wpt_data/conformance/ceil.json | 1183 - tests/wpt_data/conformance/clamp.json | 4205 - tests/wpt_data/conformance/concat.json | 5465 - tests/wpt_data/conformance/conv2d.json | 5073 - .../conformance/conv_transpose2d.json | 6077 - tests/wpt_data/conformance/div.json | 2465 - tests/wpt_data/conformance/elu.json | 1655 - tests/wpt_data/conformance/equal.json | 2777 - tests/wpt_data/conformance/exp.json | 1183 - tests/wpt_data/conformance/expand.json | 3341 - tests/wpt_data/conformance/floor.json | 1183 - tests/wpt_data/conformance/gather.json | 4281 - tests/wpt_data/conformance/greater.json | 2777 - .../conformance/greater_or_equal.json | 2777 - tests/wpt_data/conformance/hard_sigmoid.json | 2773 - tests/wpt_data/conformance/hard_swish.json | 1183 - .../conformance/instance_normalization.json | 1503 - .../conformance/layer_normalization.json | 2679 - tests/wpt_data/conformance/leaky_relu.json | 1761 - tests/wpt_data/conformance/lesser.json | 2777 - .../wpt_data/conformance/lesser_or_equal.json | 2777 - tests/wpt_data/conformance/linear.json | 2377 - tests/wpt_data/conformance/log.json | 1183 - tests/wpt_data/conformance/logical_not.json | 596 - tests/wpt_data/conformance/matmul.json | 101636 --------------- tests/wpt_data/conformance/max.json | 2465 - tests/wpt_data/conformance/max_pool2d.json | 8 - tests/wpt_data/conformance/min.json | 2465 - tests/wpt_data/conformance/mul.json | 2465 - tests/wpt_data/conformance/neg.json | 1423 - tests/wpt_data/conformance/pow.json | 2455 - tests/wpt_data/conformance/reduce_l1.json | 2917 - tests/wpt_data/conformance/reduce_l2.json | 2751 - .../wpt_data/conformance/reduce_log_sum.json | 2503 - .../conformance/reduce_log_sum_exp.json | 2749 - tests/wpt_data/conformance/reduce_max.json | 2379 - tests/wpt_data/conformance/reduce_mean.json | 2751 - tests/wpt_data/conformance/reduce_min.json | 2379 - .../wpt_data/conformance/reduce_product.json | 2379 - tests/wpt_data/conformance/reduce_sum.json | 2751 - .../conformance/reduce_sum_square.json | 2799 - tests/wpt_data/conformance/relu.json | 1347 - tests/wpt_data/conformance/reshape.json | 6323 - tests/wpt_data/conformance/sigmoid.json | 1183 - tests/wpt_data/conformance/slice.json | 1676 - tests/wpt_data/conformance/softmax.json | 787 - tests/wpt_data/conformance/split.json | 2471 - tests/wpt_data/conformance/sqrt.json | 1183 - tests/wpt_data/conformance/sub.json | 3089 - tests/wpt_data/conformance/tanh.json | 1107 - tests/wpt_data/conformance/transpose.json | 1669 - tests/wpt_data/validation/cast.json | 8 - tests/wpt_data/validation/clamp.json | 8 - tests/wpt_data/validation/concat.json | 8 - tests/wpt_data/validation/conv2d.json | 8 - tests/wpt_data/validation/elu.json | 8 - tests/wpt_data/validation/expand.json | 8 - tests/wpt_data/validation/gather.json | 8 - tests/wpt_data/validation/linear.json | 8 - tests/wpt_data/validation/matmul.json | 8 - tests/wpt_data/validation/relu.json | 8 - tests/wpt_data/validation/reshape.json | 8 - tests/wpt_data/validation/sigmoid.json | 8 - tests/wpt_data/validation/slice.json | 8 - tests/wpt_data/validation/softmax.json | 8 - tests/wpt_data/validation/split.json | 8 - tests/wpt_data/validation/tanh.json | 8 - tests/wpt_data/validation/transpose.json | 8 - tests/wpt_utils.py | 382 +- 80 files changed, 1221 insertions(+), 237529 deletions(-) delete mode 100644 tests/wpt_data/README.md delete mode 100644 tests/wpt_data/conformance/abs.json delete mode 100644 tests/wpt_data/conformance/add.json delete mode 100644 tests/wpt_data/conformance/average_pool2d.json delete mode 100644 tests/wpt_data/conformance/batch_normalization.json delete mode 100644 tests/wpt_data/conformance/cast.json delete mode 100644 tests/wpt_data/conformance/ceil.json delete mode 100644 tests/wpt_data/conformance/clamp.json delete mode 100644 tests/wpt_data/conformance/concat.json delete mode 100644 tests/wpt_data/conformance/conv2d.json delete mode 100644 tests/wpt_data/conformance/conv_transpose2d.json delete mode 100644 tests/wpt_data/conformance/div.json delete mode 100644 tests/wpt_data/conformance/elu.json delete mode 100644 tests/wpt_data/conformance/equal.json delete mode 100644 tests/wpt_data/conformance/exp.json delete mode 100644 tests/wpt_data/conformance/expand.json delete mode 100644 tests/wpt_data/conformance/floor.json delete mode 100644 tests/wpt_data/conformance/gather.json delete mode 100644 tests/wpt_data/conformance/greater.json delete mode 100644 tests/wpt_data/conformance/greater_or_equal.json delete mode 100644 tests/wpt_data/conformance/hard_sigmoid.json delete mode 100644 tests/wpt_data/conformance/hard_swish.json delete mode 100644 tests/wpt_data/conformance/instance_normalization.json delete mode 100644 tests/wpt_data/conformance/layer_normalization.json delete mode 100644 tests/wpt_data/conformance/leaky_relu.json delete mode 100644 tests/wpt_data/conformance/lesser.json delete mode 100644 tests/wpt_data/conformance/lesser_or_equal.json delete mode 100644 tests/wpt_data/conformance/linear.json delete mode 100644 tests/wpt_data/conformance/log.json delete mode 100644 tests/wpt_data/conformance/logical_not.json delete mode 100644 tests/wpt_data/conformance/matmul.json delete mode 100644 tests/wpt_data/conformance/max.json delete mode 100644 tests/wpt_data/conformance/max_pool2d.json delete mode 100644 tests/wpt_data/conformance/min.json delete mode 100644 tests/wpt_data/conformance/mul.json delete mode 100644 tests/wpt_data/conformance/neg.json delete mode 100644 tests/wpt_data/conformance/pow.json delete mode 100644 tests/wpt_data/conformance/reduce_l1.json delete mode 100644 tests/wpt_data/conformance/reduce_l2.json delete mode 100644 tests/wpt_data/conformance/reduce_log_sum.json delete mode 100644 tests/wpt_data/conformance/reduce_log_sum_exp.json delete mode 100644 tests/wpt_data/conformance/reduce_max.json delete mode 100644 tests/wpt_data/conformance/reduce_mean.json delete mode 100644 tests/wpt_data/conformance/reduce_min.json delete mode 100644 tests/wpt_data/conformance/reduce_product.json delete mode 100644 tests/wpt_data/conformance/reduce_sum.json delete mode 100644 tests/wpt_data/conformance/reduce_sum_square.json delete mode 100644 tests/wpt_data/conformance/relu.json delete mode 100644 tests/wpt_data/conformance/reshape.json delete mode 100644 tests/wpt_data/conformance/sigmoid.json delete mode 100644 tests/wpt_data/conformance/slice.json delete mode 100644 tests/wpt_data/conformance/softmax.json delete mode 100644 tests/wpt_data/conformance/split.json delete mode 100644 tests/wpt_data/conformance/sqrt.json delete mode 100644 tests/wpt_data/conformance/sub.json delete mode 100644 tests/wpt_data/conformance/tanh.json delete mode 100644 tests/wpt_data/conformance/transpose.json delete mode 100644 tests/wpt_data/validation/cast.json delete mode 100644 tests/wpt_data/validation/clamp.json delete mode 100644 tests/wpt_data/validation/concat.json delete mode 100644 tests/wpt_data/validation/conv2d.json delete mode 100644 tests/wpt_data/validation/elu.json delete mode 100644 tests/wpt_data/validation/expand.json delete mode 100644 tests/wpt_data/validation/gather.json delete mode 100644 tests/wpt_data/validation/linear.json delete mode 100644 tests/wpt_data/validation/matmul.json delete mode 100644 tests/wpt_data/validation/relu.json delete mode 100644 tests/wpt_data/validation/reshape.json delete mode 100644 tests/wpt_data/validation/sigmoid.json delete mode 100644 tests/wpt_data/validation/slice.json delete mode 100644 tests/wpt_data/validation/softmax.json delete mode 100644 tests/wpt_data/validation/split.json delete mode 100644 tests/wpt_data/validation/tanh.json delete mode 100644 tests/wpt_data/validation/transpose.json diff --git a/src/python/context_state.rs b/src/python/context_state.rs index be44f6a..bf8f068 100644 --- a/src/python/context_state.rs +++ b/src/python/context_state.rs @@ -2,7 +2,7 @@ use pyo3::exceptions::{PyRuntimeError, PyValueError}; use pyo3::prelude::*; -use pyo3::types::{PyDict, PyTuple}; +use pyo3::types::{PyBytes, PyDict, PyTuple}; use rustnn::graph::{ get_static_or_max_size, pack_int4, pack_uint4, unpack_int4, unpack_uint4, DataType, GraphInfo, }; @@ -83,30 +83,76 @@ fn packed_storage_bytes(data_type: DataType, elements: usize) -> PyResult .ok_or_else(|| PyValueError::new_err(format!("invalid element count for {data_type:?}"))) } -fn extract_int4_logical_values(flat: Bound<'_, PyAny>) -> PyResult> { - let values: Vec = flat.call_method0("tolist")?.extract()?; - for (idx, value) in values.iter().enumerate() { - if !(-8..=7).contains(value) { +fn write_pod_buffer( + state: &mut ContextState, + tensor: &MLTensor, + array: &Bound<'_, PyAny>, + expected_len: usize, +) -> PyResult<()> +where + T: Copy + bytemuck::Pod, +{ + let bytes = array.call_method0("tobytes")?; + let raw = bytes.cast::()?.as_bytes(); + let typed: &[T] = bytemuck::try_cast_slice(raw).map_err(|_| { + PyValueError::new_err("write_tensor: invalid buffer size for tensor data type") + })?; + if typed.len() != expected_len { + return Err(PyValueError::new_err(format!( + "Shape mismatch: expected {expected_len} elements, got {}", + typed.len() + ))); + } + state + .ml_context + .write_tensor(tensor, typed) + .map_err(map_rustnn_error) +} + +fn extract_int4_logical_values(flat: &Bound<'_, PyAny>) -> PyResult> { + let n: usize = flat.getattr("size")?.extract()?; + let bytes = flat.call_method0("tobytes")?; + let raw = bytes.cast::()?.as_bytes(); + let slice: &[i8] = bytemuck::try_cast_slice(raw).map_err(|_| { + PyValueError::new_err("write_tensor: invalid int4 buffer size") + })?; + if slice.len() != n { + return Err(PyValueError::new_err(format!( + "Shape mismatch: expected {n} int4 elements, got {}", + slice.len() + ))); + } + for (idx, &value) in slice.iter().enumerate() { + if !(-8..=7).contains(&(value as i32)) { return Err(PyValueError::new_err(format!( "int4 values must be in [-8, 7]; got {value} at index {idx}" ))); } } - Ok(values) + Ok(slice.iter().map(|&v| v as i32).collect()) } -fn extract_uint4_logical_values(flat: Bound<'_, PyAny>) -> PyResult> { - let values: Vec = flat.call_method0("tolist")?.extract()?; - let mut out = Vec::with_capacity(values.len()); - for (idx, value) in values.iter().enumerate() { - if !(0..=15).contains(value) { +fn extract_uint4_logical_values(flat: &Bound<'_, PyAny>) -> PyResult> { + let n: usize = flat.getattr("size")?.extract()?; + let bytes = flat.call_method0("tobytes")?; + let raw = bytes.cast::()?.as_bytes(); + let slice: &[u8] = bytemuck::try_cast_slice(raw).map_err(|_| { + PyValueError::new_err("write_tensor: invalid uint4 buffer size") + })?; + if slice.len() != n { + return Err(PyValueError::new_err(format!( + "Shape mismatch: expected {n} uint4 elements, got {}", + slice.len() + ))); + } + for (idx, &value) in slice.iter().enumerate() { + if value > 15 { return Err(PyValueError::new_err(format!( "uint4 values must be in [0, 15]; got {value} at index {idx}" ))); } - out.push(*value as u8); } - Ok(out) + Ok(slice.to_vec()) } /// Pack NumPy logical values into WebNN constant/tensor bytes for 4-bit types. @@ -116,8 +162,8 @@ pub(crate) fn pack_numpy_to_4bit_bytes( ) -> PyResult> { let flat = array.call_method0("flatten")?; match data_type { - DataType::Int4 => Ok(pack_int4(&extract_int4_logical_values(flat)?)), - DataType::Uint4 => Ok(pack_uint4(&extract_uint4_logical_values(flat)?)), + DataType::Int4 => Ok(pack_int4(&extract_int4_logical_values(&flat)?)), + DataType::Uint4 => Ok(pack_uint4(&extract_uint4_logical_values(&flat)?)), _ => Err(PyValueError::new_err( "pack_numpy_to_4bit_bytes expects int4 or uint4", )), @@ -465,21 +511,39 @@ pub(crate) fn compute_with_dispatch( Ok(result.into()) } +fn coerce_contiguous_write_array<'py>( + numpy: &Bound<'py, PyModule>, + data: &Bound<'py, PyAny>, + dtype_str: &str, +) -> PyResult> { + let array = numpy.call_method1("asarray", (data,))?; + let typed = array.call_method1("astype", (dtype_str,))?; + numpy.call_method1("ascontiguousarray", (typed,)) +} + fn write_numpy_to_ml_tensor( - _py: Python, + _py: Python<'_>, state: &mut ContextState, tensor: &MLTensor, desc: &MLTensorDescriptor, - array: Bound<'_, PyAny>, - _numpy: &Bound<'_, PyModule>, + data: Bound<'_, PyAny>, + numpy: &Bound<'_, PyModule>, ) -> PyResult<()> { let dt = desc.data_type(); + let element_count = tensor_element_count(tensor); + if matches!(dt, MLOperandDataType::Int4 | MLOperandDataType::Uint4) { let data_type = match dt { MLOperandDataType::Int4 => DataType::Int4, MLOperandDataType::Uint4 => DataType::Uint4, _ => unreachable!(), }; + let carrier_dtype = if data_type == DataType::Int4 { + "int8" + } else { + "uint8" + }; + let array = coerce_contiguous_write_array(numpy, &data, carrier_dtype)?; let packed = pack_numpy_to_4bit_bytes(array, data_type)?; return state .ml_context @@ -487,70 +551,20 @@ fn write_numpy_to_ml_tensor( .map_err(map_rustnn_error); } - let array_typed = array.call_method1("astype", (dt.as_str(),))?; - let flat = array_typed.call_method0("flatten")?; + let flat = coerce_contiguous_write_array(numpy, &data, dt.as_str())?; match dt { - MLOperandDataType::Float32 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - state - .ml_context - .write_tensor(tensor, &data) - .map_err(map_rustnn_error) - } + MLOperandDataType::Float32 => write_pod_buffer::(state, tensor, &flat, element_count), MLOperandDataType::Float16 => { - let data_f32: Vec = flat.call_method0("tolist")?.extract()?; - let data: Vec = data_f32 - .iter() - .map(|f| half::f16::from_f32(*f).to_bits()) - .collect(); - state - .ml_context - .write_tensor(tensor, &data) - .map_err(map_rustnn_error) - } - MLOperandDataType::Int32 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - state - .ml_context - .write_tensor(tensor, &data) - .map_err(map_rustnn_error) - } - MLOperandDataType::Uint32 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - state - .ml_context - .write_tensor(tensor, &data) - .map_err(map_rustnn_error) - } - MLOperandDataType::Int8 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - state - .ml_context - .write_tensor(tensor, &data) - .map_err(map_rustnn_error) - } - MLOperandDataType::Uint8 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - state - .ml_context - .write_tensor(tensor, &data) - .map_err(map_rustnn_error) - } - MLOperandDataType::Int64 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - state - .ml_context - .write_tensor(tensor, &data) - .map_err(map_rustnn_error) - } - MLOperandDataType::Uint64 => { - let data: Vec = flat.call_method0("tolist")?.extract()?; - state - .ml_context - .write_tensor(tensor, &data) - .map_err(map_rustnn_error) + let bits = flat.call_method1("view", ("uint16",))?; + write_pod_buffer::(state, tensor, &bits, element_count) } + MLOperandDataType::Int32 => write_pod_buffer::(state, tensor, &flat, element_count), + MLOperandDataType::Uint32 => write_pod_buffer::(state, tensor, &flat, element_count), + MLOperandDataType::Int8 => write_pod_buffer::(state, tensor, &flat, element_count), + MLOperandDataType::Uint8 => write_pod_buffer::(state, tensor, &flat, element_count), + MLOperandDataType::Int64 => write_pod_buffer::(state, tensor, &flat, element_count), + MLOperandDataType::Uint64 => write_pod_buffer::(state, tensor, &flat, element_count), MLOperandDataType::Int4 | MLOperandDataType::Uint4 => unreachable!(), } } diff --git a/src/python/graph_builder.rs b/src/python/graph_builder.rs index 71e21a8..7ffe79b 100644 --- a/src/python/graph_builder.rs +++ b/src/python/graph_builder.rs @@ -17,17 +17,50 @@ use rustnn::graph::{ use rustnn::operator_enums::MLOperandDataType; use rustnn::operator_options::{ MLArgMinMaxOptions, MLBatchNormalizationOptions, MLClampOptions, MLConv2dOptions, - MLConvTranspose2dOptions, MLDimension, MLEluOptions, MLGatherOptions, MLGemmOptions, - MLHardSigmoidOptions, MLInstanceNormalizationOptions, MLLayerNormalizationOptions, - MLLeakyReluOptions, MLPadOptions, MLPool2dOptions, MLReduceOptions, MLScatterOptions, - MLSliceOptions, MLSplitOptions, MLSqueezeOptions, MLTransposeOptions, MLTriangularOptions, - MLUnsqueezeOptions, + MLConvTranspose2dOptions, MLCumulativeSumOptions, MLDimension, MLEluOptions, MLGatherOptions, + MLGemmOptions, MLGruCellOptions, MLGruOptions, MLHardSigmoidOptions, + MLInstanceNormalizationOptions, MLLayerNormalizationOptions, MLLeakyReluOptions, MLLinearOptions, + MLLstmCellOptions, MLLstmOptions, MLPadOptions, MLPool2dOptions, MLReduceOptions, + MLResample2dOptions, MLReverseOptions, MLScatterOptions, MLSliceOptions, MLSplitOptions, + MLSqueezeOptions, MLTransposeOptions, MLTriangularOptions, MLUnsqueezeOptions, +}; +use rustnn::shape_inference::{ + broadcast_shapes, infer_equal_shape, infer_matmul_shape, infer_pool2d_shape, + infer_resample2d_shape, infer_round_even_shape, validate_reshape, }; -use rustnn::shape_inference::{broadcast_shapes, infer_matmul_shape, validate_reshape}; use rustnn::validator::GraphValidator; use rustnn::Operation; use std::collections::HashMap; +fn infer_gather_nd_shape(input_shape: &[u32], indices_shape: &[u32]) -> Result, String> { + if indices_shape.is_empty() { + return Err("GatherND indices must have rank >= 1".to_string()); + } + let k = indices_shape[indices_shape.len() - 1] as usize; + if k > input_shape.len() { + return Err(format!( + "GatherND indices last dimension {} exceeds input rank {}", + k, + input_shape.len() + )); + } + let mut shape = indices_shape[..indices_shape.len() - 1].to_vec(); + shape.extend_from_slice(&input_shape[k..]); + Ok(shape) +} + +fn recurrent_num_directions(direction: &str) -> u32 { + if direction == "both" { 2 } else { 1 } +} + +fn recurrent_batch_size(input_shape: &[u32]) -> u32 { + match input_shape.len() { + 2 => input_shape[0], + 3 => input_shape[1], + _ => 1, + } +} + /// Builder for constructing WebNN computational graphs #[pyclass(name = "MLGraphBuilder")] pub struct PyMLGraphBuilder { @@ -175,6 +208,21 @@ impl PyMLGraphBuilder { self.binary_op("div", a, b) } + /// Element-wise power + fn pow(&mut self, a: &PyMLOperand, b: &PyMLOperand) -> PyResult { + self.binary_op("pow", a, b) + } + + /// Element-wise maximum + fn max(&mut self, a: &PyMLOperand, b: &PyMLOperand) -> PyResult { + self.binary_op("max", a, b) + } + + /// Element-wise minimum + fn min(&mut self, a: &PyMLOperand, b: &PyMLOperand) -> PyResult { + self.binary_op("min", a, b) + } + /// Matrix multiplication fn matmul(&mut self, a: &PyMLOperand, b: &PyMLOperand) -> PyResult { // Use proper matmul shape inference @@ -671,6 +719,75 @@ impl PyMLGraphBuilder { Ok(py_operand) } + /// 2D L2 Pooling operation + #[pyo3(signature = (input, window_dimensions=None, strides=None, dilations=None, pads=None, layout=None))] + fn l2_pool2d( + &mut self, + input: &PyMLOperand, + window_dimensions: Option>, + strides: Option>, + dilations: Option>, + pads: Option>, + layout: Option<&str>, + ) -> PyResult { + let window_dimensions = window_dimensions.unwrap_or_else(|| vec![1, 1]); + let strides = strides.unwrap_or_else(|| vec![1, 1]); + let dilations = dilations.unwrap_or_else(|| vec![1, 1]); + let pads = pads.unwrap_or_else(|| vec![0, 0, 0, 0]); + + let layout_s = match layout.unwrap_or("nchw") { + "nchw" => "nchw", + "nhwc" => "nhwc", + other => { + return Err(pyo3::exceptions::PyValueError::new_err(format!( + "Invalid layout '{}', must be 'nchw' or 'nhwc'", + other + ))); + } + }; + + let pool_opts = MLPool2dOptions { + label: String::new(), + window_dimensions: Some(window_dimensions), + padding: pads, + strides, + dilations, + layout: layout_s.to_string(), + output_shape_rounding: String::new(), + output_sizes: None, + }; + + let output_shape = infer_pool2d_shape(&input.descriptor.static_or_max_shape(), &pool_opts) + .map_err(|e| pyo3::exceptions::PyValueError::new_err(e.to_string()))?; + + let output_descriptor = OperandDescriptor { + data_type: input.descriptor.data_type, + shape: to_dimension_vector(&output_shape), + pending_permutation: Vec::new(), + }; + + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + self.push_op(Operation::L2Pool2d { + input: input.id, + options: Some(pool_opts), + outputs: vec![output_id], + }); + + let output_operand = Operand { + descriptor: output_descriptor.clone(), + kind: OperandKind::Output, + name: None, + }; + self.operands.push(output_operand); + + let py_operand = PyMLOperand::new(output_id, output_descriptor, OperandKind::Output, None); + self.operand_map.insert(output_id, py_operand.clone()); + + Ok(py_operand) + } + /// Global Average Pooling operation /// /// Args: @@ -1076,6 +1193,39 @@ impl PyMLGraphBuilder { self.unary_op("floor", x) } + /// Element-wise round-to-nearest-even (banker's rounding) + fn round_even(&mut self, x: &PyMLOperand) -> PyResult { + let output_shape = infer_round_even_shape(&x.descriptor.static_or_max_shape()) + .map_err(|e| pyo3::exceptions::PyValueError::new_err(e.to_string()))?; + + let output_descriptor = OperandDescriptor { + data_type: x.descriptor.data_type, + shape: to_dimension_vector(&output_shape), + pending_permutation: Vec::new(), + }; + + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + self.push_op(Operation::RoundEven { + input: x.id, + options: None, + outputs: vec![output_id], + }); + + let output_operand = Operand { + descriptor: output_descriptor.clone(), + kind: OperandKind::Output, + name: None, + }; + self.operands.push(output_operand); + + let py_operand = PyMLOperand::new(output_id, output_descriptor, OperandKind::Output, None); + self.operand_map.insert(output_id, py_operand.clone()); + + Ok(py_operand) + } + /// Element-wise negation fn neg(&mut self, x: &PyMLOperand) -> PyResult { self.unary_op("neg", x) @@ -1334,6 +1484,43 @@ impl PyMLGraphBuilder { Ok(py_operand) } + /// Element-wise not-equal comparison + fn not_equal(&mut self, a: &PyMLOperand, b: &PyMLOperand) -> PyResult { + let output_shape = infer_equal_shape( + &a.descriptor.static_or_max_shape(), + &b.descriptor.static_or_max_shape(), + ) + .map_err(|e| pyo3::exceptions::PyValueError::new_err(e.to_string()))?; + + let output_descriptor = OperandDescriptor { + data_type: DataType::Uint8, + shape: to_dimension_vector(&output_shape), + pending_permutation: Vec::new(), + }; + + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + self.push_op(Operation::NotEqual { + a: a.id, + b: b.id, + options: None, + outputs: vec![output_id], + }); + + let output_operand = Operand { + descriptor: output_descriptor.clone(), + kind: OperandKind::Output, + name: None, + }; + self.operands.push(output_operand); + + let py_operand = PyMLOperand::new(output_id, output_descriptor, OperandKind::Output, None); + self.operand_map.insert(output_id, py_operand.clone()); + + Ok(py_operand) + } + /// Element-wise logical NOT fn logical_not(&mut self, x: &PyMLOperand) -> PyResult { use rustnn::shape_inference::infer_logical_not_shape; @@ -2158,6 +2345,88 @@ impl PyMLGraphBuilder { Ok(py_operand) } + /// Gather elements operation (output shape equals indices shape) + #[pyo3(signature = (input, indices, axis=0))] + fn gather_elements( + &mut self, + input: &PyMLOperand, + indices: &PyMLOperand, + axis: u32, + ) -> PyResult { + let output_shape = indices.descriptor.static_or_max_shape(); + + let output_descriptor = OperandDescriptor { + data_type: input.descriptor.data_type, + shape: to_dimension_vector(&output_shape), + pending_permutation: Vec::new(), + }; + + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + let gather_opts = MLGatherOptions { + label: String::new(), + axis, + }; + + self.push_op(Operation::GatherElements { + input: input.id, + indices: indices.id, + batch_dimensions: None, + options: Some(gather_opts), + outputs: vec![output_id], + }); + + let output_operand = Operand { + descriptor: output_descriptor.clone(), + kind: OperandKind::Output, + name: None, + }; + self.operands.push(output_operand); + + let py_operand = PyMLOperand::new(output_id, output_descriptor, OperandKind::Output, None); + self.operand_map.insert(output_id, py_operand.clone()); + + Ok(py_operand) + } + + /// Gather ND operation + fn gather_nd(&mut self, input: &PyMLOperand, indices: &PyMLOperand) -> PyResult { + let output_shape = infer_gather_nd_shape( + &input.descriptor.static_or_max_shape(), + &indices.descriptor.static_or_max_shape(), + ) + .map_err(|e| pyo3::exceptions::PyValueError::new_err(e))?; + + let output_descriptor = OperandDescriptor { + data_type: input.descriptor.data_type, + shape: to_dimension_vector(&output_shape), + pending_permutation: Vec::new(), + }; + + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + self.push_op(Operation::GatherND { + input: input.id, + indices: indices.id, + options: None, + outputs: vec![output_id], + }); + + let output_operand = Operand { + descriptor: output_descriptor.clone(), + kind: OperandKind::Output, + name: None, + }; + self.operands.push(output_operand); + + let py_operand = PyMLOperand::new(output_id, output_descriptor, OperandKind::Output, None); + self.operand_map.insert(output_id, py_operand.clone()); + + Ok(py_operand) + } + /// Split operation /// /// Splits a tensor into multiple sub-tensors along an axis. @@ -3417,6 +3686,425 @@ impl PyMLGraphBuilder { Ok(py_operand) } + + /// Linear activation: output = alpha * input + beta + #[pyo3(signature = (input, alpha=1.0, beta=0.0))] + fn linear(&mut self, input: &PyMLOperand, alpha: f32, beta: f32) -> PyResult { + let output_descriptor = input.descriptor.clone(); + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + let linear_opts = MLLinearOptions { + label: String::new(), + alpha: alpha as f64, + beta: beta as f64, + }; + + self.push_op(Operation::Linear { + input: input.id, + options: Some(linear_opts), + outputs: vec![output_id], + }); + + self.register_output_operand(output_id, output_descriptor) + } + + /// Element-wise is-NaN test (uint8 output) + fn is_nan(&mut self, input: &PyMLOperand) -> PyResult { + let mut output_descriptor = input.descriptor.clone(); + output_descriptor.data_type = DataType::Uint8; + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + self.push_op(Operation::IsNaN { + input: input.id, + options: None, + outputs: vec![output_id], + }); + + self.register_output_operand(output_id, output_descriptor) + } + + /// Element-wise is-infinite test (uint8 output) + fn is_infinite(&mut self, input: &PyMLOperand) -> PyResult { + let mut output_descriptor = input.descriptor.clone(); + output_descriptor.data_type = DataType::Uint8; + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + self.push_op(Operation::IsInfinite { + input: input.id, + options: None, + outputs: vec![output_id], + }); + + self.register_output_operand(output_id, output_descriptor) + } + + /// Returns the rank of the input as a 1D int64 tensor + fn shape(&mut self, input: &PyMLOperand) -> PyResult { + let rank = input.descriptor.static_or_max_shape().len() as u32; + let output_descriptor = OperandDescriptor { + data_type: DataType::Int64, + shape: to_dimension_vector(&[rank]), + pending_permutation: Vec::new(), + }; + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + self.push_op(Operation::Shape { + input: input.id, + options: None, + outputs: vec![output_id], + }); + + self.register_output_operand(output_id, output_descriptor) + } + + /// Cumulative sum along an axis + #[pyo3(signature = (input, axis, exclusive=false, reversed=false))] + fn cumulative_sum( + &mut self, + input: &PyMLOperand, + axis: u32, + exclusive: bool, + reversed: bool, + ) -> PyResult { + let output_descriptor = input.descriptor.clone(); + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + let opts = MLCumulativeSumOptions { + label: String::new(), + exclusive, + reversed, + }; + + self.push_op(Operation::CumulativeSum { + input: input.id, + axis, + options: Some(opts), + outputs: vec![output_id], + }); + + self.register_output_operand(output_id, output_descriptor) + } + + /// Reverse tensor along axes (default: all axes) + #[pyo3(signature = (input, axes=None))] + fn reverse(&mut self, input: &PyMLOperand, axes: Option>) -> PyResult { + let output_descriptor = input.descriptor.clone(); + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + let reverse_opts = MLReverseOptions { + label: String::new(), + axes, + }; + + self.push_op(Operation::Reverse { + input: input.id, + options: Some(reverse_opts), + outputs: vec![output_id], + }); + + self.register_output_operand(output_id, output_descriptor) + } + + /// 2D resampling (resize spatial axes) + #[pyo3(signature = (input, sizes=None, scales=None, mode="nearest-neighbor", axes=None))] + fn resample2d( + &mut self, + input: &PyMLOperand, + sizes: Option>, + scales: Option>, + mode: &str, + axes: Option>, + ) -> PyResult { + let input_shape = input.descriptor.shape.clone(); + let rank = input_shape.len(); + let axis_pair: [usize; 2] = if let Some(ref a) = axes { + if a.len() != 2 { + return Err(pyo3::exceptions::PyValueError::new_err( + "resample2d axes must have length 2", + )); + } + [a[0] as usize, a[1] as usize] + } else { + [rank.saturating_sub(2), rank.saturating_sub(1)] + }; + + let resample_opts = MLResample2dOptions { + label: String::new(), + mode: mode.to_string(), + scales: scales.unwrap_or_default(), + sizes, + axes: axes.unwrap_or_else(|| { + vec![axis_pair[0] as u32, axis_pair[1] as u32] + }), + }; + + let output_shape = infer_resample2d_shape( + &input_shape, + axis_pair, + resample_opts.sizes.as_deref(), + &resample_opts.scales, + ) + .map_err(|e| pyo3::exceptions::PyValueError::new_err(e.to_string()))?; + + let output_descriptor = OperandDescriptor { + data_type: input.descriptor.data_type, + shape: output_shape, + pending_permutation: Vec::new(), + }; + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + self.push_op(Operation::Resample2d { + input: input.id, + options: Some(resample_opts), + outputs: vec![output_id], + }); + + self.register_output_operand(output_id, output_descriptor) + } + + /// GRU recurrent network + #[pyo3(signature = (input, weight, recurrent_weight, steps, hidden_size, bias=None, recurrent_bias=None, initial_hidden_state=None, reset_after=false, return_sequence=false, direction="forward", layout="zrn"))] + fn gru( + &mut self, + input: &PyMLOperand, + weight: &PyMLOperand, + recurrent_weight: &PyMLOperand, + steps: u32, + hidden_size: u32, + bias: Option<&PyMLOperand>, + recurrent_bias: Option<&PyMLOperand>, + initial_hidden_state: Option<&PyMLOperand>, + reset_after: bool, + return_sequence: bool, + direction: &str, + layout: &str, + ) -> PyResult> { + let num_dir = recurrent_num_directions(direction); + let batch = recurrent_batch_size(&input.descriptor.static_or_max_shape()); + let dtype = input.descriptor.data_type; + + let mut output_shapes = vec![vec![num_dir, batch, hidden_size]]; + if return_sequence { + output_shapes.push(vec![steps, num_dir, batch, hidden_size]); + } + + let output_ids: Vec = (0..output_shapes.len() as u32) + .map(|i| self.next_operand_id + i) + .collect(); + self.next_operand_id += output_shapes.len() as u32; + + let options = MLGruOptions { + label: String::new(), + bias: bias.map(|o| o.id), + recurrent_bias: recurrent_bias.map(|o| o.id), + initial_hidden_state: initial_hidden_state.map(|o| o.id), + reset_after, + return_sequence, + direction: direction.to_string(), + layout: layout.to_string(), + activations: None, + }; + + self.push_op(Operation::Gru { + input: input.id, + weight: weight.id, + recurrence: recurrent_weight.id, + steps, + hidden_size, + options: Some(options), + outputs: output_ids.clone(), + }); + + self.register_multi_output_operands(&output_ids, dtype, &output_shapes) + } + + /// GRU cell (single step) + #[pyo3(signature = (input, weight, recurrent_weight, hidden_state, hidden_size, bias=None, recurrent_bias=None, reset_after=false, layout="zrn"))] + fn gru_cell( + &mut self, + input: &PyMLOperand, + weight: &PyMLOperand, + recurrent_weight: &PyMLOperand, + hidden_state: &PyMLOperand, + hidden_size: u32, + bias: Option<&PyMLOperand>, + recurrent_bias: Option<&PyMLOperand>, + reset_after: bool, + layout: &str, + ) -> PyResult { + let output_descriptor = if hidden_state.descriptor.static_or_max_shape().is_empty() { + let input_shape = input.descriptor.static_or_max_shape(); + OperandDescriptor { + data_type: input.descriptor.data_type, + shape: to_dimension_vector(&[input_shape[0], hidden_size]), + pending_permutation: Vec::new(), + } + } else { + hidden_state.descriptor.clone() + }; + + let output_id = self.next_operand_id; + self.next_operand_id += 1; + + let options = MLGruCellOptions { + label: String::new(), + bias: bias.map(|o| o.id), + recurrent_bias: recurrent_bias.map(|o| o.id), + reset_after, + layout: layout.to_string(), + activations: None, + }; + + self.push_op(Operation::GruCell { + input: input.id, + weight: weight.id, + recurrence: recurrent_weight.id, + hidden_state: hidden_state.id, + hidden_size, + options: Some(options), + outputs: vec![output_id], + }); + + self.register_output_operand(output_id, output_descriptor) + } + + /// LSTM recurrent network + #[pyo3(signature = (input, weight, recurrent_weight, steps, hidden_size, bias=None, recurrent_bias=None, peephole_weight=None, initial_hidden_state=None, initial_cell_state=None, return_sequence=false, direction="forward", layout="iofg"))] + fn lstm( + &mut self, + input: &PyMLOperand, + weight: &PyMLOperand, + recurrent_weight: &PyMLOperand, + steps: u32, + hidden_size: u32, + bias: Option<&PyMLOperand>, + recurrent_bias: Option<&PyMLOperand>, + peephole_weight: Option<&PyMLOperand>, + initial_hidden_state: Option<&PyMLOperand>, + initial_cell_state: Option<&PyMLOperand>, + return_sequence: bool, + direction: &str, + layout: &str, + ) -> PyResult> { + let num_dir = recurrent_num_directions(direction); + let batch = recurrent_batch_size(&input.descriptor.static_or_max_shape()); + let dtype = input.descriptor.data_type; + + let mut output_shapes = vec![ + vec![num_dir, batch, hidden_size], + vec![num_dir, batch, hidden_size], + ]; + if return_sequence { + output_shapes.push(vec![steps, num_dir, batch, hidden_size]); + } + + let output_ids: Vec = (0..output_shapes.len() as u32) + .map(|i| self.next_operand_id + i) + .collect(); + self.next_operand_id += output_shapes.len() as u32; + + let options = MLLstmOptions { + label: String::new(), + bias: bias.map(|o| o.id), + recurrent_bias: recurrent_bias.map(|o| o.id), + peephole_weight: peephole_weight.map(|o| o.id), + initial_hidden_state: initial_hidden_state.map(|o| o.id), + initial_cell_state: initial_cell_state.map(|o| o.id), + return_sequence, + direction: direction.to_string(), + layout: layout.to_string(), + activations: None, + }; + + self.push_op(Operation::Lstm { + input: input.id, + weight: weight.id, + recurrence: recurrent_weight.id, + steps, + hidden_size, + options: Some(options), + outputs: output_ids.clone(), + }); + + self.register_multi_output_operands(&output_ids, dtype, &output_shapes) + } + + /// LSTM cell (single step) + #[pyo3(signature = (input, weight, recurrent_weight, hidden_state, cell_state, hidden_size, bias=None, recurrent_bias=None, peephole_weight=None, layout="iofg"))] + fn lstm_cell( + &mut self, + input: &PyMLOperand, + weight: &PyMLOperand, + recurrent_weight: &PyMLOperand, + hidden_state: &PyMLOperand, + cell_state: &PyMLOperand, + hidden_size: u32, + bias: Option<&PyMLOperand>, + recurrent_bias: Option<&PyMLOperand>, + peephole_weight: Option<&PyMLOperand>, + layout: &str, + ) -> PyResult> { + let output_ids = vec![self.next_operand_id, self.next_operand_id + 1]; + self.next_operand_id += 2; + + let options = MLLstmCellOptions { + label: String::new(), + bias: bias.map(|o| o.id), + recurrent_bias: recurrent_bias.map(|o| o.id), + peephole_weight: peephole_weight.map(|o| o.id), + layout: layout.to_string(), + activations: None, + }; + + self.push_op(Operation::LstmCell { + input: input.id, + weight: weight.id, + recurrence: recurrent_weight.id, + hidden_state: hidden_state.id, + cell_state: cell_state.id, + hidden_size, + options: Some(options), + outputs: output_ids.clone(), + }); + + let shapes = [ + hidden_state.descriptor.clone(), + cell_state.descriptor.clone(), + ]; + let mut py_operands = Vec::with_capacity(2); + for (id, descriptor) in output_ids.into_iter().zip(shapes) { + py_operands.push(self.register_output_operand(id, descriptor)?); + } + Ok(py_operands) + } + + /// Query the static/max shape of an operand without building the graph + fn operand_shape(&self, operand: &PyMLOperand) -> Vec { + operand.descriptor.static_or_max_shape() + } + + /// Query the data type of an operand + fn operand_data_type(&self, operand: &PyMLOperand) -> String { + match operand.descriptor.data_type { + DataType::Int4 => "int4".to_string(), + DataType::Uint4 => "uint4".to_string(), + DataType::Float32 => "float32".to_string(), + DataType::Float16 => "float16".to_string(), + DataType::Int32 => "int32".to_string(), + DataType::Uint32 => "uint32".to_string(), + DataType::Int8 => "int8".to_string(), + DataType::Uint8 => "uint8".to_string(), + DataType::Int64 => "int64".to_string(), + DataType::Uint64 => "uint64".to_string(), + } + } } impl PyMLGraphBuilder { @@ -3425,6 +4113,41 @@ impl PyMLGraphBuilder { self.operations.push(op); } + fn register_output_operand( + &mut self, + output_id: u32, + output_descriptor: OperandDescriptor, + ) -> PyResult { + let output_operand = Operand { + descriptor: output_descriptor.clone(), + kind: OperandKind::Output, + name: None, + }; + self.operands.push(output_operand); + + let py_operand = PyMLOperand::new(output_id, output_descriptor, OperandKind::Output, None); + self.operand_map.insert(output_id, py_operand.clone()); + Ok(py_operand) + } + + fn register_multi_output_operands( + &mut self, + output_ids: &[u32], + data_type: DataType, + output_shapes: &[Vec], + ) -> PyResult> { + let mut py_operands = Vec::with_capacity(output_ids.len()); + for (id, shape) in output_ids.iter().zip(output_shapes.iter()) { + let descriptor = OperandDescriptor { + data_type, + shape: to_dimension_vector(shape), + pending_permutation: Vec::new(), + }; + py_operands.push(self.register_output_operand(*id, descriptor)?); + } + Ok(py_operands) + } + /// Create a new graph builder tied to a context (internal). pub(crate) fn new_for_context(context: Py) -> Self { Self { @@ -3487,6 +4210,24 @@ impl PyMLGraphBuilder { options: None, outputs: vec![output_id], }, + "pow" => Operation::Pow { + a: a.id, + b: b.id, + options: None, + outputs: vec![output_id], + }, + "max" => Operation::Max { + a: a.id, + b: b.id, + options: None, + outputs: vec![output_id], + }, + "min" => Operation::Min { + a: a.id, + b: b.id, + options: None, + outputs: vec![output_id], + }, _ => { return Err(pyo3::exceptions::PyValueError::new_err(format!( "internal error: unsupported binary op '{}'", diff --git a/tests/conftest.py b/tests/conftest.py index 8c811ee..3b80217 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -37,6 +37,16 @@ def pytest_configure(config): config.addinivalue_line("markers", "slow: Tests with large inputs that take longer to run") +def pytest_addoption(parser): + parser.addoption( + "--wpt-backend", + action="store", + default=None, + choices=["cpu", "coreml", "all"], + help="Backend for WPT conformance tests (default: cpu, or WPT_BACKEND env)", + ) + + @pytest.fixture(scope="session") def ml(): """Create ML instance (session-scoped).""" diff --git a/tests/test_python_api.py b/tests/test_python_api.py index 5575446..246a866 100644 --- a/tests/test_python_api.py +++ b/tests/test_python_api.py @@ -101,6 +101,16 @@ def test_binary_operations(builder): z_div = builder.div(x, y) assert z_div.shape == [2, 3] + # Test pow, max, min + assert builder.pow(x, y).shape == [2, 3] + assert builder.max(x, y).shape == [2, 3] + assert builder.min(x, y).shape == [2, 3] + + # Test not_equal (uint8 output) + ne = builder.not_equal(x, y) + assert ne.shape == [2, 3] + assert ne.data_type == "uint8" + def test_unary_operations(builder): """Test unary operations""" @@ -3536,7 +3546,7 @@ def test_op_support_limits_pooling_operations(context): limits = context.op_support_limits() # Check pooling operations - pooling_ops = ["averagePool2d", "maxPool2d"] + pooling_ops = ["averagePool2d", "maxPool2d", "l2Pool2d"] for op in pooling_ops: assert op in limits assert "input" in limits[op] @@ -3608,3 +3618,136 @@ def test_op_support_limits_rank_ranges(context): assert rank_range["min"] >= 0 assert rank_range["max"] >= rank_range["min"] assert rank_range["max"] <= 8 # Reasonable upper bound + + +def test_round_even(builder): + x = builder.input("x", [2, 3], "float32") + y = builder.round_even(x) + assert y.shape == [2, 3] + assert y.data_type == "float32" + + +def test_linear(builder): + x = builder.input("x", [4], "float32") + y = builder.linear(x, alpha=2.0, beta=1.0) + assert y.shape == [4] + + +def test_is_nan_and_is_infinite(builder): + x = builder.input("x", [2, 2], "float32") + assert builder.is_nan(x).shape == [2, 2] + assert builder.is_nan(x).data_type == "uint8" + assert builder.is_infinite(x).shape == [2, 2] + assert builder.is_infinite(x).data_type == "uint8" + + +def test_shape_op(builder): + x = builder.input("x", [2, 3, 4], "float32") + y = builder.shape(x) + assert y.shape == [3] + assert y.data_type == "int64" + + +def test_cumulative_sum(builder): + x = builder.input("x", [2, 3], "float32") + y = builder.cumulative_sum(x, axis=1) + assert y.shape == [2, 3] + + +def test_reverse(builder): + x = builder.input("x", [2, 3], "float32") + y = builder.reverse(x) + assert y.shape == [2, 3] + + +def test_l2_pool2d(builder): + x = builder.input("x", [1, 3, 4, 4], "float32") + y = builder.l2_pool2d(x, window_dimensions=[2, 2], strides=[2, 2]) + assert y.shape == [1, 3, 2, 2] + + +def test_gather_elements(builder): + data = builder.input("data", [2, 3], "float32") + indices = builder.input("indices", [2, 2], "int32") + y = builder.gather_elements(data, indices, axis=1) + assert y.shape == [2, 2] + + +def test_gather_nd(builder): + data = builder.input("data", [2, 3, 4], "float32") + indices = builder.input("indices", [2, 2], "int32") + y = builder.gather_nd(data, indices) + assert y.shape == [2, 4] + + +def test_resample2d(builder): + x = builder.input("x", [1, 3, 4, 4], "float32") + y = builder.resample2d(x, sizes=[6, 6]) + assert y.shape == [1, 3, 6, 6] + + +def test_gru(builder): + input_op = builder.input("input", [2, 4], "float32") + weight = builder.input("weight", [12, 4], "float32") + recurrent = builder.input("recurrent", [12, 4], "float32") + outputs = builder.gru(input_op, weight, recurrent, steps=2, hidden_size=4) + assert len(outputs) == 1 + assert outputs[0].shape == [1, 2, 4] + + +def test_gru_return_sequence(builder): + input_op = builder.input("input", [2, 3, 4], "float32") + weight = builder.input("weight", [12, 4], "float32") + recurrent = builder.input("recurrent", [12, 4], "float32") + hidden, sequence = builder.gru( + input_op, weight, recurrent, steps=3, hidden_size=4, return_sequence=True + ) + assert hidden.shape == [1, 3, 4] + assert sequence.shape == [3, 1, 3, 4] + + +def test_gru_cell(builder): + input_op = builder.input("input", [2, 4], "float32") + weight = builder.input("weight", [12, 4], "float32") + recurrent = builder.input("recurrent", [12, 4], "float32") + hidden = builder.input("hidden", [2, 4], "float32") + y = builder.gru_cell(input_op, weight, recurrent, hidden, hidden_size=4) + assert y.shape == [2, 4] + + +def test_lstm(builder): + input_op = builder.input("input", [2, 4], "float32") + weight = builder.input("weight", [16, 4], "float32") + recurrent = builder.input("recurrent", [16, 4], "float32") + hidden, cell = builder.lstm(input_op, weight, recurrent, steps=2, hidden_size=4) + assert hidden.shape == [1, 2, 4] + assert cell.shape == [1, 2, 4] + + +def test_lstm_cell(builder): + input_op = builder.input("input", [2, 4], "float32") + weight = builder.input("weight", [16, 4], "float32") + recurrent = builder.input("recurrent", [16, 4], "float32") + hidden = builder.input("hidden", [2, 4], "float32") + cell = builder.input("cell", [2, 4], "float32") + new_hidden, new_cell = builder.lstm_cell( + input_op, weight, recurrent, hidden, cell, hidden_size=4 + ) + assert new_hidden.shape == [2, 4] + assert new_cell.shape == [2, 4] + + +def test_operand_introspection(builder): + x = builder.input("x", [2, 3], "float16") + assert builder.operand_shape(x) == [2, 3] + assert builder.operand_data_type(x) == "float16" + + +def test_new_ops_build(context): + """Smoke test: new ops can be wired into a buildable graph.""" + builder = context.create_graph_builder() + x = builder.input("x", [2, 3], "float32") + y = builder.input("y", [2, 3], "float32") + out = builder.pow(x, y) + graph = builder.build({"out": out}) + assert graph.operation_count >= 1 diff --git a/tests/test_wpt_conformance.py b/tests/test_wpt_conformance.py index d8820a3..8c17f83 100644 --- a/tests/test_wpt_conformance.py +++ b/tests/test_wpt_conformance.py @@ -1,712 +1,265 @@ """ WPT WebNN Conformance Tests -This module runs W3C Web Platform Tests (WPT) for WebNN conformance against -the rustnn implementation. It loads test data converted from the official WPT -test suite and validates that our implementation produces correct results. +Runs W3C Web Platform Tests (WPT) for WebNN against pywebnn/rustnn by loading +original `.https.any.js` conformance files through a Node.js bridge (Option A). -Test data is loaded from tests/wpt_data/conformance/*.json files. +Requirements: + - Node.js on PATH + - WPT cache at ../webnnjs/.cache/wpt (or set WPT_DIR) Usage: - # Run all WPT conformance tests pytest tests/test_wpt_conformance.py -v - - # Run tests for specific operation - pytest tests/test_wpt_conformance.py -k "reduce_sum" -v - - # Run with detailed failure output - pytest tests/test_wpt_conformance.py -vv --tb=short + pytest tests/test_wpt_conformance.py --wpt-backend=cpu -k "abs" -v + pytest tests/test_wpt_conformance.py --wpt-backend=coreml -v # macOS only + pytest tests/test_wpt_conformance.py --wpt-backend=all -v + WPT_BACKEND=cpu pytest tests/test_wpt_conformance.py -v """ -import pytest -import numpy as np -from pathlib import Path -from typing import Dict, List, Any, Optional -import sys - -# Add parent directory to path for imports -sys.path.insert(0, str(Path(__file__).parent)) - -import wpt_utils - - -# Directory containing WPT test data -WPT_DATA_DIR = Path(__file__).parent / "wpt_data" / "conformance" - - -def discover_wpt_operations() -> List[str]: - """Discover all operations that have WPT test data available.""" - if not WPT_DATA_DIR.exists(): - return [] - - operations = [] - for json_file in WPT_DATA_DIR.glob("*.json"): - operations.append(json_file.stem) - - return sorted(operations) +from __future__ import annotations +import json +import os +from pathlib import Path +from typing import Any -def load_test_cases_for_operation(operation: str) -> List[Dict[str, Any]]: - """Load all test cases for a given operation.""" - try: - test_data = wpt_utils.load_wpt_test_data(operation, "conformance") - return test_data.get("tests", []) - except FileNotFoundError: - pytest.skip(f"No WPT test data for {operation}") - return [] - - -def convert_numeric_value(value): - """ - Convert numeric values from WPT test data to Python numbers. - Handles JavaScript bigint literals (ending with 'n'), Infinity/NaN, and other numeric strings. - - Args: - value: The value to convert (can be int, float, str, or other) - - Returns: - Converted numeric value or original value if not numeric - """ - if isinstance(value, str): - # Handle JavaScript bigint literals (e.g., "9223372036854775807n") - if value.endswith('n'): - try: - return int(value[:-1]) - except ValueError: - return float(value[:-1]) - # Handle JavaScript-style special float strings (used in clamp and tensor data) - lower = value.lower() - if lower == "infinity" or lower == "+infinity": - return float("inf") - if lower == "-infinity": - return float("-inf") - if lower == "nan": - return float("nan") - # Handle regular numeric strings - try: - # Try int first - if '.' not in value and 'e' not in value.lower(): - return int(value) - else: - return float(value) - except ValueError: - # Not a numeric string, return as-is - return value - return value - - -def execute_wpt_test_case(context, test_case: Dict[str, Any]) -> Dict[str, np.ndarray]: - """ - Execute a single WPT test case using the WebNN API. - - Args: - context: MLContext instance - test_case: Test case dictionary from WPT data - - Returns: - Dictionary mapping output names to NumPy arrays - """ - builder = context.create_graph_builder() - - # Create operands dictionary to track created operands by name - operands: Dict[str, Any] = {} - - # Extract graph description from test case - graph_desc = test_case.get("graph", {}) - - # Step 1: Create input operands - inputs_data = graph_desc.get("inputs", {}) - for input_name, input_spec in inputs_data.items(): - descriptor = input_spec.get("descriptor", input_spec) - shape = descriptor["shape"] - dtype = descriptor.get("dataType", "float32") - operands[input_name] = builder.input(input_name, shape, dtype) - - # Step 2: Execute operators in order - operators = graph_desc.get("operators", []) - for op_spec in operators: - op_name = op_spec["name"] - op_args_raw = op_spec.get("arguments", {}) - op_output = op_spec.get("outputs", op_spec.get("output", "output")) - - # Convert arguments from list of dicts to single dict if needed - if isinstance(op_args_raw, list): - op_args = {} - for arg_dict in op_args_raw: - op_args.update(arg_dict) - else: - op_args = op_args_raw - - # Flatten 'options' dict if present (used by conv2d, conv_transpose2d, etc.) - if "options" in op_args and isinstance(op_args["options"], dict): - options = op_args.pop("options") - op_args.update(options) - - # Resolve operand references in arguments - resolved_args = {} - for arg_name, arg_value in op_args.items(): - if isinstance(arg_value, str) and arg_value in operands: - # This is a reference to another operand - resolved_args[arg_name] = operands[arg_value] - elif isinstance(arg_value, list): - # This is a list of operand references (e.g., concat inputs) - resolved_list = [] - for item in arg_value: - if isinstance(item, str) and item in operands: - resolved_list.append(operands[item]) - else: - resolved_list.append(convert_numeric_value(item)) - resolved_args[arg_name] = resolved_list - else: - # This is a literal value - convert numeric strings (including bigints) - resolved_args[arg_name] = convert_numeric_value(arg_value) - - # Call the appropriate builder method - result = call_builder_method(builder, op_name, resolved_args) - - # Store result operand(s) - # Some operations (like split) return multiple outputs - if isinstance(op_output, list): - # Multiple outputs - result should also be a list - if isinstance(result, (list, tuple)): - for idx, output_name in enumerate(op_output): - operands[output_name] = result[idx] - else: - # Single result but multiple output names - store same result for all - for output_name in op_output: - operands[output_name] = result - else: - # Single output - operands[op_output] = result - - # Step 3: Build graph with outputs - expected_outputs = graph_desc.get("expectedOutputs", {}) - graph_outputs = {} - for output_name in expected_outputs.keys(): - if output_name in operands: - graph_outputs[output_name] = operands[output_name] - - if not graph_outputs: - raise ValueError("No outputs specified in test case") - - # Build the graph - graph = builder.build(graph_outputs) - - # Step 4: Prepare input data for compute() - compute_inputs = {} - for input_name, input_spec in inputs_data.items(): - input_array = wpt_utils.numpy_array_from_test_data(input_spec) - compute_inputs[input_name] = input_array - - # Step 5: Execute graph with compute() - compute_results = context.compute(graph, compute_inputs) - - # Step 6: Convert results to NumPy arrays - results = {} - for output_name in graph_outputs.keys(): - if output_name in compute_results: - results[output_name] = compute_results[output_name] - - return results - - -def call_builder_method(builder, op_name: str, args: Dict[str, Any]) -> Any: - """ - Call a builder method by name with the given arguments. - - Args: - builder: MLGraphBuilder instance - op_name: Operation name (e.g., "reduce_sum", "relu") - args: Arguments dictionary - - Returns: - Resulting MLOperand - """ - # Map WPT parameter names to Python API parameter names (camelCase to snake_case) - param_name_map = { - # General - "newShape": "new_shape", # expand operation - "type": "data_type", # cast operation - "keepDimensions": "keep_dimensions", # reduction operations - # Clamp operation - "minValue": "min_value", - "maxValue": "max_value", - # Conv2d/ConvTranspose2d - "padding": "pads", - "inputLayout": "input_layout", - "filterLayout": "filter_layout", - "outputSizes": "output_sizes", - "outputPadding": "output_padding", - } +import pytest - # Remap parameter names - mapped_args = {} - for key, value in args.items(): - mapped_key = param_name_map.get(key, key) - mapped_args[mapped_key] = value - args = mapped_args - - # Special handling for operations that use positional arguments - if op_name == "reshape": - # reshape(input, new_shape) - input_op = args.get("input", args.get("a")) - new_shape = args.get("new_shape") - method = getattr(builder, "reshape") - return method(input_op, new_shape) - - elif op_name == "softmax": - # softmax(input, axis) - input_op = args.get("input", args.get("x")) - axis = args.get("axis") - method = getattr(builder, "softmax") - if axis is None: - raise ValueError("softmax requires an axis") - return method(input_op, axis) - - # Map operation names to builder method names (WPT uses camelCase) - method_name_map = { - # Reduction operations - "reduceSum": "reduce_sum", - "reduceMean": "reduce_mean", - "reduceMax": "reduce_max", - "reduceMin": "reduce_min", - "reduceProduct": "reduce_product", - "reduceL1": "reduce_l1", - "reduceL2": "reduce_l2", - "reduceLogSum": "reduce_log_sum", - "reduceLogSumExp": "reduce_log_sum_exp", - "reduceSumSquare": "reduce_sum_square", - # Activation functions - "relu": "relu", - "sigmoid": "sigmoid", - "tanh": "tanh", - "softmax": "softmax", - "leakyRelu": "leaky_relu", - "hardSigmoid": "hard_sigmoid", - "hardSwish": "hard_swish", - "elu": "elu", - "gelu": "gelu", - "prelu": "prelu", - "softplus": "softplus", - "softsign": "softsign", - # Normalization operations - "batchNormalization": "batch_normalization", - "instanceNormalization": "instance_normalization", - "layerNormalization": "layer_normalization", - # Convolution operations - "conv2d": "conv2d", - "convTranspose2d": "conv_transpose2d", - # Pooling operations - "averagePool2d": "average_pool2d", - "maxPool2d": "max_pool2d", - "globalAveragePool": "global_average_pool", - "globalMaxPool": "global_max_pool", - # Binary operations - "add": "add", - "sub": "sub", - "mul": "mul", - "div": "div", - "matmul": "matmul", - # Comparison operations - "equal": "equal", - "greater": "greater", - "greaterOrEqual": "greater_or_equal", - "lesser": "lesser", - "lesserOrEqual": "lesser_or_equal", - # Logical operations - "logicalAnd": "logical_and", - "logicalOr": "logical_or", - "logicalNot": "logical_not", - "logicalXor": "logical_xor", - # Unary operations - "abs": "abs", - "ceil": "ceil", - "cos": "cos", - "exp": "exp", - "floor": "floor", - "log": "log", - "neg": "neg", - "reciprocal": "reciprocal", - "sign": "sign", - "sin": "sin", - "sqrt": "sqrt", - "tan": "tan", - "erf": "erf", - # Shape operations - "reshape": "reshape", - "transpose": "transpose", - "concat": "concat", - "expand": "expand", - "gather": "gather", - "pad": "pad", - "slice": "slice", - "split": "split", - "squeeze": "squeeze", - "unsqueeze": "unsqueeze", - "tile": "tile", - # Other operations - "cast": "cast", - "clamp": "clamp", - "gemm": "gemm", - "where": "where_", - "identity": "identity", - "quantizeLinear": "quantize_linear", - "dequantizeLinear": "dequantize_linear", - "scatterElements": "scatter_elements", - "scatterND": "scatter_nd", - "triangular": "triangular", - "argMax": "arg_max", - "argMin": "arg_min", +from runtime_support import COREML_BACKEND_AVAILABLE, EXECUTION_BACKEND_AVAILABLE + +from wpt_assert import assert_output_close +from wpt_execute_graph import execute_graph_resources, normalize_op_name +from wpt_js_loader import ( + default_wpt_dir, + discover_wpt_files, + load_wpt_conformance_file, + node_available, + operation_from_wpt_file, + resolve_wpt_tolerance, + wpt_cache_available, +) + +SUPPORTED_DTYPES = { + "float32", + "float16", + "int8", + "uint8", + "int32", + "uint32", + "int64", + "uint64", + "int4", + "uint4", +} + + +def _wpt_backends_for_config(config) -> list[str]: + """Resolve which backend(s) to run; default is cpu only.""" + choice = (config.getoption("--wpt-backend") or os.environ.get("WPT_BACKEND") or "cpu").lower() + if choice == "all": + backends: list[str] = [] + if EXECUTION_BACKEND_AVAILABLE: + backends.append("cpu") + if COREML_BACKEND_AVAILABLE: + backends.append("coreml") + return backends or ["cpu"] + return [choice] + + +def _backend_available(backend: str) -> bool: + if backend == "cpu": + return EXECUTION_BACKEND_AVAILABLE + if backend == "coreml": + return COREML_BACKEND_AVAILABLE + return False + + +def _create_wpt_context(ml, backend_name: str): + device_type_map = { + "cpu": "cpu", + "coreml": "npu", } + device_type = device_type_map.get(backend_name, "auto") + return ml.create_context( + power_preference="default", + accelerated=backend_name != "cpu", + device_type=device_type, + ) - method_name = method_name_map.get(op_name, op_name) - - if not hasattr(builder, method_name): - pytest.skip(f"Operation {op_name} not implemented") - - method = getattr(builder, method_name) - # Handle different argument patterns - # For operations with a single input operand - if "input" in args and len(args) == 1: - return method(args["input"]) +@pytest.fixture(scope="session") +def wpt_context_cache(ml): + """One MLContext per backend for the whole WPT session (builders remain per-test).""" + return {} - # For unary operations with 'a' parameter (like logical_not) - if "a" in args and len(args) == 1: - return method(args["a"]) - # For operations with options (like reduction ops, clamp) - if "input" in args: - input_operand = args["input"] - # Filter out None values (they mean "use default") - options = {k: v for k, v in args.items() if k != "input" and v is not None} +@pytest.fixture +def context(backend_name, ml, wpt_context_cache): + """Reuse MLContext per backend; execute_graph_resources creates a fresh builder each test.""" + if not _backend_available(backend_name): + pytest.skip(f"Backend '{backend_name}' is not available on this platform") - # Handle special option name mappings - if "keepDimensions" in options: - options["keep_dimensions"] = options.pop("keepDimensions") + if backend_name not in wpt_context_cache: + wpt_context_cache[backend_name] = _create_wpt_context(ml, backend_name) + return wpt_context_cache[backend_name] - return method(input_operand, **options) - # For binary operations - if "a" in args and "b" in args: - remaining = {k: v for k, v in args.items() if k not in ["a", "b"]} - return method(args["a"], args["b"], **remaining) - - # Fallback: try calling with all args as kwargs - return method(**args) - - -def generate_test_id(operation: str, test_case: Dict[str, Any]) -> str: - """Generate a pytest test ID for a test case.""" +def generate_test_id(operation: str, test_case: dict[str, Any]) -> str: test_name = test_case.get("name", "unnamed") - # Sanitize name for pytest - test_id = f"{operation}::{test_name}".replace(" ", "_") - return test_id + return f"{operation}::{test_name}".replace(" ", "_") -# Pytest fixtures and test generation -@pytest.fixture(scope="module") -def available_operations(): - """Fixture providing list of operations with WPT test data.""" - operations = discover_wpt_operations() - if not operations: - pytest.skip("No WPT test data found. Run: ./scripts/update_wpt_tests.sh") - return operations +def should_skip_test(graph: dict[str, Any]) -> str | None: + tensors = list((graph.get("inputs") or {}).values()) + list( + (graph.get("expectedOutputs") or {}).values() + ) + for tensor in tensors: + descriptor = tensor.get("descriptor", tensor) + data_type = descriptor.get("dataType") + if data_type not in SUPPORTED_DTYPES: + return f"unsupported dataType: {data_type}" + return None def pytest_generate_tests(metafunc): - """ - Dynamically generate tests from WPT test data. - - This hook is called by pytest to parameterize test functions. - Backend parametrization is handled automatically by the context fixture. - """ - if "wpt_test_case" in metafunc.fixturenames: - # Discover all operations - operations = discover_wpt_operations() - - if not operations: - # No test data - create a single skip test - metafunc.parametrize( - "wpt_test_case,operation", - [(None, None)], - ids=["no_wpt_data"] - ) - return + if metafunc.definition.name == "test_wpt_conformance" and "backend_name" in metafunc.fixturenames: + backends = _wpt_backends_for_config(metafunc.config) + metafunc.parametrize("backend_name", backends) - # Generate test parameters for all operations and their test cases - test_params = [] - test_ids = [] + if "wpt_test_case" not in metafunc.fixturenames: + return + + if not node_available() or not wpt_cache_available(): + metafunc.parametrize( + "wpt_test_case,wpt_file,operation", + [(None, None, None)], + ids=["wpt_unavailable"], + ) + return - for operation in operations: - test_cases = load_test_cases_for_operation(operation) + wpt_dir = default_wpt_dir() + test_params: list[Any] = [] + test_ids: list[str] = [] - if not test_cases: - # Operation file exists but has no test cases - test_params.append((None, operation)) - test_ids.append(f"{operation}::no_tests") + for js_path in discover_wpt_files(wpt_dir): + operation = operation_from_wpt_file(js_path) + try: + loaded = load_wpt_conformance_file(str(js_path), str(wpt_dir)) + except (RuntimeError, FileNotFoundError, json.JSONDecodeError) as err: + if "No webnn_conformance_test" in str(err): continue + test_params.append((None, js_path, operation)) + test_ids.append(f"{operation}::load_error") + continue + + for test_case in loaded.get("tests", []): + marks = [] + test_name = test_case.get("name", "") - for test_case in test_cases: - # Check if test should be marked as slow - marks = [] - test_name = test_case.get("name", "") + if "large" in test_name.lower(): + marks.append(pytest.mark.slow) - # Mark tests with "large" in name as slow - if "large" in test_name.lower(): + graph_desc = test_case.get("graph", {}) + for input_spec in (graph_desc.get("inputs") or {}).values(): + descriptor = input_spec.get("descriptor", input_spec) + shape = descriptor.get("shape", []) + element_count = 1 + for dim in shape: + element_count *= dim + if element_count > 100_000: marks.append(pytest.mark.slow) + break - # Mark tests with large tensor sizes (>100K elements) as slow - graph_desc = test_case.get("graph", {}) - inputs_data = graph_desc.get("inputs", {}) - for input_name, input_spec in inputs_data.items(): - descriptor = input_spec.get("descriptor", input_spec) - shape = descriptor.get("shape", []) - element_count = 1 - for dim in shape: - element_count *= dim - if element_count > 100000: # More than 100K elements - if pytest.mark.slow not in marks: - marks.append(pytest.mark.slow) - break - - # Add test case with or without marks - if marks: - test_params.append(pytest.param(test_case, operation, marks=marks)) - else: - test_params.append((test_case, operation)) - - test_ids.append(generate_test_id(operation, test_case)) + if marks: + test_params.append( + pytest.param(test_case, js_path, operation, marks=marks) + ) + else: + test_params.append((test_case, js_path, operation)) + test_ids.append(generate_test_id(operation, test_case)) + if not test_params: metafunc.parametrize( - "wpt_test_case,operation", - test_params, - ids=test_ids + "wpt_test_case,wpt_file,operation", + [(None, None, None)], + ids=["no_wpt_data"], ) + return + metafunc.parametrize( + "wpt_test_case,wpt_file,operation", + test_params, + ids=test_ids, + ) -def test_wpt_conformance(context, backend_name, wpt_test_case, operation): - """ - Run a single WPT conformance test. - - This test is parameterized by pytest_generate_tests to run all WPT test cases. - Tests with large inputs are marked as "slow" during parametrization. - """ - if wpt_test_case is None and operation is None: - pytest.skip("No WPT test data found. Run: ./scripts/update_wpt_tests.sh") +def test_wpt_conformance(context, backend_name, wpt_test_case, wpt_file, operation): if wpt_test_case is None: - pytest.skip(f"No test cases for {operation} (may require manual conversion)") + if not node_available(): + pytest.skip("Node.js is required for WPT conformance tests") + if not wpt_cache_available(): + pytest.skip( + f"WPT cache not found at {default_wpt_dir()}. " + "Fetch WPT tests into webnnjs/.cache/wpt or set WPT_DIR." + ) + pytest.skip("No WPT conformance tests loaded") - # All data types and tensor sizes should be supported - test_name = wpt_test_case.get("name", "") + graph = wpt_test_case.get("graph") + if not graph: + pytest.skip("Invalid WPT test case (missing graph)") - # Skip Float16 tensors with large arrays on CoreML (CoreML/ANE platform limitation) - # See: FLOAT16_STATUS.md - CoreML crashes with Float16 inputs/constants/outputs >4 elements - # Chromium also skips Float16 tests on Mac: #if !BUILDFLAG(IS_MAC) - if backend_name == "coreml": - graph_desc = wpt_test_case.get("graph", {}) - - # Check inputs - inputs_data = graph_desc.get("inputs", {}) - for input_name, input_spec in inputs_data.items(): - descriptor = input_spec.get("descriptor", input_spec) - dtype = descriptor.get("dataType", "float32") - shape = descriptor.get("shape", []) - element_count = 1 - for dim in shape: - element_count *= dim - if dtype == "float16" and element_count > 4: - pytest.skip(f"CoreML limitation: Float16 input with >{4} elements crash (ANE memory alignment issue)") - - # Check constants - constants = graph_desc.get("constants", {}) - for const_name, const_spec in constants.items(): - descriptor = const_spec.get("descriptor", const_spec) - dtype = descriptor.get("dataType", "float32") - shape = descriptor.get("shape", []) - element_count = 1 - for dim in shape: - element_count *= dim - if dtype == "float16" and element_count > 4: - pytest.skip(f"CoreML limitation: Float16 constant with >{4} elements crash (ANE memory alignment issue)") - - # Check expected outputs - expected_outputs = wpt_test_case.get("expectedOutputs", {}) - for output_name, output_spec in expected_outputs.items(): - dtype = output_spec.get("dataType", "float32") - shape = output_spec.get("shape", []) - element_count = 1 - for dim in shape: - element_count *= dim - if dtype == "float16" and element_count > 4: - pytest.skip(f"CoreML limitation: Float16 output with >{4} elements crash (ANE memory alignment issue)") - - # Skip expand 0D scalar operations on CoreML (CoreML tile doesn't support scalar inputs) - # CoreML tile requires input rank to match reps rank - if backend_name == "coreml" and operation == "expand": - # Check if this is expanding a 0D scalar - graph_desc = wpt_test_case.get("graph", {}) - inputs_data = graph_desc.get("inputs", {}) - for input_name, input_spec in inputs_data.items(): - descriptor = input_spec.get("descriptor", input_spec) - shape = descriptor.get("shape", []) - if len(shape) == 0 or (len(shape) == 1 and shape[0] == 1 and "0D" in test_name): - pytest.skip("CoreML limitation: tile operation doesn't support scalar (0D) inputs") - - # Skip reshape to scalar (empty shape) on CoreML (CoreML reshape requires non-empty shape param) - if backend_name == "coreml" and operation == "reshape": - graph_desc = wpt_test_case.get("graph", {}) - expected_outputs = graph_desc.get("expectedOutputs", wpt_test_case.get("expectedOutputs", {})) - for output_spec in expected_outputs.values(): - descriptor = output_spec.get("descriptor", output_spec) - shape = descriptor.get("shape", [1]) - if len(shape) == 0: - pytest.skip("CoreML limitation: reshape to scalar (empty shape) not supported") - - # Skip hard_swish 0D scalar operations on CoreML (CoreML mul doesn't support scalar outputs correctly) - if backend_name == "coreml" and operation == "hard_swish": - # Check if this is a 0D scalar - graph_desc = wpt_test_case.get("graph", {}) - inputs_data = graph_desc.get("inputs", {}) - for input_name, input_spec in inputs_data.items(): - descriptor = input_spec.get("descriptor", input_spec) - shape = descriptor.get("shape", []) - if len(shape) == 0 or "0D" in test_name: - pytest.skip("CoreML limitation: hard_swish decomposition (sigmoid_hard + mul) doesn't support scalar (0D) tensors") - - # Skip neg 0D scalar operations on CoreML (CoreML mul doesn't support scalar outputs correctly) - if backend_name == "coreml" and operation == "neg": - # Check if this is a 0D scalar - graph_desc = wpt_test_case.get("graph", {}) - inputs_data = graph_desc.get("inputs", {}) - for input_name, input_spec in inputs_data.items(): - descriptor = input_spec.get("descriptor", input_spec) - shape = descriptor.get("shape", []) - if len(shape) == 0 or "0D" in test_name: - pytest.skip("CoreML limitation: neg decomposition (mul with -1) doesn't support scalar (0D) tensors") - - # Skip CoreML unsupported data types - # CoreML feature descriptions only support: DOUBLE, FLOAT32, FLOAT16, INT32 - # Int8, Uint8, Uint32, Int64 are not supported (even though Int8 exists in protobuf) - if backend_name == "coreml": - graph_desc = wpt_test_case.get("graph", {}) - - # Check inputs for unsupported types - inputs_data = graph_desc.get("inputs", {}) - for input_name, input_spec in inputs_data.items(): - descriptor = input_spec.get("descriptor", input_spec) - data_type = descriptor.get("dataType", "").lower() - if data_type in ["int8", "uint8", "uint32", "int64"]: - pytest.skip(f"CoreML limitation: {data_type} not supported in feature descriptions (only DOUBLE, FLOAT32, FLOAT16, INT32)") - - # Check expected outputs for unsupported types - expected_outputs = wpt_test_case.get("expectedOutputs", {}) - for output_name, output_spec in expected_outputs.items(): - data_type = output_spec.get("dataType", "").lower() - if data_type in ["int8", "uint8", "uint32", "int64"]: - pytest.skip(f"CoreML limitation: {data_type} not supported in feature descriptions (only DOUBLE, FLOAT32, FLOAT16, INT32)") - - # Skip known architectural limitations (validated against Chromium reference implementation) - # See: docs/implementation-status.md - Chromium Reference Implementation Comparison - - # These are the 32 tests that represent architectural limitations also present in Chromium - skip_patterns = [ - # instance_normalization NHWC (8 tests) - Not supported in Chromium - ("instance_normalization", "nhwc"), # Matches "layout='nhwc'" and "all options" with nhwc - ("instance_normalization", "all options"), - # layer_normalization non-consecutive axes (12 tests) - Requires complex emulation in Chromium - ("layer_normalization", "axes=[0, 2]"), # Note: space after comma in WPT test names - ("layer_normalization", "all options"), - ("layer_normalization", "options.scale"), # This catches both "options.scale" and "options.scale and" - # batch_normalization 1D/NHWC (12 tests) - Semantic mismatches with ONNX - ("batch_normalization", "1d tensor"), # Note: space, not underscore - ("batch_normalization", "nhwc tensor"), # Note: space, not underscore - ] + test_name = wpt_test_case.get("name", "") + skip_reason = should_skip_test(graph) + if skip_reason: + pytest.skip(skip_reason) - for op_pattern, name_pattern in skip_patterns: - if operation == op_pattern and name_pattern.lower() in test_name.lower(): - pytest.skip(f"{operation} architectural limitation (see docs/implementation-status.md)") + _apply_known_skips(operation, test_name) - # Skip CoreML operations that only support fp32/fp16 (not int32) - if backend_name == "coreml": - int32_unsupported_ops = ["clamp", "relu"] - if operation in int32_unsupported_ops: - graph_desc = wpt_test_case.get("graph", {}) - inputs_data = graph_desc.get("inputs", {}) - for input_name, input_spec in inputs_data.items(): - descriptor = input_spec.get("descriptor", input_spec) - data_type = descriptor.get("dataType", "").lower() - if data_type == "int32": - pytest.skip(f"CoreML limitation: {operation} only supports fp32/fp16, not int32") - - # Skip CoreML 0D (scalar) tensor operations that don't support rank-0 - # TODO: Implement reshape workaround (0D->1D->op->0D) like Chromium does - # See: crbug.com/391672283 - Chromium handles this for gather with 5D input - # by reshaping indices from 0D to [1], running gather, then reshaping output back - if backend_name == "coreml": - scalar_unsupported_ops = ["transpose", "slice", "gather"] - if operation in scalar_unsupported_ops and "0D" in test_name: - pytest.skip(f"CoreML limitation: {operation} doesn't support 0D (scalar) tensors") - - # Skip CoreML max rank limitation (5 dimensions) - if backend_name == "coreml": - if "5D" in test_name and operation == "reshape": - pytest.skip("CoreML limitation: maximum tensor rank is 5 dimensions") - - # Skip CoreML identifier naming limitations - # CoreML MIL requires valid identifiers (cannot start with digits) - if backend_name == "coreml": - if "special character" in test_name or "special_character" in test_name: - pytest.skip("CoreML limitation: operand names must be valid identifiers (cannot start with digits)") - - # Execute test case and get results try: - results = execute_wpt_test_case(context, wpt_test_case) - except NotImplementedError as e: - pytest.skip(f"Not implemented: {e}") - except (ValueError, RuntimeError) as e: - error_str = str(e) + results = execute_graph_resources(context, graph) + except NotImplementedError as err: + pytest.skip(str(err)) + except (ValueError, RuntimeError) as err: + error_str = str(err) if "Unsupported data type" in error_str or "Unsupported feature data type" in error_str: - pytest.skip(f"Unsupported data type: {e}") - # Skip CoreML normalization tests with non-constant parameters - # These are expected validation failures with clear error messages - if backend_name == "coreml": - if ("requires mean parameter to be a constant" in error_str or - "requires variance parameter to be a constant" in error_str or - "requires scale (gamma) parameter to be a constant" in error_str or - "requires bias (beta) parameter to be a constant" in error_str): - pytest.skip(f"CoreML limitation: normalization parameters must be constants - {e}") - # Skip CoreML layer_norm with empty axes (requires multi-operation emulation) - if "layer_norm with empty axes requires special handling" in error_str: - pytest.skip(f"CoreML limitation: layer_norm with empty axes not yet implemented - {e}") + pytest.skip(f"Unsupported data type: {err}") raise - # Validate results against expected outputs - expected_outputs = wpt_test_case.get("expectedOutputs", {}) - for output_name, expected_spec in expected_outputs.items(): - # Get actual output + tolerance = wpt_test_case.get("tolerance") + if tolerance is None: + tolerance = resolve_wpt_tolerance(Path(wpt_file), graph, wpt_dir=default_wpt_dir()) + operators = graph.get("operators") or [] + graph_operator_names = [normalize_op_name(op.get("name", "")) for op in operators] + last_op = graph_operator_names[-1] if graph_operator_names else "unknown" + + for output_name, expected_spec in (graph.get("expectedOutputs") or {}).items(): if output_name not in results: pytest.fail(f"Output '{output_name}' not found in results") - - actual = results[output_name] - expected = wpt_utils.numpy_array_from_test_data(expected_spec) - - # Get tolerance and validate - tolerance = wpt_utils.get_operation_tolerance(operation, wpt_test_case) - dtype = expected_spec.get("dataType", "float32") - - passed, message, failures = wpt_utils.validate_result( - actual, expected, tolerance, dtype + assert_output_close( + operator_name=last_op, + graph_operator_names=graph_operator_names, + graph=graph, + tolerance=tolerance, + output_name=output_name, + expected_spec=expected_spec, + actual=results[output_name], ) - if not passed: - failure_msg = wpt_utils.format_test_failure( - wpt_test_case.get("name", "unnamed"), - failures - ) - pytest.fail(f"{message}\n{failure_msg}") + +def _apply_known_skips(operation: str, test_name: str) -> None: + """Skip tests with known cross-backend architectural limitations.""" + skip_patterns = [ + ("instance_normalization", "nhwc"), + ("instance_normalization", "all options"), + ("layer_normalization", "axes=[0, 2]"), + ("layer_normalization", "all options"), + ("layer_normalization", "options.scale"), + ("batch_normalization", "1d tensor"), + ("batch_normalization", "nhwc tensor"), + ] + for op_pattern, name_pattern in skip_patterns: + if operation == op_pattern and name_pattern.lower() in test_name.lower(): + pytest.skip(f"{operation} architectural limitation (see docs/implementation-status.md)") -# Mark all tests in this module pytestmark = pytest.mark.wpt diff --git a/tests/wpt_data/README.md b/tests/wpt_data/README.md deleted file mode 100644 index fd7198b..0000000 --- a/tests/wpt_data/README.md +++ /dev/null @@ -1,139 +0,0 @@ -# WPT Test Data - -This directory contains test data converted from the [W3C Web Platform Tests (WPT) for WebNN](https://github.com/web-platform-tests/wpt/tree/master/webnn). - -## Directory Structure - -``` -wpt_data/ -├── README.md # This file -├── conformance/ # Conformance test data (operation correctness) -│ ├── relu.json -│ ├── reduce_sum.json -│ └── ... -└── validation/ # Validation test data (parameter validation) - ├── relu.json - └── ... -``` - -## Test Data Format - -Each JSON file contains test cases for a single operation: - -```json -{ - "operation": "reduce_sum", - "wpt_version": "2025-12-07", - "wpt_commit": "abc123...", - "source_file": "conformance_tests/reduce.https.any.js", - "tests": [ - { - "name": "reduce_sum float32 2D tensor with axes=[1]", - "inputs": { - "input": { - "data": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0], - "shape": [2, 3], - "dataType": "float32" - } - }, - "operators": [ - { - "name": "reduce_sum", - "arguments": { - "input": "input", - "axes": [1], - "keepDimensions": false - }, - "output": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [6.0, 15.0], - "shape": [2], - "dataType": "float32" - } - }, - "tolerance": { - "type": "ULP", - "value": 0 - } - } - ] -} -``` - -## Updating Test Data - -### Automatic Update (Recommended) - -Use the update script to sync with WPT upstream: - -```bash -# Update all test data from WPT repository -./scripts/update_wpt_tests.sh - -# Update specific operations only -./scripts/update_wpt_tests.sh --operations reduce_sum,relu,add -``` - -The script will: -1. Clone/update the WPT repository -2. Convert JavaScript test files to JSON -3. Preserve any local modifications -4. Generate a change report - -### Manual Conversion - -If you need to convert tests manually: - -```bash -# Convert a specific operation -python scripts/convert_wpt_tests.py \ - --wpt-repo ~/wpt \ - --operation reduce_sum \ - --output tests/wpt_data/conformance/ - -# Convert multiple operations -python scripts/convert_wpt_tests.py \ - --wpt-repo ~/wpt \ - --operations reduce_sum,reduce_mean,relu \ - --output tests/wpt_data/conformance/ -``` - -## Test Data Versioning - -Each JSON file includes metadata about the WPT version: -- `wpt_version`: Date of WPT snapshot -- `wpt_commit`: Git commit SHA from WPT repository -- `source_file`: Original JavaScript test file path - -This allows tracking which WPT version each test came from, making updates easier. - -## Running Tests - -```bash -# Run all WPT conformance tests -pytest tests/test_wpt_conformance.py -v - -# Run tests for specific operation -pytest tests/test_wpt_conformance.py -k "reduce_sum" -v - -# Run with coverage report -pytest tests/test_wpt_conformance.py --cov=webnn --cov-report=html -``` - -## Contributing - -When adding new operations: -1. Run the converter script to generate test data -2. Verify tests pass with your implementation -3. Commit both the implementation and test data -4. Document any test failures or skips - -## Notes - -- Test data is committed to the repository for reproducibility -- Large test files (>1MB) may be stored separately -- Tolerance values are preserved from WPT tests -- Custom tolerance overrides can be specified in `tests/wpt_utils.py` diff --git a/tests/wpt_data/conformance/abs.json b/tests/wpt_data/conformance/abs.json deleted file mode 100644 index 7476ac0..0000000 --- a/tests/wpt_data/conformance/abs.json +++ /dev/null @@ -1,1521 +0,0 @@ -{ - "operation": "abs", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/abs.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "abs float32 positive 0D scalar", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.837242126464844 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.837242126464844 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "abs float32 negative 0D scalar", - "graph": { - "inputs": { - "absInput": { - "data": [ - -91.03521728515625 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 91.03521728515625 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "abs float32 1D constant tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - -91.03521728515625, - 31.4484920501709, - -29.31110954284668, - -92.4477310180664, - -15.520709991455078, - 80.91279602050781, - -38.2097053527832, - 53.064762115478516, - 99.6537094116211, - -21.285049438476562, - 90.01982879638672, - 18.32451820373535, - -33.06915283203125, - 30.097660064697266, - -74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - -53.206058502197266 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - 91.03521728515625, - 31.4484920501709, - 29.31110954284668, - 92.4477310180664, - 15.520709991455078, - 80.91279602050781, - 38.2097053527832, - 53.064762115478516, - 99.6537094116211, - 21.285049438476562, - 90.01982879638672, - 18.32451820373535, - 33.06915283203125, - 30.097660064697266, - 74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - 53.206058502197266 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "abs float32 1D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - -91.03521728515625, - 31.4484920501709, - -29.31110954284668, - -92.4477310180664, - -15.520709991455078, - 80.91279602050781, - -38.2097053527832, - 53.064762115478516, - 99.6537094116211, - -21.285049438476562, - 90.01982879638672, - 18.32451820373535, - -33.06915283203125, - 30.097660064697266, - -74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - -53.206058502197266 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - 91.03521728515625, - 31.4484920501709, - 29.31110954284668, - 92.4477310180664, - 15.520709991455078, - 80.91279602050781, - 38.2097053527832, - 53.064762115478516, - 99.6537094116211, - 21.285049438476562, - 90.01982879638672, - 18.32451820373535, - 33.06915283203125, - 30.097660064697266, - 74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - 53.206058502197266 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "abs float32 2D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - -91.03521728515625, - 31.4484920501709, - -29.31110954284668, - -92.4477310180664, - -15.520709991455078, - 80.91279602050781, - -38.2097053527832, - 53.064762115478516, - 99.6537094116211, - -21.285049438476562, - 90.01982879638672, - 18.32451820373535, - -33.06915283203125, - 30.097660064697266, - -74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - -53.206058502197266 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - 91.03521728515625, - 31.4484920501709, - 29.31110954284668, - 92.4477310180664, - 15.520709991455078, - 80.91279602050781, - 38.2097053527832, - 53.064762115478516, - 99.6537094116211, - 21.285049438476562, - 90.01982879638672, - 18.32451820373535, - 33.06915283203125, - 30.097660064697266, - 74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - 53.206058502197266 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "abs float32 3D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - -91.03521728515625, - 31.4484920501709, - -29.31110954284668, - -92.4477310180664, - -15.520709991455078, - 80.91279602050781, - -38.2097053527832, - 53.064762115478516, - 99.6537094116211, - -21.285049438476562, - 90.01982879638672, - 18.32451820373535, - -33.06915283203125, - 30.097660064697266, - -74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - -53.206058502197266 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - 91.03521728515625, - 31.4484920501709, - 29.31110954284668, - 92.4477310180664, - 15.520709991455078, - 80.91279602050781, - 38.2097053527832, - 53.064762115478516, - 99.6537094116211, - 21.285049438476562, - 90.01982879638672, - 18.32451820373535, - 33.06915283203125, - 30.097660064697266, - 74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - 53.206058502197266 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "abs float32 4D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - -91.03521728515625, - 31.4484920501709, - -29.31110954284668, - -92.4477310180664, - -15.520709991455078, - 80.91279602050781, - -38.2097053527832, - 53.064762115478516, - 99.6537094116211, - -21.285049438476562, - 90.01982879638672, - 18.32451820373535, - -33.06915283203125, - 30.097660064697266, - -74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - -53.206058502197266 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - 91.03521728515625, - 31.4484920501709, - 29.31110954284668, - 92.4477310180664, - 15.520709991455078, - 80.91279602050781, - 38.2097053527832, - 53.064762115478516, - 99.6537094116211, - 21.285049438476562, - 90.01982879638672, - 18.32451820373535, - 33.06915283203125, - 30.097660064697266, - 74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - 53.206058502197266 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "abs float32 5D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - -91.03521728515625, - 31.4484920501709, - -29.31110954284668, - -92.4477310180664, - -15.520709991455078, - 80.91279602050781, - -38.2097053527832, - 53.064762115478516, - 99.6537094116211, - -21.285049438476562, - 90.01982879638672, - 18.32451820373535, - -33.06915283203125, - 30.097660064697266, - -74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - -53.206058502197266 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.837242126464844, - 82.09291076660156, - 3.1989054679870605, - 85.20904541015625, - 88.94609069824219, - 91.03521728515625, - 31.4484920501709, - 29.31110954284668, - 92.4477310180664, - 15.520709991455078, - 80.91279602050781, - 38.2097053527832, - 53.064762115478516, - 99.6537094116211, - 21.285049438476562, - 90.01982879638672, - 18.32451820373535, - 33.06915283203125, - 30.097660064697266, - 74.21503448486328, - 95.60974884033203, - 6.614287376403809, - 31.2832088470459, - 53.206058502197266 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "abs float16 positive 0D scalar", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.84375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.84375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs float16 negative 0D scalar", - "graph": { - "inputs": { - "absInput": { - "data": [ - -91.0625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 91.0625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs float16 1D constant tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - -91.0625, - 31.453125, - -29.3125, - -92.4375, - -15.5234375, - 80.9375, - -38.21875, - 53.0625, - 99.625, - -21.28125, - 90, - 18.328125, - -33.0625, - 30.09375, - -74.1875, - 95.625, - 6.61328125, - 31.28125, - -53.21875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - 91.0625, - 31.453125, - 29.3125, - 92.4375, - 15.5234375, - 80.9375, - 38.21875, - 53.0625, - 99.625, - 21.28125, - 90, - 18.328125, - 33.0625, - 30.09375, - 74.1875, - 95.625, - 6.61328125, - 31.28125, - 53.21875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs float16 1D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - -91.0625, - 31.453125, - -29.3125, - -92.4375, - -15.5234375, - 80.9375, - -38.21875, - 53.0625, - 99.625, - -21.28125, - 90, - 18.328125, - -33.0625, - 30.09375, - -74.1875, - 95.625, - 6.61328125, - 31.28125, - -53.21875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - 91.0625, - 31.453125, - 29.3125, - 92.4375, - 15.5234375, - 80.9375, - 38.21875, - 53.0625, - 99.625, - 21.28125, - 90, - 18.328125, - 33.0625, - 30.09375, - 74.1875, - 95.625, - 6.61328125, - 31.28125, - 53.21875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs float16 2D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - -91.0625, - 31.453125, - -29.3125, - -92.4375, - -15.5234375, - 80.9375, - -38.21875, - 53.0625, - 99.625, - -21.28125, - 90, - 18.328125, - -33.0625, - 30.09375, - -74.1875, - 95.625, - 6.61328125, - 31.28125, - -53.21875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - 91.0625, - 31.453125, - 29.3125, - 92.4375, - 15.5234375, - 80.9375, - 38.21875, - 53.0625, - 99.625, - 21.28125, - 90, - 18.328125, - 33.0625, - 30.09375, - 74.1875, - 95.625, - 6.61328125, - 31.28125, - 53.21875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs float16 3D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - -91.0625, - 31.453125, - -29.3125, - -92.4375, - -15.5234375, - 80.9375, - -38.21875, - 53.0625, - 99.625, - -21.28125, - 90, - 18.328125, - -33.0625, - 30.09375, - -74.1875, - 95.625, - 6.61328125, - 31.28125, - -53.21875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - 91.0625, - 31.453125, - 29.3125, - 92.4375, - 15.5234375, - 80.9375, - 38.21875, - 53.0625, - 99.625, - 21.28125, - 90, - 18.328125, - 33.0625, - 30.09375, - 74.1875, - 95.625, - 6.61328125, - 31.28125, - 53.21875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs float16 4D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - -91.0625, - 31.453125, - -29.3125, - -92.4375, - -15.5234375, - 80.9375, - -38.21875, - 53.0625, - 99.625, - -21.28125, - 90, - 18.328125, - -33.0625, - 30.09375, - -74.1875, - 95.625, - 6.61328125, - 31.28125, - -53.21875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - 91.0625, - 31.453125, - 29.3125, - 92.4375, - 15.5234375, - 80.9375, - 38.21875, - 53.0625, - 99.625, - 21.28125, - 90, - 18.328125, - 33.0625, - 30.09375, - 74.1875, - 95.625, - 6.61328125, - 31.28125, - 53.21875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs float16 5D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - -91.0625, - 31.453125, - -29.3125, - -92.4375, - -15.5234375, - 80.9375, - -38.21875, - 53.0625, - 99.625, - -21.28125, - 90, - 18.328125, - -33.0625, - 30.09375, - -74.1875, - 95.625, - 6.61328125, - 31.28125, - -53.21875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - 91.0625, - 31.453125, - 29.3125, - 92.4375, - 15.5234375, - 80.9375, - 38.21875, - 53.0625, - 99.625, - 21.28125, - 90, - 18.328125, - 33.0625, - 30.09375, - 74.1875, - 95.625, - 6.61328125, - 31.28125, - 53.21875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs float16 6D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - -91.0625, - 31.453125, - -29.3125, - -92.4375, - -15.5234375, - 80.9375, - -38.21875, - 53.0625, - 99.625, - -21.28125, - 90, - 18.328125, - -33.0625, - 30.09375, - -74.1875, - 95.625, - 6.61328125, - 31.28125, - -53.21875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 49.84375, - 82.0625, - 3.19921875, - 85.1875, - 88.9375, - 91.0625, - 31.453125, - 29.3125, - 92.4375, - 15.5234375, - 80.9375, - 38.21875, - 53.0625, - 99.625, - 21.28125, - 90, - 18.328125, - 33.0625, - 30.09375, - 74.1875, - 95.625, - 6.61328125, - 31.28125, - 53.21875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "abs int8 4D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - -127, - 0, - 126, - 127 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 127, - 0, - 126, - 127 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "abs int32 4D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - -2147483647, - 0, - 2147483646, - 2147483647 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - 2147483647, - 0, - 2147483646, - 2147483647 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "abs int64 4D tensor", - "graph": { - "inputs": { - "absInput": { - "data": [ - "-9223372036854775807n", - "-100n", - "0n", - "100n", - "9223372036854775807n" - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 5 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "abs", - "arguments": [ - { - "input": "absInput" - } - ], - "outputs": "absOutput" - } - ], - "expectedOutputs": { - "absOutput": { - "data": [ - "9223372036854775807n", - "100n", - "0n", - "100n", - "9223372036854775807n" - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 5 - ], - "dataType": "int64" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/add.json b/tests/wpt_data/conformance/add.json deleted file mode 100644 index 60d2ae4..0000000 --- a/tests/wpt_data/conformance/add.json +++ /dev/null @@ -1,2630 +0,0 @@ -{ - "operation": "add", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/add.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "add float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - -59.749725341796875, - -44.81494140625, - -87.93879699707031, - 1.8843363523483276, - 84.89464569091797, - 47.553653717041016, - 85.64292907714844, - 43.02861404418945, - -60.25821304321289, - 15.60616683959961, - 70.60614776611328, - -7.454866409301758, - -30.20689582824707, - -97.69825744628906, - -0.00984330102801323, - -77.67960357666016, - 30.196685791015625, - -59.19007110595703, - 89.3588638305664, - 28.6798095703125, - -29.72130584716797, - -90.6352310180664, - 28.2818546295166, - 27.662540435791016 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.08303833007812, - -112.71289825439453, - -61.47605895996094, - 38.627098083496094, - 19.717254638671875, - -40.15299606323242, - 150.9217529296875, - -31.02364730834961, - -74.08602142333984, - 22.58765411376953, - 170.44366455078125, - 48.34747314453125, - -105.77885437011719, - -86.19874572753906, - 17.100265502929688, - 18.13207244873047, - 87.64418029785156, - -116.3659439086914, - 117.07791900634766, - 10.460599899291992, - 22.931793212890625, - -160.62979125976562, - 68.10350799560547, - -2.3239879608154297 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -59.749725341796875, - -44.81494140625, - -87.93879699707031, - 1.8843363523483276, - 84.89464569091797, - 47.553653717041016, - 85.64292907714844, - 43.02861404418945, - -60.25821304321289, - 15.60616683959961, - 70.60614776611328, - -7.454866409301758, - -30.20689582824707, - -97.69825744628906, - -0.00984330102801323, - -77.67960357666016, - 30.196685791015625, - -59.19007110595703, - 89.3588638305664, - 28.6798095703125, - -29.72130584716797, - -90.6352310180664, - 28.2818546295166, - 27.662540435791016 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.08303833007812, - -112.71289825439453, - -61.47605895996094, - 38.627098083496094, - 19.717254638671875, - -40.15299606323242, - 150.9217529296875, - -31.02364730834961, - -74.08602142333984, - 22.58765411376953, - 170.44366455078125, - 48.34747314453125, - -105.77885437011719, - -86.19874572753906, - 17.100265502929688, - 18.13207244873047, - 87.64418029785156, - -116.3659439086914, - 117.07791900634766, - 10.460599899291992, - 22.931793212890625, - -160.62979125976562, - 68.10350799560547, - -2.3239879608154297 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -59.749725341796875, - -44.81494140625, - -87.93879699707031, - 1.8843363523483276, - 84.89464569091797, - 47.553653717041016, - 85.64292907714844, - 43.02861404418945, - -60.25821304321289, - 15.60616683959961, - 70.60614776611328, - -7.454866409301758, - -30.20689582824707, - -97.69825744628906, - -0.00984330102801323, - -77.67960357666016, - 30.196685791015625, - -59.19007110595703, - 89.3588638305664, - 28.6798095703125, - -29.72130584716797, - -90.6352310180664, - 28.2818546295166, - 27.662540435791016 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.08303833007812, - -112.71289825439453, - -61.47605895996094, - 38.627098083496094, - 19.717254638671875, - -40.15299606323242, - 150.9217529296875, - -31.02364730834961, - -74.08602142333984, - 22.58765411376953, - 170.44366455078125, - 48.34747314453125, - -105.77885437011719, - -86.19874572753906, - 17.100265502929688, - 18.13207244873047, - 87.64418029785156, - -116.3659439086914, - 117.07791900634766, - 10.460599899291992, - 22.931793212890625, - -160.62979125976562, - 68.10350799560547, - -2.3239879608154297 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -59.749725341796875, - -44.81494140625, - -87.93879699707031, - 1.8843363523483276, - 84.89464569091797, - 47.553653717041016, - 85.64292907714844, - 43.02861404418945, - -60.25821304321289, - 15.60616683959961, - 70.60614776611328, - -7.454866409301758, - -30.20689582824707, - -97.69825744628906, - -0.00984330102801323, - -77.67960357666016, - 30.196685791015625, - -59.19007110595703, - 89.3588638305664, - 28.6798095703125, - -29.72130584716797, - -90.6352310180664, - 28.2818546295166, - 27.662540435791016 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.08303833007812, - -112.71289825439453, - -61.47605895996094, - 38.627098083496094, - 19.717254638671875, - -40.15299606323242, - 150.9217529296875, - -31.02364730834961, - -74.08602142333984, - 22.58765411376953, - 170.44366455078125, - 48.34747314453125, - -105.77885437011719, - -86.19874572753906, - 17.100265502929688, - 18.13207244873047, - 87.64418029785156, - -116.3659439086914, - 117.07791900634766, - 10.460599899291992, - 22.931793212890625, - -160.62979125976562, - 68.10350799560547, - -2.3239879608154297 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -59.749725341796875, - -44.81494140625, - -87.93879699707031, - 1.8843363523483276, - 84.89464569091797, - 47.553653717041016, - 85.64292907714844, - 43.02861404418945, - -60.25821304321289, - 15.60616683959961, - 70.60614776611328, - -7.454866409301758, - -30.20689582824707, - -97.69825744628906, - -0.00984330102801323, - -77.67960357666016, - 30.196685791015625, - -59.19007110595703, - 89.3588638305664, - 28.6798095703125, - -29.72130584716797, - -90.6352310180664, - 28.2818546295166, - 27.662540435791016 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.08303833007812, - -112.71289825439453, - -61.47605895996094, - 38.627098083496094, - 19.717254638671875, - -40.15299606323242, - 150.9217529296875, - -31.02364730834961, - -74.08602142333984, - 22.58765411376953, - 170.44366455078125, - 48.34747314453125, - -105.77885437011719, - -86.19874572753906, - 17.100265502929688, - 18.13207244873047, - 87.64418029785156, - -116.3659439086914, - 117.07791900634766, - 10.460599899291992, - 22.931793212890625, - -160.62979125976562, - 68.10350799560547, - -2.3239879608154297 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -59.749725341796875, - -44.81494140625, - -87.93879699707031, - 1.8843363523483276, - 84.89464569091797, - 47.553653717041016, - 85.64292907714844, - 43.02861404418945, - -60.25821304321289, - 15.60616683959961, - 70.60614776611328, - -7.454866409301758, - -30.20689582824707, - -97.69825744628906, - -0.00984330102801323, - -77.67960357666016, - 30.196685791015625, - -59.19007110595703, - 89.3588638305664, - 28.6798095703125, - -29.72130584716797, - -90.6352310180664, - 28.2818546295166, - 27.662540435791016 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.08303833007812, - -112.71289825439453, - -61.47605895996094, - 38.627098083496094, - 19.717254638671875, - -40.15299606323242, - 150.9217529296875, - -31.02364730834961, - -74.08602142333984, - 22.58765411376953, - 170.44366455078125, - 48.34747314453125, - -105.77885437011719, - -86.19874572753906, - 17.100265502929688, - 18.13207244873047, - 87.64418029785156, - -116.3659439086914, - 117.07791900634766, - 10.460599899291992, - 22.931793212890625, - -160.62979125976562, - 68.10350799560547, - -2.3239879608154297 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -59.361572265625 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -102.69488525390625, - -127.25952911376953, - -32.898834228515625, - -22.61880874633789, - -124.5389633178711, - -147.06822204589844, - 5.917243957519531, - -133.41383361816406, - -73.18938446044922, - -52.38008499145508, - 40.47594451904297, - -3.559234619140625, - -134.93353271484375, - -47.862064361572266, - -42.25146484375, - 36.450103759765625, - -1.9140739440917969, - -116.53744506835938, - -31.642518997192383, - -77.58078002929688, - -6.708473205566406, - -129.3561248779297, - -19.5399169921875, - -89.34809875488281 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -17.981124877929688, - -70.45854187011719, - -12.762019157409668, - 24.254032135009766, - -68.12599182128906, - 30.62627410888672 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -61.3144416809082, - -138.35650634765625, - 13.70072078704834, - 60.996795654296875, - -133.30337524414062, - -57.08037567138672, - 47.297691345214844, - -144.51080322265625, - -26.589828491210938, - 31.235519409179688, - 31.711524963378906, - 86.4286117553711, - -93.55308532714844, - -58.95903396606445, - 4.348090171813965, - 120.06570434570312, - -10.67849349975586, - -26.549598693847656, - 9.73792839050293, - -88.67774963378906, - 39.89107894897461, - -45.74052047729492, - -28.304336547851562, - 0.6397457122802734 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -32.34067153930664, - 43.12499237060547, - 78.6887435913086, - -54.49899673461914 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -75.67398834228516, - -100.23863220214844, - -5.877931594848633, - 79.86775207519531, - -22.052398681640625, - -44.58165740966797, - 143.96755981445312, - 4.636482238769531, - 64.86093139648438, - -47.51750946044922, - 45.33852005004883, - 1.3033409118652344, - -107.91262817382812, - -20.841163635253906, - -15.230562210083008, - 138.93667602539062, - 100.57249450683594, - -14.050880432128906, - 106.40779876708984, - 60.46953582763672, - 131.3418426513672, - -124.49354553222656, - -14.67734146118164, - -84.48552703857422 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -59.361572265625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -43.333316802978516, - -67.89795684814453, - 26.462739944458008, - 36.74276351928711, - -65.1773910522461, - -87.70664978027344, - 65.27881622314453, - -74.05226135253906, - -13.827810287475586, - 6.981486797332764, - 99.83751678466797, - 55.802337646484375, - -75.57196044921875, - 11.499507904052734, - 17.110109329223633, - 95.81167602539062, - 57.4474983215332, - -57.175872802734375, - 27.719053268432617, - -18.219209671020508, - 52.653099060058594, - -69.99455261230469, - 39.8216552734375, - -29.986528396606445 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -102.69488525390625, - -127.25952911376953, - -32.898834228515625, - -22.61880874633789, - -124.5389633178711, - -147.06822204589844, - 5.917243957519531, - -133.41383361816406, - -73.18938446044922, - -52.38008499145508, - 40.47594451904297, - -3.559234619140625, - -134.93353271484375, - -47.862064361572266, - -42.25146484375, - 36.450103759765625, - -1.9140739440917969, - -116.53744506835938, - -31.642518997192383, - -77.58078002929688, - -6.708473205566406, - -129.3561248779297, - -19.5399169921875, - -89.34809875488281 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 large inputs", - "graph": { - "inputs": { - "inputA": { - "data": 89.32998657226562, - "descriptor": { - "shape": [ - 6000, - 6000 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": 77.24720764160156, - "descriptor": { - "shape": [ - 6000, - 6000 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": 166.5771942138672, - "descriptor": { - "shape": [ - 6000, - 6000 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float32 with special character names", - "graph": { - "inputs": { - "12-L#!.\u263a": { - "data": [ - 89.32998657226562 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - }, - "constant": true - }, - "\ud83e\udd26\ud83c\udffc\u200d\u2642\ufe0f124DS#!F": { - "data": [ - 77.24720764160156 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "12-L#!.\u263a" - }, - { - "b": "\ud83e\udd26\ud83c\udffc\u200d\u2642\ufe0f124DS#!F" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 166.5771942138672 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "add float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - -59.75, - -44.8125, - -87.9375, - 1.884765625, - 84.875, - 47.5625, - 85.625, - 43.03125, - -60.25, - 15.609375, - 70.625, - -7.453125, - -30.203125, - -97.6875, - -0.0098419189453125, - -77.6875, - 30.203125, - -59.1875, - 89.375, - 28.6875, - -29.71875, - -90.625, - 28.28125, - 27.65625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.125, - -112.6875, - -61.46875, - 38.625, - 19.6875, - -40.125, - 150.875, - -31.03125, - -74.0625, - 22.59375, - 170.5, - 48.375, - -105.75, - -86.1875, - 17.09375, - 18.125, - 87.625, - -116.375, - 117.125, - 10.46875, - 22.9375, - -160.625, - 68.125, - -2.328125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -59.75, - -44.8125, - -87.9375, - 1.884765625, - 84.875, - 47.5625, - 85.625, - 43.03125, - -60.25, - 15.609375, - 70.625, - -7.453125, - -30.203125, - -97.6875, - -0.0098419189453125, - -77.6875, - 30.203125, - -59.1875, - 89.375, - 28.6875, - -29.71875, - -90.625, - 28.28125, - 27.65625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.125, - -112.6875, - -61.46875, - 38.625, - 19.6875, - -40.125, - 150.875, - -31.03125, - -74.0625, - 22.59375, - 170.5, - 48.375, - -105.75, - -86.1875, - 17.09375, - 18.125, - 87.625, - -116.375, - 117.125, - 10.46875, - 22.9375, - -160.625, - 68.125, - -2.328125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -59.75, - -44.8125, - -87.9375, - 1.884765625, - 84.875, - 47.5625, - 85.625, - 43.03125, - -60.25, - 15.609375, - 70.625, - -7.453125, - -30.203125, - -97.6875, - -0.0098419189453125, - -77.6875, - 30.203125, - -59.1875, - 89.375, - 28.6875, - -29.71875, - -90.625, - 28.28125, - 27.65625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.125, - -112.6875, - -61.46875, - 38.625, - 19.6875, - -40.125, - 150.875, - -31.03125, - -74.0625, - 22.59375, - 170.5, - 48.375, - -105.75, - -86.1875, - 17.09375, - 18.125, - 87.625, - -116.375, - 117.125, - 10.46875, - 22.9375, - -160.625, - 68.125, - -2.328125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -59.75, - -44.8125, - -87.9375, - 1.884765625, - 84.875, - 47.5625, - 85.625, - 43.03125, - -60.25, - 15.609375, - 70.625, - -7.453125, - -30.203125, - -97.6875, - -0.0098419189453125, - -77.6875, - 30.203125, - -59.1875, - 89.375, - 28.6875, - -29.71875, - -90.625, - 28.28125, - 27.65625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.125, - -112.6875, - -61.46875, - 38.625, - 19.6875, - -40.125, - 150.875, - -31.03125, - -74.0625, - 22.59375, - 170.5, - 48.375, - -105.75, - -86.1875, - 17.09375, - 18.125, - 87.625, - -116.375, - 117.125, - 10.46875, - 22.9375, - -160.625, - 68.125, - -2.328125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -59.75, - -44.8125, - -87.9375, - 1.884765625, - 84.875, - 47.5625, - 85.625, - 43.03125, - -60.25, - 15.609375, - 70.625, - -7.453125, - -30.203125, - -97.6875, - -0.0098419189453125, - -77.6875, - 30.203125, - -59.1875, - 89.375, - 28.6875, - -29.71875, - -90.625, - 28.28125, - 27.65625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.125, - -112.6875, - -61.46875, - 38.625, - 19.6875, - -40.125, - 150.875, - -31.03125, - -74.0625, - 22.59375, - 170.5, - 48.375, - -105.75, - -86.1875, - 17.09375, - 18.125, - 87.625, - -116.375, - 117.125, - 10.46875, - 22.9375, - -160.625, - 68.125, - -2.328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -59.75, - -44.8125, - -87.9375, - 1.884765625, - 84.875, - 47.5625, - 85.625, - 43.03125, - -60.25, - 15.609375, - 70.625, - -7.453125, - -30.203125, - -97.6875, - -0.0098419189453125, - -77.6875, - 30.203125, - -59.1875, - 89.375, - 28.6875, - -29.71875, - -90.625, - 28.28125, - 27.65625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -103.125, - -112.6875, - -61.46875, - 38.625, - 19.6875, - -40.125, - 150.875, - -31.03125, - -74.0625, - 22.59375, - 170.5, - 48.375, - -105.75, - -86.1875, - 17.09375, - 18.125, - 87.625, - -116.375, - 117.125, - 10.46875, - 22.9375, - -160.625, - 68.125, - -2.328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -59.375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -102.75, - -127.25, - -32.90625, - -22.625, - -124.5625, - -147, - 5.875, - -133.5, - -73.1875, - -52.40625, - 40.4375, - -3.5625, - -135, - -47.875, - -42.25, - 36.4375, - -1.9375, - -116.5625, - -31.65625, - -77.625, - -6.71875, - -129.375, - -19.5625, - -89.375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -17.984375, - -70.4375, - -12.765625, - 24.25, - -68.125, - 30.625 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -61.3125, - -138.25, - 13.703125, - 61, - -133.25, - -57.0625, - 47.25, - -144.5, - -26.59375, - 31.234375, - 31.6875, - 86.4375, - -93.5625, - -58.9375, - 4.34375, - 120.0625, - -10.6875, - -26.5625, - 9.734375, - -88.625, - 39.875, - -45.75, - -28.3125, - 0.640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -32.34375, - 43.125, - 78.6875, - -54.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -75.6875, - -100.25, - -5.875, - 79.875, - -22.0625, - -44.5625, - 144, - 4.625, - 64.875, - -47.53125, - 45.3125, - 1.3125, - -107.875, - -20.84375, - -15.234375, - 139, - 100.5625, - -14.0625, - 106.375, - 60.46875, - 131.375, - -124.5, - -14.6875, - -84.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -59.375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -43.34375, - -67.875, - 26.46875, - 36.75, - -65.1875, - -87.6875, - 65.25, - -74.0625, - -13.828125, - 6.98046875, - 99.8125, - 55.8125, - -75.5625, - 11.5, - 17.109375, - 95.8125, - 57.4375, - -57.1875, - 27.71875, - -18.21875, - 52.65625, - -70, - 39.8125, - -29.984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -102.75, - -127.25, - -32.90625, - -22.625, - -124.5625, - -147, - 5.875, - -133.5, - -73.1875, - -52.40625, - 40.4375, - -3.5625, - -135, - -47.875, - -42.25, - 36.4375, - -1.9375, - -116.5625, - -31.65625, - -77.625, - -6.71875, - -129.375, - -19.5625, - -89.375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "add float16 large inputs", - "graph": { - "inputs": { - "inputA": { - "data": 89.3125, - "descriptor": { - "shape": [ - 6000, - 6000 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": 77.25, - "descriptor": { - "shape": [ - 6000, - 6000 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "add", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": 166.5, - "descriptor": { - "shape": [ - 6000, - 6000 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/average_pool2d.json b/tests/wpt_data/conformance/average_pool2d.json deleted file mode 100644 index 5311b94..0000000 --- a/tests/wpt_data/conformance/average_pool2d.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "average_pool2d", - "wpt_version": "2025-12-13", - "wpt_commit": "555200215767c4460e2e11f663a45f9f11641216", - "source_file": "webnn/conformance_tests/average_pool2d.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/batch_normalization.json b/tests/wpt_data/conformance/batch_normalization.json deleted file mode 100644 index c954caf..0000000 --- a/tests/wpt_data/conformance/batch_normalization.json +++ /dev/null @@ -1,3193 +0,0 @@ -{ - "operation": "batch_normalization", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/batch_normalization.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "batchNormalization float32 1D tensor options.axis=0", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - -7.814267635345459, - -95.64129638671875, - 38.15440368652344, - -55.95203399658203, - -87.86500549316406, - -41.63645553588867 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 60.31186294555664, - 26.43260383605957, - 53.275634765625, - 40.146121978759766, - 59.41098403930664, - 35.99981689453125 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "axis": 0 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -4.312741756439209, - 31.068212509155273, - -13.910240173339844, - 1.4459478855133057, - 22.170541763305664, - -6.407354354858398 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 2D tensor (mean and variance are non-constant) default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - -7.814267635345459, - -95.64129638671875, - 38.15440368652344, - -55.95203399658203, - -87.86500549316406, - -41.63645553588867 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - } - }, - "bnVariance": { - "data": [ - 60.31186294555664, - 26.43260383605957, - 53.275634765625, - 40.146121978759766, - 59.41098403930664, - 35.99981689453125 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -4.312741756439209, - 31.068212509155273, - -13.910240173339844, - 1.4459478855133057, - 22.170541763305664, - -6.407354354858398, - -6.995829105377197, - 18.583200454711914, - -10.831125259399414, - 17.820920944213867, - 16.2480411529541, - 16.447195053100586, - 11.57226848602295, - 1.8526301383972168, - 5.306026458740234, - 24.145092010498047, - 8.629376411437988, - -9.216986656188965, - -0.1989477425813675, - 34.203548431396484, - -16.923160552978516, - 18.671411514282227, - 2.5159497261047363, - 4.921559810638428 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 2D tensor default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - -7.814267635345459, - -95.64129638671875, - 38.15440368652344, - -55.95203399658203, - -87.86500549316406, - -41.63645553588867 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 60.31186294555664, - 26.43260383605957, - 53.275634765625, - 40.146121978759766, - 59.41098403930664, - 35.99981689453125 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -4.312741756439209, - 31.068212509155273, - -13.910240173339844, - 1.4459478855133057, - 22.170541763305664, - -6.407354354858398, - -6.995829105377197, - 18.583200454711914, - -10.831125259399414, - 17.820920944213867, - 16.2480411529541, - 16.447195053100586, - 11.57226848602295, - 1.8526301383972168, - 5.306026458740234, - 24.145092010498047, - 8.629376411437988, - -9.216986656188965, - -0.1989477425813675, - 34.203548431396484, - -16.923160552978516, - 18.671411514282227, - 2.5159497261047363, - 4.921559810638428 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 3D tensor default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 12.810380935668945, - 63.13715362548828, - -61.62983322143555 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 18.358240127563477, - 41.847232818603516, - 16.12828254699707 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -12.630594253540039, - 11.967890739440918, - -17.781383514404297, - -13.910285949707031, - 3.0739352703094482, - -22.139259338378906, - -19.36661148071289, - -9.775517463684082, - 5.161267280578613, - 29.53006935119629, - 24.651947021484375, - 29.550840377807617, - 16.161500930786133, - -23.088642120361328, - 14.954023361206055, - 19.656957626342773, - -13.06058406829834, - -24.745210647583008, - -11.206846237182617, - 2.638929843902588, - -5.910898208618164, - 30.871898651123047, - -1.7038332223892212, - 12.331327438354492 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 4D tensor default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 51.629150390625, - 99.36075592041016, - -96.1473617553711 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.448015213012695, - 86.36219024658203, - 73.88455200195312 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -16.842504501342773, - 2.2579827308654785, - -20.842041015625, - -17.836172103881836, - -1.7581257820129395, - -19.30902862548828, - -17.37898826599121, - -10.702629089355469, - 6.4271392822265625, - 17.812623977661133, - 15.533489227294922, - 17.822328567504883, - 5.514280319213867, - -24.963077545166016, - 4.576685905456543, - 8.228469848632812, - -12.989363670349121, - -21.123029708862305, - -11.698976516723633, - -2.0609331130981445, - 1.2540507316589355, - 18.43954849243164, - 3.2196571826934814, - 9.777103424072266 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 5D tensor default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 6, - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 35.4078254699707 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 40.93109893798828 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -11.990972518920898, - 4.4829583168029785, - -15.440524101257324, - -12.847999572753906, - 7.442382335662842, - -18.051416397094727, - -15.247910499572754, - -5.550075531005859, - -11.927642822265625, - 3.369194269180298, - 0.30708834528923035, - 3.382232427597046, - 7.291474342346191, - -18.99486541748047, - 6.4828104972839355, - 9.632428169250488, - -8.871702194213867, - -20.686368942260742, - -6.99733304977417, - 7.002535343170166, - -18.877885818481445, - 4.211489677429199, - -16.237018585205078, - -7.42683744430542 - ], - "descriptor": { - "shape": [ - 6, - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 4D NCHW tensor options.axis=1", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 51.629150390625, - 99.36075592041016, - -96.1473617553711 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.448015213012695, - 86.36219024658203, - 73.88455200195312 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "axis": 1 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -16.842504501342773, - 2.2579827308654785, - -20.842041015625, - -17.836172103881836, - -1.7581257820129395, - -19.30902862548828, - -17.37898826599121, - -10.702629089355469, - 6.4271392822265625, - 17.812623977661133, - 15.533489227294922, - 17.822328567504883, - 5.514280319213867, - -24.963077545166016, - 4.576685905456543, - 8.228469848632812, - -12.989363670349121, - -21.123029708862305, - -11.698976516723633, - -2.0609331130981445, - 1.2540507316589355, - 18.43954849243164, - 3.2196571826934814, - 9.777103424072266 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 4D NHWC tensor options.axis=3", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 83.02227020263672, - -40.90216064453125, - 64.08863830566406, - -80.08049011230469, - 56.96306228637695, - -63.376670837402344, - -62.144378662109375, - 37.37249755859375, - -46.790367126464844, - -0.10012771934270859, - 57.046478271484375, - 82.05680084228516, - -21.35103988647461, - -85.36802673339844, - -86.1164321899414, - -96.93824005126953, - 62.35185241699219, - 76.8831787109375, - -9.359310150146484, - -68.4724349975586, - 97.03362274169922, - 80.20824432373047, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 51.629150390625, - 99.36075592041016, - -96.1473617553711 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.448015213012695, - 86.36219024658203, - 73.88455200195312 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "axis": 3 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -16.842504501342773, - -1.7581257820129395, - 6.4271392822265625, - 2.2579827308654785, - -19.30902862548828, - 17.812623977661133, - -20.842041015625, - -17.37898826599121, - 15.533489227294922, - -17.836172103881836, - -10.702629089355469, - 17.822328567504883, - 5.514280319213867, - -12.989363670349121, - 1.2540507316589355, - -24.963077545166016, - -21.123029708862305, - 18.43954849243164, - 4.576685905456543, - -11.698976516723633, - 3.2196571826934814, - 8.228469848632812, - -2.0609331130981445, - 9.777103424072266 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 4D NCHW tensor options.scale", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 51.629150390625, - 99.36075592041016, - -96.1473617553711 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.448015213012695, - 86.36219024658203, - 73.88455200195312 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnScale": { - "data": [ - 65.50171661376953, - -71.007568359375, - -5.569730758666992 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "scale": "bnScale" - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -1103.212890625, - 147.90174865722656, - -1365.189453125, - -1168.2999267578125, - 124.84024047851562, - 1371.087158203125, - 1234.0396728515625, - 759.9676513671875, - -35.79743576049805, - -99.2115249633789, - -86.51734924316406, - -99.26557159423828, - 361.19482421875, - -1635.1243896484375, - 299.78076171875, - 538.9788818359375, - 922.3430786132812, - 1499.89501953125, - 830.7158813476562, - 146.3418426513672, - -6.984724998474121, - -102.70331573486328, - -17.9326229095459, - -54.455833435058594 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 4D NCHW tensor options.bias", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 51.629150390625, - 99.36075592041016, - -96.1473617553711 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.448015213012695, - 86.36219024658203, - 73.88455200195312 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnBias": { - "data": [ - 64.2044677734375, - 75.28591918945312, - -84.57243347167969 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "bias": "bnBias" - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - 47.36196517944336, - 66.46244812011719, - 43.3624267578125, - 46.36829376220703, - 73.52779388427734, - 55.976890563964844, - 57.90693283081055, - 64.58329010009766, - -78.14529418945312, - -66.75981140136719, - -69.03894805908203, - -66.75010681152344, - 69.71875, - 39.241390228271484, - 68.7811508178711, - 72.43293762207031, - 62.29655456542969, - 54.16288757324219, - 63.586944580078125, - 73.22498321533203, - -83.3183822631836, - -66.13288879394531, - -81.35277557373047, - -74.79533386230469 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 4D NCHW tensor options.epsilon", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 64.08863830566406, - -63.376670837402344, - -46.790367126464844, - 83.02227020263672, - -80.08049011230469, - -62.144378662109375, - -0.10012771934270859, - -40.90216064453125, - 56.96306228637695, - 37.37249755859375, - 57.046478271484375, - 82.05680084228516, - -86.1164321899414, - 76.8831787109375, - 97.03362274169922, - -21.35103988647461, - -96.93824005126953, - -9.359310150146484, - 80.20824432373047, - -85.36802673339844, - 62.35185241699219, - -68.4724349975586, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 51.629150390625, - 99.36075592041016, - -96.1473617553711 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.448015213012695, - 86.36219024658203, - 73.88455200195312 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "epsilon": 1e-06 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -16.842506408691406, - 2.2579832077026367, - -20.842044830322266, - -17.8361759185791, - -1.758125901222229, - -19.309030532836914, - -17.37898826599121, - -10.702629089355469, - 6.427139759063721, - 17.812625885009766, - 15.533490180969238, - 17.822330474853516, - 5.514281272888184, - -24.96308135986328, - 4.576686382293701, - 8.228470802307129, - -12.989363670349121, - -21.123031616210938, - -11.698976516723633, - -2.0609331130981445, - 1.254050850868225, - 18.43954849243164, - 3.2196574211120605, - 9.777103424072266 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float32 4D NHWC tensor all options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.30733108520508, - 83.02227020263672, - -40.90216064453125, - 64.08863830566406, - -80.08049011230469, - 56.96306228637695, - -63.376670837402344, - -62.144378662109375, - 37.37249755859375, - -46.790367126464844, - -0.10012771934270859, - 57.046478271484375, - 82.05680084228516, - -21.35103988647461, - -85.36802673339844, - -86.1164321899414, - -96.93824005126953, - 62.35185241699219, - 76.8831787109375, - -9.359310150146484, - -68.4724349975586, - 97.03362274169922, - 80.20824432373047, - -12.10716724395752 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "bnMean": { - "data": [ - 51.629150390625, - 99.36075592041016, - -96.1473617553711 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.448015213012695, - 86.36219024658203, - 73.88455200195312 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnScale": { - "data": [ - 65.50171661376953, - -71.007568359375, - -5.569730758666992 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "bnBias": { - "data": [ - 64.2044677734375, - 75.28591918945312, - -84.57243347167969 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "scale": "bnScale", - "bias": "bnBias", - "axis": 3, - "epsilon": 1e-06 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -1039.0085734071204, - 200.12613597546277, - -120.36987167541395, - 212.10626540432202, - 1446.3732126569944, - -183.78396479879416, - -1300.9852072279227, - 1309.3257094058545, - -171.08979404258523, - -1104.0956031373803, - 835.2536189871761, - -183.83801576309426, - 425.3993215144054, - 997.6290832897452, - -91.55716013805052, - -1570.920072497096, - 1575.1810627320297, - -187.2757593197739, - 363.98524710447384, - 906.0018322105, - -102.5050592863526, - 603.1834043179756, - 221.6277675074517, - -139.02827100419768 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "batchNormalization float16 1D tensor options.axis=0", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - -7.8125, - -95.625, - 38.15625, - -55.9375, - -87.875, - -41.625 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 60.3125, - 26.4375, - 53.28125, - 40.15625, - 59.40625, - 36 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "axis": 0 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -4.3125, - 31.0625, - -13.90625, - 1.4453125, - 22.171875, - -6.40625 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 2D tensor (mean and variance are non-constant) default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - -7.8125, - -95.625, - 38.15625, - -55.9375, - -87.875, - -41.625 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - } - }, - "bnVariance": { - "data": [ - 60.3125, - 26.4375, - 53.28125, - 40.15625, - 59.40625, - 36 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -4.3125, - 31.0625, - -13.90625, - 1.4453125, - 22.171875, - -6.40625, - -6.99609375, - 18.578125, - -10.828125, - 17.8125, - 16.25, - 16.4375, - 11.5703125, - 1.84765625, - 5.3046875, - 24.140625, - 8.6328125, - -9.21875, - -0.19921875, - 34.1875, - -16.921875, - 18.671875, - 2.513671875, - 4.91796875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 2D tensor default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - -7.8125, - -95.625, - 38.15625, - -55.9375, - -87.875, - -41.625 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 60.3125, - 26.4375, - 53.28125, - 40.15625, - 59.40625, - 36 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -4.3125, - 31.0625, - -13.90625, - 1.4453125, - 22.171875, - -6.40625, - -6.99609375, - 18.578125, - -10.828125, - 17.8125, - 16.25, - 16.4375, - 11.5703125, - 1.84765625, - 5.3046875, - 24.140625, - 8.6328125, - -9.21875, - -0.19921875, - 34.1875, - -16.921875, - 18.671875, - 2.513671875, - 4.91796875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 3D tensor default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 12.8125, - 63.125, - -61.625 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 18.359375, - 41.84375, - 16.125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -12.6328125, - 11.9609375, - -17.78125, - -13.90625, - 3.072265625, - -22.140625, - -19.375, - -9.7734375, - 5.16015625, - 29.53125, - 24.65625, - 29.546875, - 16.15625, - -23.09375, - 14.953125, - 19.65625, - -13.0546875, - -24.75, - -11.203125, - 2.638671875, - -5.9140625, - 30.875, - -1.7119140625, - 12.328125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 4D tensor default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 51.625, - 99.375, - -96.125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.453125, - 86.375, - 73.875 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -16.84375, - 2.25390625, - -20.84375, - -17.828125, - -1.76171875, - -19.3125, - -17.375, - -10.703125, - 6.42578125, - 17.8125, - 15.53125, - 17.8125, - 5.515625, - -24.96875, - 4.57421875, - 8.234375, - -12.9921875, - -21.125, - -11.703125, - -2.064453125, - 1.2509765625, - 18.4375, - 3.21484375, - 9.7734375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 5D tensor default options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 6, - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 35.40625 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 40.9375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -11.9921875, - 4.48046875, - -15.4375, - -12.84375, - 7.4375, - -18.046875, - -15.25, - -5.55078125, - -11.9296875, - 3.369140625, - 0.3076171875, - 3.37890625, - 7.29296875, - -19, - 6.48046875, - 9.6328125, - -8.8671875, - -20.6875, - -6.99609375, - 7, - -18.875, - 4.2109375, - -16.234375, - -7.42578125 - ], - "descriptor": { - "shape": [ - 6, - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 4D NCHW tensor options.axis=1", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 51.625, - 99.375, - -96.125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.453125, - 86.375, - 73.875 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "axis": 1 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -16.84375, - 2.25390625, - -20.84375, - -17.828125, - -1.76171875, - -19.3125, - -17.375, - -10.703125, - 6.42578125, - 17.8125, - 15.53125, - 17.8125, - 5.515625, - -24.96875, - 4.57421875, - 8.234375, - -12.9921875, - -21.125, - -11.703125, - -2.064453125, - 1.2509765625, - 18.4375, - 3.21484375, - 9.7734375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 4D NHWC tensor options.axis=3", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 83, - -40.90625, - 64.0625, - -80.0625, - 56.96875, - -63.375, - -62.15625, - 37.375, - -46.78125, - -0.10009765625, - 57.03125, - 82.0625, - -21.34375, - -85.375, - -86.125, - -96.9375, - 62.34375, - 76.875, - -9.359375, - -68.5, - 97.0625, - 80.1875, - -12.109375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 51.625, - 99.375, - -96.125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.453125, - 86.375, - 73.875 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "axis": 3 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -16.84375, - -1.76171875, - 6.42578125, - 2.25390625, - -19.3125, - 17.8125, - -20.84375, - -17.375, - 15.53125, - -17.828125, - -10.703125, - 17.8125, - 5.515625, - -12.9921875, - 1.2509765625, - -24.96875, - -21.125, - 18.4375, - 4.57421875, - -11.703125, - 3.21484375, - 8.234375, - -2.064453125, - 9.7734375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 4D NCHW tensor options.scale", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 51.625, - 99.375, - -96.125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.453125, - 86.375, - 73.875 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnScale": { - "data": [ - 65.5, - -71, - -5.5703125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "scale": "bnScale" - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -1103, - 147.625, - -1365, - -1168, - 125.125, - 1371, - 1234, - 760, - -35.78125, - -99.1875, - -86.5, - -99.25, - 361.25, - -1635, - 299.75, - 539.5, - 922, - 1500, - 830.5, - 146.625, - -6.96875, - -102.6875, - -17.90625, - -54.4375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 4D NCHW tensor options.bias", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 51.625, - 99.375, - -96.125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.453125, - 86.375, - 73.875 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnBias": { - "data": [ - 64.1875, - 75.3125, - -84.5625 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "bias": "bnBias" - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - 47.34375, - 66.4375, - 43.34375, - 46.34375, - 73.5625, - 56, - 57.9375, - 64.625, - -78.125, - -66.75, - -69, - -66.75, - 69.6875, - 39.21875, - 68.75, - 72.4375, - 62.3125, - 54.1875, - 63.625, - 73.25, - -83.3125, - -66.125, - -81.375, - -74.8125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 4D NCHW tensor options.epsilon", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 64.0625, - -63.375, - -46.78125, - 83, - -80.0625, - -62.15625, - -0.10009765625, - -40.90625, - 56.96875, - 37.375, - 57.03125, - 82.0625, - -86.125, - 76.875, - 97.0625, - -21.34375, - -96.9375, - -9.359375, - 80.1875, - -85.375, - 62.34375, - -68.5, - -12.109375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 51.625, - 99.375, - -96.125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.453125, - 86.375, - 73.875 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "epsilon": 1e-06 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -16.84375, - 2.25390625, - -20.84375, - -17.828125, - -1.76171875, - -19.3125, - -17.375, - -10.703125, - 6.42578125, - 17.8125, - 15.53125, - 17.8125, - 5.515625, - -24.96875, - 4.57421875, - 8.234375, - -12.9921875, - -21.125, - -11.703125, - -2.064453125, - 1.2509765625, - 18.4375, - 3.21484375, - 9.7734375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "batchNormalization float16 4D NHWC tensor all options", - "graph": { - "inputs": { - "bnInput": { - "data": [ - -41.3125, - 83, - -40.90625, - 64.0625, - -80.0625, - 56.96875, - -63.375, - -62.15625, - 37.375, - -46.78125, - -0.10009765625, - 57.03125, - 82.0625, - -21.34375, - -85.375, - -86.125, - -96.9375, - 62.34375, - 76.875, - -9.359375, - -68.5, - 97.0625, - 80.1875, - -12.109375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "bnMean": { - "data": [ - 51.625, - 99.375, - -96.125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnVariance": { - "data": [ - 30.453125, - 86.375, - 73.875 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnScale": { - "data": [ - 65.5, - -71, - -5.5703125 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "bnBias": { - "data": [ - 64.1875, - 75.3125, - -84.5625 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "batchNormalization", - "arguments": [ - { - "input": "bnInput" - }, - { - "mean": "bnMean" - }, - { - "variance": "bnVariance" - }, - { - "options": { - "scale": "bnScale", - "bias": "bnBias", - "axis": 3, - "epsilon": 1e-06 - } - } - ], - "outputs": "bnOutput" - } - ], - "expectedOutputs": { - "bnOutput": { - "data": [ - -1039, - 200.375, - -120.375, - 211.75, - 1446, - -183.75, - -1301, - 1309, - -171.125, - -1104, - 835.5, - -183.875, - 425.5, - 997.5, - -91.5, - -1571, - 1575, - -187.25, - 364, - 906, - -102.4375, - 603.5, - 221.875, - -139 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/cast.json b/tests/wpt_data/conformance/cast.json deleted file mode 100644 index 9ac7f5f..0000000 --- a/tests/wpt_data/conformance/cast.json +++ /dev/null @@ -1,4637 +0,0 @@ -{ - "operation": "cast", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/cast.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "cast float32 0D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 84.77753448486328 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 84 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast float32 1D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - -43.5, - 52.84621810913086, - -99.9583511352539, - 6.729493141174316, - 92.66157531738281, - -10.377813339233398, - 106.65289306640625, - -7.126272678375244, - 91.51563262939453, - -50.87134552001953, - 83.38890075683594, - 72.9759750366211, - -31.015382766723633, - 79.94034576416016, - 41.5, - 35.727149963378906, - -2.5, - -96.05252838134766, - -86.76212310791016, - -27.49382972717285, - -23.836687088012695, - 70.77123260498047, - 83.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102, - -43, - 52, - -99, - 6, - 92, - -10, - 106, - -7, - 91, - -50, - 83, - 72, - -31, - 79, - 41, - 35, - -2, - -96, - -86, - -27, - -23, - 70, - 83 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast float32 2D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - -43.5, - 52.84621810913086, - -99.9583511352539, - 6.729493141174316, - 92.66157531738281, - -10.377813339233398, - 106.65289306640625, - -7.126272678375244, - 91.51563262939453, - -50.87134552001953, - 83.38890075683594, - 72.9759750366211, - -31.015382766723633, - 79.94034576416016, - 41.5, - 35.727149963378906, - -2.5, - -96.05252838134766, - -86.76212310791016, - -27.49382972717285, - -23.836687088012695, - 70.77123260498047, - 83.5 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102, - -43, - 52, - -99, - 6, - 92, - -10, - 106, - -7, - 91, - -50, - 83, - 72, - -31, - 79, - 41, - 35, - -2, - -96, - -86, - -27, - -23, - 70, - 83 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast float32 3D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - -43.5, - 52.84621810913086, - -99.9583511352539, - 6.729493141174316, - 92.66157531738281, - -10.377813339233398, - 106.65289306640625, - -7.126272678375244, - 91.51563262939453, - -50.87134552001953, - 83.38890075683594, - 72.9759750366211, - -31.015382766723633, - 79.94034576416016, - 41.5, - 35.727149963378906, - -2.5, - -96.05252838134766, - -86.76212310791016, - -27.49382972717285, - -23.836687088012695, - 70.77123260498047, - 83.5 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102, - -43, - 52, - -99, - 6, - 92, - -10, - 106, - -7, - 91, - -50, - 83, - 72, - -31, - 79, - 41, - 35, - -2, - -96, - -86, - -27, - -23, - 70, - 83 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast float32 4D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - -43.5, - 52.84621810913086, - -99.9583511352539, - 6.729493141174316, - 92.66157531738281, - -10.377813339233398, - 106.65289306640625, - -7.126272678375244, - 91.51563262939453, - -50.87134552001953, - 83.38890075683594, - 72.9759750366211, - -31.015382766723633, - 79.94034576416016, - 41.5, - 35.727149963378906, - -2.5, - -96.05252838134766, - -86.76212310791016, - -27.49382972717285, - -23.836687088012695, - 70.77123260498047, - 83.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102, - -43, - 52, - -99, - 6, - 92, - -10, - 106, - -7, - 91, - -50, - 83, - 72, - -31, - 79, - 41, - 35, - -2, - -96, - -86, - -27, - -23, - 70, - 83 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast float32 5D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - -43.5, - 52.84621810913086, - -99.9583511352539, - 6.729493141174316, - 92.66157531738281, - -10.377813339233398, - 106.65289306640625, - -7.126272678375244, - 91.51563262939453, - -50.87134552001953, - 83.38890075683594, - 72.9759750366211, - -31.015382766723633, - 79.94034576416016, - 41.5, - 35.727149963378906, - -2.5, - -96.05252838134766, - -86.76212310791016, - -27.49382972717285, - -23.836687088012695, - 70.77123260498047, - 83.5 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102, - -43, - 52, - -99, - 6, - 92, - -10, - 106, - -7, - 91, - -50, - 83, - 72, - -31, - 79, - 41, - 35, - -2, - -96, - -86, - -27, - -23, - 70, - 83 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast float32 4D tensor to float16", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - 43.60371780395508, - 52.84621810913086, - 99.9583511352539, - 6.729493141174316, - 92.66157531738281, - 10.377813339233398, - 106.65289306640625, - 7.126272678375244, - 91.51563262939453, - 50.87134552001953, - 83.38890075683594, - 72.9759750366211, - 31.015382766723633, - 79.94034576416016, - 41.844703674316406, - 35.727149963378906, - 2.614182949066162, - 96.05252838134766, - 86.76212310791016, - 27.49382972717285, - 23.836687088012695, - 70.77123260498047, - 83.8347396850586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float16" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102.1875, - 43.59375, - 52.84375, - 99.9375, - 6.73046875, - 92.6875, - 10.375, - 106.625, - 7.125, - 91.5, - 50.875, - 83.375, - 73, - 31.015625, - 79.9375, - 41.84375, - 35.71875, - 2.61328125, - 96.0625, - 86.75, - 27.5, - 23.84375, - 70.75, - 83.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "cast float32 4D tensor to uint32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - 43.60371780395508, - 52.84621810913086, - 99.9583511352539, - 6.729493141174316, - 92.66157531738281, - 10.377813339233398, - 106.65289306640625, - 7.126272678375244, - 91.51563262939453, - 50.87134552001953, - 83.38890075683594, - 72.9759750366211, - 31.015382766723633, - 79.94034576416016, - 41.844703674316406, - 35.727149963378906, - 2.614182949066162, - 96.05252838134766, - 86.76212310791016, - 27.49382972717285, - 23.836687088012695, - 70.77123260498047, - 83.8347396850586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102, - 43, - 52, - 99, - 6, - 92, - 10, - 106, - 7, - 91, - 50, - 83, - 72, - 31, - 79, - 41, - 35, - 2, - 96, - 86, - 27, - 23, - 70, - 83 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - } - } - }, - { - "name": "cast float32 4D tensor to int64", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - 43.60371780395508, - 52.84621810913086, - 99.9583511352539, - 6.729493141174316, - 92.66157531738281, - 10.377813339233398, - 106.65289306640625, - 7.126272678375244, - 91.51563262939453, - 50.87134552001953, - 83.38890075683594, - 72.9759750366211, - 31.015382766723633, - 79.94034576416016, - 41.844703674316406, - 35.727149963378906, - 2.614182949066162, - 96.05252838134766, - 86.76212310791016, - 27.49382972717285, - 23.836687088012695, - 70.77123260498047, - 83.8347396850586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int64" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - "102", - "43", - "52", - "99", - "6", - "92", - "10", - "106", - "7", - "91", - "50", - "83", - "72", - "31", - "79", - "41", - "35", - "2", - "96", - "86", - "27", - "23", - "70", - "83" - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - } - } - }, - { - "name": "cast float32 4D tensor to int8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - 43.60371780395508, - 52.84621810913086, - 99.9583511352539, - 6.729493141174316, - 92.66157531738281, - 10.377813339233398, - 106.65289306640625, - 7.126272678375244, - 91.51563262939453, - 50.87134552001953, - 83.38890075683594, - 72.9759750366211, - 31.015382766723633, - 79.94034576416016, - 41.844703674316406, - 35.727149963378906, - 2.614182949066162, - 96.05252838134766, - 86.76212310791016, - 27.49382972717285, - 23.836687088012695, - 70.77123260498047, - 83.8347396850586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102, - 43, - 52, - 99, - 6, - 92, - 10, - 106, - 7, - 91, - 50, - 83, - 72, - 31, - 79, - 41, - 35, - 2, - 96, - 86, - 27, - 23, - 70, - 83 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "cast float32 4D tensor to uint8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 102.1578369140625, - 43.60371780395508, - 52.84621810913086, - 99.9583511352539, - 6.729493141174316, - 92.66157531738281, - 10.377813339233398, - 106.65289306640625, - 7.126272678375244, - 91.51563262939453, - 50.87134552001953, - 83.38890075683594, - 72.9759750366211, - 31.015382766723633, - 79.94034576416016, - 41.844703674316406, - 35.727149963378906, - 2.614182949066162, - 96.05252838134766, - 86.76212310791016, - 27.49382972717285, - 23.836687088012695, - 70.77123260498047, - 83.8347396850586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 102, - 43, - 52, - 99, - 6, - 92, - 10, - 106, - 7, - 91, - 50, - 83, - 72, - 31, - 79, - 41, - 35, - 2, - 96, - 86, - 27, - 23, - 70, - 83 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "cast float16 4D tensor to float32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 3.103515625, - 32.40625, - 62.15625, - 51.75, - 87.0625, - 106.25, - 125.375, - 112.9375, - 70.8125, - 39.1875, - 10.3515625, - 21.234375, - 99.75, - 16.125, - 115.625, - 66, - 49.375, - 115.75, - 77, - 57.15625, - 61.6875, - 12.9296875, - 101.25, - 123.9375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 3.103515625, - 32.40625, - 62.15625, - 51.75, - 87.0625, - 106.25, - 125.375, - 112.9375, - 70.8125, - 39.1875, - 10.3515625, - 21.234375, - 99.75, - 16.125, - 115.625, - 66, - 49.375, - 115.75, - 77, - 57.15625, - 61.6875, - 12.9296875, - 101.25, - 123.9375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "cast float16 4D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 3.103515625, - 32.40625, - 62.15625, - 51.75, - 87.0625, - 106.25, - 125.375, - 112.9375, - 70.8125, - 39.1875, - 10.3515625, - 21.234375, - 99.75, - 16.125, - 115.625, - 66, - 49.375, - 115.75, - 77, - 57.15625, - 61.6875, - 12.9296875, - 101.25, - 123.9375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 3, - 32, - 62, - 51, - 87, - 106, - 125, - 112, - 70, - 39, - 10, - 21, - 99, - 16, - 115, - 66, - 49, - 115, - 77, - 57, - 61, - 12, - 101, - 123 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast float16 4D tensor to uint32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 3.103515625, - 32.40625, - 62.15625, - 51.75, - 87.0625, - 106.25, - 125.375, - 112.9375, - 70.8125, - 39.1875, - 10.3515625, - 21.234375, - 99.75, - 16.125, - 115.625, - 66, - 49.375, - 115.75, - 77, - 57.15625, - 61.6875, - 12.9296875, - 101.25, - 123.9375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 3, - 32, - 62, - 51, - 87, - 106, - 125, - 112, - 70, - 39, - 10, - 21, - 99, - 16, - 115, - 66, - 49, - 115, - 77, - 57, - 61, - 12, - 101, - 123 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - } - } - }, - { - "name": "cast float16 4D tensor to int64", - "graph": { - "inputs": { - "castInput": { - "data": [ - 3.103515625, - 32.40625, - 62.15625, - 51.75, - 87.0625, - 106.25, - 125.375, - 112.9375, - 70.8125, - 39.1875, - 10.3515625, - 21.234375, - 99.75, - 16.125, - 115.625, - 66, - 49.375, - 115.75, - 77, - 57.15625, - 61.6875, - 12.9296875, - 101.25, - 123.9375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int64" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - "3", - "32", - "62", - "51", - "87", - "106", - "125", - "112", - "70", - "39", - "10", - "21", - "99", - "16", - "115", - "66", - "49", - "115", - "77", - "57", - "61", - "12", - "101", - "123" - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - } - } - }, - { - "name": "cast float16 4D tensor to int8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 3.103515625, - 32.40625, - 62.15625, - 51.75, - 87.0625, - 106.25, - 125.375, - 112.9375, - 70.8125, - 39.1875, - 10.3515625, - 21.234375, - 99.75, - 16.125, - 115.625, - 66, - 49.375, - 115.75, - 77, - 57.15625, - 61.6875, - 12.9296875, - 101.25, - 123.9375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 3, - 32, - 62, - 51, - 87, - 106, - 125, - 112, - 70, - 39, - 10, - 21, - 99, - 16, - 115, - 66, - 49, - 115, - 77, - 57, - 61, - 12, - 101, - 123 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "cast float16 4D tensor to uint8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 3.103515625, - 32.40625, - 62.15625, - 51.75, - 87.0625, - 106.25, - 125.375, - 112.9375, - 70.8125, - 39.1875, - 10.3515625, - 21.234375, - 99.75, - 16.125, - 115.625, - 66, - 49.375, - 115.75, - 77, - 57.15625, - 61.6875, - 12.9296875, - 101.25, - 123.9375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 3, - 32, - 62, - 51, - 87, - 106, - 125, - 112, - 70, - 39, - 10, - 21, - 99, - 16, - 115, - 66, - 49, - 115, - 77, - 57, - 61, - 12, - 101, - 123 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "cast int32 4D tensor to float32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "cast int32 4D constant tensor to float32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "cast int32 4D tensor to float16", - "graph": { - "inputs": { - "castInput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float16" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "cast int32 4D tensor to int64", - "graph": { - "inputs": { - "castInput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int64" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - "45", - "55", - "11", - "21", - "78", - "104", - "102", - "66", - "41", - "110", - "92", - "69", - "48", - "23", - "58", - "12", - "33", - "24", - "101", - "87", - "49", - "118", - "1", - "77" - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - } - } - }, - { - "name": "cast int32 4D tensor to int8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "cast int32 4D tensor to uint8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 45, - 55, - 11, - 21, - 78, - 104, - 102, - 66, - 41, - 110, - 92, - 69, - 48, - 23, - 58, - 12, - 33, - 24, - 101, - 87, - 49, - 118, - 1, - 77 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "cast uint32 4D tensor to float32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "cast uint32 4D tensor to float16", - "graph": { - "inputs": { - "castInput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float16" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "cast uint32 4D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast uint32 4D tensor to int64", - "graph": { - "inputs": { - "castInput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int64" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - "34", - "83", - "113", - "31", - "62", - "80", - "8", - "40", - "104", - "42", - "6", - "91", - "93", - "21", - "40", - "21", - "51", - "110", - "115", - "12", - "122", - "68", - "57", - "72" - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - } - } - }, - { - "name": "cast uint32 4D tensor to int8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "cast uint32 4D tensor to uint8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 34, - 83, - 113, - 31, - 62, - 80, - 8, - 40, - 104, - 42, - 6, - 91, - 93, - 21, - 40, - 21, - 51, - 110, - 115, - 12, - 122, - 68, - 57, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "cast int64 4D tensor to float32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "cast int64 4D tensor to float16", - "graph": { - "inputs": { - "castInput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float16" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "cast int64 4D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast int64 4D tensor to uint32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - } - } - }, - { - "name": "cast int64 4D tensor to int8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "cast int64 4D tensor to uint8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 50, - 1, - 28, - 20, - 102, - 86, - 70, - 38, - 50, - 19, - 11, - 4, - 56, - 77, - 40, - 80, - 45, - 127, - 4, - 87, - 125, - 26, - 63, - 11 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "cast int8 0D constant tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 17 - ], - "descriptor": { - "shape": [], - "dataType": "int8" - }, - "constant": true - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 17 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast int8 1D constant tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "int8" - }, - "constant": true - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast int8 4D tensor to float32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "cast int8 4D tensor to float16", - "graph": { - "inputs": { - "castInput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float16" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "cast int8 4D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast int8 4D tensor to uint32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - } - } - }, - { - "name": "cast int8 4D tensor to int64", - "graph": { - "inputs": { - "castInput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int64" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - "123", - "17", - "31", - "77", - "88", - "44", - "84", - "40", - "14", - "64", - "109", - "4", - "2", - "0", - "45", - "47", - "72", - "88", - "82", - "4", - "73", - "36", - "65", - "117" - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - } - } - }, - { - "name": "cast int8 4D tensor to uint8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 123, - 17, - 31, - 77, - 88, - 44, - 84, - 40, - 14, - 64, - 109, - 4, - 2, - 0, - 45, - 47, - 72, - 88, - 82, - 4, - 73, - 36, - 65, - 117 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "cast uint8 4D tensor to float32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "cast uint8 4D tensor to float16", - "graph": { - "inputs": { - "castInput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "float16" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "cast uint8 4D tensor to int32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "cast uint8 4D tensor to uint32", - "graph": { - "inputs": { - "castInput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "uint32" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - } - } - }, - { - "name": "cast uint8 4D tensor to int64", - "graph": { - "inputs": { - "castInput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int64" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - "10", - "112", - "121", - "120", - "22", - "105", - "41", - "30", - "75", - "121", - "55", - "47", - "121", - "24", - "16", - "33", - "97", - "24", - "3", - "37", - "45", - "6", - "56", - "57" - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - } - } - }, - { - "name": "cast uint8 4D tensor to int8", - "graph": { - "inputs": { - "castInput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "cast", - "arguments": [ - { - "input": "castInput" - }, - { - "type": "int8" - } - ], - "outputs": "castOutput" - } - ], - "expectedOutputs": { - "castOutput": { - "data": [ - 10, - 112, - 121, - 120, - 22, - 105, - 41, - 30, - 75, - 121, - 55, - 47, - 121, - 24, - 16, - 33, - 97, - 24, - 3, - 37, - 45, - 6, - 56, - 57 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/ceil.json b/tests/wpt_data/conformance/ceil.json deleted file mode 100644 index da43e4e..0000000 --- a/tests/wpt_data/conformance/ceil.json +++ /dev/null @@ -1,1183 +0,0 @@ -{ - "operation": "ceil", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/ceil.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "ceil float32 0D scalar", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.38941955566406 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "ceil float32 1D constant tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.38941955566406, - 36.78218460083008, - 99.10649108886719, - -22.58710479736328, - 32.70173645019531, - 17.68880844116211, - 5.631034851074219, - 12.965238571166992, - 83.1319351196289, - -29.292461395263672, - 19.84463119506836, - 65.2790298461914, - 26.31110954284668, - 24.285673141479492, - -48.39767074584961, - -5.617412567138672, - 61.53380584716797, - -87.81197357177734, - 69.71428680419922, - 5.0031023025512695, - 84.36833953857422, - -9.390542030334473, - -27.856616973876953, - -34.895931243896484 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "ceil float32 1D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.38941955566406, - 36.78218460083008, - 99.10649108886719, - -22.58710479736328, - 32.70173645019531, - 17.68880844116211, - 5.631034851074219, - 12.965238571166992, - 83.1319351196289, - -29.292461395263672, - 19.84463119506836, - 65.2790298461914, - 26.31110954284668, - 24.285673141479492, - -48.39767074584961, - -5.617412567138672, - 61.53380584716797, - -87.81197357177734, - 69.71428680419922, - 5.0031023025512695, - 84.36833953857422, - -9.390542030334473, - -27.856616973876953, - -34.895931243896484 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "ceil float32 2D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.38941955566406, - 36.78218460083008, - 99.10649108886719, - -22.58710479736328, - 32.70173645019531, - 17.68880844116211, - 5.631034851074219, - 12.965238571166992, - 83.1319351196289, - -29.292461395263672, - 19.84463119506836, - 65.2790298461914, - 26.31110954284668, - 24.285673141479492, - -48.39767074584961, - -5.617412567138672, - 61.53380584716797, - -87.81197357177734, - 69.71428680419922, - 5.0031023025512695, - 84.36833953857422, - -9.390542030334473, - -27.856616973876953, - -34.895931243896484 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "ceil float32 3D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.38941955566406, - 36.78218460083008, - 99.10649108886719, - -22.58710479736328, - 32.70173645019531, - 17.68880844116211, - 5.631034851074219, - 12.965238571166992, - 83.1319351196289, - -29.292461395263672, - 19.84463119506836, - 65.2790298461914, - 26.31110954284668, - 24.285673141479492, - -48.39767074584961, - -5.617412567138672, - 61.53380584716797, - -87.81197357177734, - 69.71428680419922, - 5.0031023025512695, - 84.36833953857422, - -9.390542030334473, - -27.856616973876953, - -34.895931243896484 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "ceil float32 4D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.38941955566406, - 36.78218460083008, - 99.10649108886719, - -22.58710479736328, - 32.70173645019531, - 17.68880844116211, - 5.631034851074219, - 12.965238571166992, - 83.1319351196289, - -29.292461395263672, - 19.84463119506836, - 65.2790298461914, - 26.31110954284668, - 24.285673141479492, - -48.39767074584961, - -5.617412567138672, - 61.53380584716797, - -87.81197357177734, - 69.71428680419922, - 5.0031023025512695, - 84.36833953857422, - -9.390542030334473, - -27.856616973876953, - -34.895931243896484 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "ceil float32 5D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.38941955566406, - 36.78218460083008, - 99.10649108886719, - -22.58710479736328, - 32.70173645019531, - 17.68880844116211, - 5.631034851074219, - 12.965238571166992, - 83.1319351196289, - -29.292461395263672, - 19.84463119506836, - 65.2790298461914, - 26.31110954284668, - 24.285673141479492, - -48.39767074584961, - -5.617412567138672, - 61.53380584716797, - -87.81197357177734, - 69.71428680419922, - 5.0031023025512695, - 84.36833953857422, - -9.390542030334473, - -27.856616973876953, - -34.895931243896484 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "ceil float16 0D scalar", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "ceil float16 1D constant tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.375, - 36.78125, - 99.125, - -22.59375, - 32.6875, - 17.6875, - 5.6328125, - 12.96875, - 83.125, - -29.296875, - 19.84375, - 65.25, - 26.3125, - 24.28125, - -48.40625, - -5.6171875, - 61.53125, - -87.8125, - 69.6875, - 5.00390625, - 84.375, - -9.390625, - -27.859375, - -34.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "ceil float16 1D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.375, - 36.78125, - 99.125, - -22.59375, - 32.6875, - 17.6875, - 5.6328125, - 12.96875, - 83.125, - -29.296875, - 19.84375, - 65.25, - 26.3125, - 24.28125, - -48.40625, - -5.6171875, - 61.53125, - -87.8125, - 69.6875, - 5.00390625, - 84.375, - -9.390625, - -27.859375, - -34.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "ceil float16 2D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.375, - 36.78125, - 99.125, - -22.59375, - 32.6875, - 17.6875, - 5.6328125, - 12.96875, - 83.125, - -29.296875, - 19.84375, - 65.25, - 26.3125, - 24.28125, - -48.40625, - -5.6171875, - 61.53125, - -87.8125, - 69.6875, - 5.00390625, - 84.375, - -9.390625, - -27.859375, - -34.90625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "ceil float16 3D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.375, - 36.78125, - 99.125, - -22.59375, - 32.6875, - 17.6875, - 5.6328125, - 12.96875, - 83.125, - -29.296875, - 19.84375, - 65.25, - 26.3125, - 24.28125, - -48.40625, - -5.6171875, - 61.53125, - -87.8125, - 69.6875, - 5.00390625, - 84.375, - -9.390625, - -27.859375, - -34.90625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "ceil float16 4D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.375, - 36.78125, - 99.125, - -22.59375, - 32.6875, - 17.6875, - 5.6328125, - 12.96875, - 83.125, - -29.296875, - 19.84375, - 65.25, - 26.3125, - 24.28125, - -48.40625, - -5.6171875, - 61.53125, - -87.8125, - 69.6875, - 5.00390625, - 84.375, - -9.390625, - -27.859375, - -34.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "ceil float16 5D tensor", - "graph": { - "inputs": { - "ceilInput": { - "data": [ - 67.375, - 36.78125, - 99.125, - -22.59375, - 32.6875, - 17.6875, - 5.6328125, - 12.96875, - 83.125, - -29.296875, - 19.84375, - 65.25, - 26.3125, - 24.28125, - -48.40625, - -5.6171875, - 61.53125, - -87.8125, - 69.6875, - 5.00390625, - 84.375, - -9.390625, - -27.859375, - -34.90625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "ceil", - "arguments": [ - { - "input": "ceilInput" - } - ], - "outputs": "ceilOutput" - } - ], - "expectedOutputs": { - "ceilOutput": { - "data": [ - 68, - 37, - 100, - -22, - 33, - 18, - 6, - 13, - 84, - -29, - 20, - 66, - 27, - 25, - -48, - -5, - 62, - -87, - 70, - 6, - 85, - -9, - -27, - -34 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/clamp.json b/tests/wpt_data/conformance/clamp.json deleted file mode 100644 index 9d0f9f8..0000000 --- a/tests/wpt_data/conformance/clamp.json +++ /dev/null @@ -1,4205 +0,0 @@ -{ - "operation": "clamp", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/clamp.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "clamp float32 0D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 1D constant tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 1D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp int8 1D tensor", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -128, - 127, - -4, - -2, - 1, - 0, - 2, - 4 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -2, - "maxValue": 125 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -2, - 125, - -2, - -2, - 1, - 0, - 2, - 4 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "clamp uint8 1D tensor", - "graph": { - "inputs": { - "clampInput": { - "data": [ - 255, - 127, - 5, - 0 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 5, - "maxValue": 200 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 200, - 127, - 5, - 5 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "clamp int32 1D tensor", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -2147483648, - 2147483647, - -4, - -2, - 1, - 0, - 2, - 4 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -2, - "maxValue": 2147483645 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -2, - 2147483645, - -2, - -2, - 1, - 0, - 2, - 4 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "clamp uint32 1D tensor", - "graph": { - "inputs": { - "clampInput": { - "data": [ - 4294967295, - 127, - 5, - 0 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 5, - "maxValue": 4294967290 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 4294967290, - 127, - 5, - 5 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "uint32" - } - } - } - } - }, - { - "name": "clamp int64 1D tensor with bigint max", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -41, - "9007199254740995n", - -4, - -2, - 1, - 0, - 2, - 4 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -2, - "maxValue": "9007199254740992n" - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -2, - "9007199254740992n", - -2, - -2, - 1, - 0, - 2, - 4 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int64" - } - } - } - } - }, - { - "name": "clamp uint64 1D tensor with Number min and max", - "graph": { - "inputs": { - "clampInput": { - "data": [ - 5294967295, - 127, - 5, - 0 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "uint64" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 5, - "maxValue": 5294967290 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 5294967290, - 127, - 5, - 5 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "uint64" - } - } - } - } - }, - { - "name": "clamp uint64 1D tensor with bigint max", - "graph": { - "inputs": { - "clampInput": { - "data": [ - "9007199254740995n", - 127, - 5, - 0 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "uint64" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 5, - "maxValue": "9007199254740992n" - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - "9007199254740992n", - 127, - 5, - 5 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "uint64" - } - } - } - } - }, - { - "name": "clamp float32 2D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 3D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 4D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 5D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 4D tensor default options.maxValue and specified negative options.minValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -1 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -1, - -1, - -1, - -1, - -1, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1, - -1, - 7.880751132965088, - -1, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -1, - -1, - 9.280223846435547, - -1, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -1 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 3D tensor default options.maxValue and specified options.minValue=0.0", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 6, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 0 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - 0, - 0, - 7.880751132965088, - 0, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - 0, - 0, - 9.280223846435547, - 0, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - 0 - ], - "descriptor": { - "shape": [ - 6, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 2D tensor default options.maxValue and specified positive options.minValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 3, - 8 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 1 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - 1, - 1, - 7.880751132965088, - 1, - 6.3438639640808105, - 5.525737762451172, - 1, - 1, - 1, - 9.280223846435547, - 1, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - 1 - ], - "descriptor": { - "shape": [ - 3, - 8 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 5D tensor default options.minValue and specified negative options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": -2 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - -2, - -2, - -2, - -2, - -7.34310245513916, - -2, - -2.0564088821411133, - -2, - -2, - -2, - -8.199960708618164, - -7.786487102508545, - -2, - -2.3130595684051514, - -2, - -2, - -2, - -2, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 1D tensor default options.minValue and specified options.maxValue=0.0", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": 0 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 0, - 0, - 0, - -1.537420630455017, - -7.34310245513916, - 0, - -2.0564088821411133, - 0, - 0, - 0, - -8.199960708618164, - -7.786487102508545, - 0, - -2.3130595684051514, - 0, - 0, - 0, - 0, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 3D tensor default options.minValue and specified positive options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": 3 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 3, - 3, - 3, - -1.537420630455017, - -7.34310245513916, - 3, - -2.0564088821411133, - 3, - 3, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 3, - -2.3130595684051514, - 3, - 3, - 3, - 3, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 5D tensor specified both negative options.minValue and options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1, - 1, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -8, - "maxValue": -1 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -8, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - -1, - -1, - -1, - -1.537420630455017, - -7.34310245513916, - -1, - -2.0564088821411133, - -1, - -1, - -1, - -8, - -7.786487102508545, - -1, - -2.3130595684051514, - -1, - -1, - -1, - -1, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1, - 1, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 4D tensor specified negative options.minValue and options.maxValue=0.0", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 1, - 4, - 3, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -6, - "maxValue": 0 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -6, - -6, - -4.0725626945495605, - -6, - -6, - 0, - 0, - 0, - -1.537420630455017, - -6, - 0, - -2.0564088821411133, - 0, - 0, - 0, - -6, - -6, - 0, - -2.3130595684051514, - 0, - 0, - 0, - 0, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 1, - 4, - 3, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 3D tensor specified negative options.minValue and positive options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 2, - 6, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -3, - "maxValue": 4 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -3, - -3, - -3, - -3, - -3, - 4, - 3.7292487621307373, - 4, - -1.537420630455017, - -3, - 4, - -2.0564088821411133, - 4, - 4, - 0.8433118462562561, - -3, - -3, - 4, - -2.3130595684051514, - 4, - 4, - 4, - 4, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 2, - 6, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 2D tensor specified options.minValue=0.0 and positive options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 6, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 0, - "maxValue": 6 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 6, - 3.7292487621307373, - 6, - 0, - 0, - 6, - 0, - 6, - 5.525737762451172, - 0.8433118462562561, - 0, - 0, - 6, - 0, - 6, - 5.788925647735596, - 5.549378395080566, - 6, - 0 - ], - "descriptor": { - "shape": [ - 6, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float32 1D tensor specified both positive options.minValue and options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.817828178405762, - -6.024064064025879, - -4.0725626945495605, - -6.575078010559082, - -7.755683898925781, - 9.524681091308594, - 3.7292487621307373, - 6.481687068939209, - -1.537420630455017, - -7.34310245513916, - 7.880751132965088, - -2.0564088821411133, - 6.3438639640808105, - 5.525737762451172, - 0.8433118462562561, - -8.199960708618164, - -7.786487102508545, - 9.280223846435547, - -2.3130595684051514, - 9.549695014953613, - 5.788925647735596, - 5.549378395080566, - 7.409400463104248, - -2.123614549636841 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 2, - "maxValue": 7 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 2, - 2, - 2, - 2, - 2, - 7, - 3.7292487621307373, - 6.481687068939209, - 2, - 2, - 7, - 2, - 6.3438639640808105, - 5.525737762451172, - 2, - 2, - 2, - 7, - 2, - 7, - 5.788925647735596, - 5.549378395080566, - 7, - 2 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "clamp float16 0D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 1D tensor", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -64000, - 64000, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -2 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -2, - 64000, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 1D constant tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 1D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 2D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 3D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 4D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 5D tensor default options", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 4D tensor default options.maxValue and specified negative options.minValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -1 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -1, - -1, - -1, - -1, - -1, - 9.5234375, - 3.728515625, - 6.48046875, - -1, - -1, - 7.87890625, - -1, - 6.34375, - 5.52734375, - 0.84326171875, - -1, - -1, - 9.28125, - -1, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -1 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 3D tensor default options.maxValue and specified options.minValue=0.0", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 6, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 0 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 9.5234375, - 3.728515625, - 6.48046875, - 0, - 0, - 7.87890625, - 0, - 6.34375, - 5.52734375, - 0.84326171875, - 0, - 0, - 9.28125, - 0, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - 0 - ], - "descriptor": { - "shape": [ - 6, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 2D tensor default options.maxValue and specified positive options.minValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 3, - 8 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 1 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 9.5234375, - 3.728515625, - 6.48046875, - 1, - 1, - 7.87890625, - 1, - 6.34375, - 5.52734375, - 1, - 1, - 1, - 9.28125, - 1, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - 1 - ], - "descriptor": { - "shape": [ - 3, - 8 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 5D tensor default options.minValue and specified negative options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": -2 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - -2, - -2, - -2, - -2, - -7.34375, - -2, - -2.056640625, - -2, - -2, - -2, - -8.203125, - -7.78515625, - -2, - -2.3125, - -2, - -2, - -2, - -2, - -2.123046875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 1D tensor default options.minValue and specified options.maxValue=0.0", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": 0 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 0, - 0, - 0, - -1.537109375, - -7.34375, - 0, - -2.056640625, - 0, - 0, - 0, - -8.203125, - -7.78515625, - 0, - -2.3125, - 0, - 0, - 0, - 0, - -2.123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 3D tensor default options.minValue and specified positive options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": 3 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 3, - 3, - 3, - -1.537109375, - -7.34375, - 3, - -2.056640625, - 3, - 3, - 0.84326171875, - -8.203125, - -7.78515625, - 3, - -2.3125, - 3, - 3, - 3, - 3, - -2.123046875 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 5D tensor specified both negative options.minValue and options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1, - 1, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -8, - "maxValue": -1 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -8, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - -1, - -1, - -1, - -1.537109375, - -7.34375, - -1, - -2.056640625, - -1, - -1, - -1, - -8, - -7.78515625, - -1, - -2.3125, - -1, - -1, - -1, - -1, - -2.123046875 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1, - 1, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 4D tensor specified negative options.minValue and options.maxValue=0.0", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 1, - 4, - 3, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -6, - "maxValue": 0 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -6, - -6, - -4.07421875, - -6, - -6, - 0, - 0, - 0, - -1.537109375, - -6, - 0, - -2.056640625, - 0, - 0, - 0, - -6, - -6, - 0, - -2.3125, - 0, - 0, - 0, - 0, - -2.123046875 - ], - "descriptor": { - "shape": [ - 1, - 4, - 3, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 3D tensor specified negative options.minValue and positive options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 2, - 6, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": -3, - "maxValue": 4 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - -3, - -3, - -3, - -3, - -3, - 4, - 3.728515625, - 4, - -1.537109375, - -3, - 4, - -2.056640625, - 4, - 4, - 0.84326171875, - -3, - -3, - 4, - -2.3125, - 4, - 4, - 4, - 4, - -2.123046875 - ], - "descriptor": { - "shape": [ - 2, - 6, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 2D tensor specified options.minValue=0.0 and positive options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 6, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 0, - "maxValue": 6 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 6, - 3.728515625, - 6, - 0, - 0, - 6, - 0, - 6, - 5.52734375, - 0.84326171875, - 0, - 0, - 6, - 0, - 6, - 5.7890625, - 5.55078125, - 6, - 0 - ], - "descriptor": { - "shape": [ - 6, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "clamp float16 1D tensor specified both positive options.minValue and options.maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - -9.8203125, - -6.0234375, - -4.07421875, - -6.57421875, - -7.75390625, - 9.5234375, - 3.728515625, - 6.48046875, - -1.537109375, - -7.34375, - 7.87890625, - -2.056640625, - 6.34375, - 5.52734375, - 0.84326171875, - -8.203125, - -7.78515625, - 9.28125, - -2.3125, - 9.546875, - 5.7890625, - 5.55078125, - 7.41015625, - -2.123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 2, - "maxValue": 7 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 2, - 2, - 2, - 2, - 2, - 7, - 3.728515625, - 6.48046875, - 2, - 2, - 7, - 2, - 6.34375, - 5.52734375, - 2, - 2, - 2, - 7, - 2, - 7, - 5.7890625, - 5.55078125, - 7, - 2 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "minValue as -Infinity", - "graph": { - "inputs": { - "clampInput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": "-Infinity" - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "minValue as Infinity", - "graph": { - "inputs": { - "clampInput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": "Infinity" - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - "Infinity", - "Infinity", - "Infinity", - "Infinity", - "Infinity", - "Infinity", - "Infinity" - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "maxValue as -Infinity", - "graph": { - "inputs": { - "clampInput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": "-Infinity" - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - "-Infinity", - "-Infinity", - "-Infinity", - "-Infinity", - "-Infinity", - "-Infinity", - "-Infinity" - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "maxValue as Infinity", - "graph": { - "inputs": { - "clampInput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": "Infinity" - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "minValue == maxValue", - "graph": { - "inputs": { - "clampInput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": 0.5, - "maxValue": 0.5 - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "minValue as NaN", - "graph": { - "inputs": { - "clampInput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "minValue": "NaN" - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "maxValue as NaN", - "graph": { - "inputs": { - "clampInput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "clamp", - "arguments": [ - { - "input": "clampInput" - }, - { - "options": { - "maxValue": "NaN" - } - } - ], - "outputs": "clampOutput" - } - ], - "expectedOutputs": { - "clampOutput": { - "data": [ - "-Infinity", - "Infinity", - -3e+35, - 2147483647, - -2, - 1, - 0 - ], - "descriptor": { - "shape": [ - 7 - ], - "dataType": "float32" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/concat.json b/tests/wpt_data/conformance/concat.json deleted file mode 100644 index 2aecb9a..0000000 --- a/tests/wpt_data/conformance/concat.json +++ /dev/null @@ -1,5465 +0,0 @@ -{ - "operation": "concat", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/concat.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "concat two float32 1D constant tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - }, - "constant": true - }, - "concatInput2": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float32 1D tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 1D tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat three float32 1D tensors of different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat three float16 1D tensors of different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat four float32 1D tensors of same 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - } - }, - "concatInput4": { - "data": [ - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat four float16 1D tensors of same 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - } - }, - "concatInput4": { - "data": [ - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat four float32 1D tensors of different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - }, - "concatInput4": { - "data": [ - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 10 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat four float16 1D tensors of different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 4 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - }, - "concatInput4": { - "data": [ - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 10 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat two float32 2D tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 2, - 6 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 2D tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 2, - 6 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat two float32 2D tensors of same others dimensions except different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 6 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 2D tensors of same others dimensions except different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 6 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat four float32 2D tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float32" - } - }, - "concatInput4": { - "data": [ - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat four float16 2D tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float16" - } - }, - "concatInput4": { - "data": [ - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat two float32 2D tensors of same others dimensions except different 2nd dimension along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725 - ], - "descriptor": { - "shape": [ - 2, - 10 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - 0.5182055234909058, - -0.8742017149925232, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 2D tensors of same others dimensions except different 2nd dimension along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725 - ], - "descriptor": { - "shape": [ - 2, - 10 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - 0.51806640625, - -0.8740234375, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat three float32 2D tensors of same shape along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771 - ], - "descriptor": { - "shape": [ - 4, - 2 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935 - ], - "descriptor": { - "shape": [ - 4, - 2 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 4, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - -0.5945112705230713, - -0.402848482131958, - -0.7206121683120728, - -0.7993468642234802, - 0.337996244430542, - -0.990639865398407, - -0.9531654119491577, - -0.6731740236282349, - 0.6653800010681152, - 0.03886038810014725, - 0.576785683631897, - 0.32276400923728943, - 0.49189892411231995, - -0.15864109992980957, - 0.5182055234909058, - -0.8742017149925232, - -0.44735023379325867, - 0.11028251051902771, - -0.3418811559677124, - -0.9158143401145935, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat three float16 2D tensors of same shape along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771 - ], - "descriptor": { - "shape": [ - 4, - 2 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935 - ], - "descriptor": { - "shape": [ - 4, - 2 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 4, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - -0.5947265625, - -0.40283203125, - -0.720703125, - -0.79931640625, - 0.337890625, - -0.99072265625, - -0.953125, - -0.67333984375, - 0.66552734375, - 0.038848876953125, - 0.57666015625, - 0.32275390625, - 0.491943359375, - -0.15869140625, - 0.51806640625, - -0.8740234375, - -0.447265625, - 0.11029052734375, - -0.341796875, - -0.916015625, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat four float32 2D tensors of same others dimensions except different 2nd dimension along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542 - ], - "descriptor": { - "shape": [ - 3, - 1 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float32" - } - }, - "concatInput4": { - "data": [ - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - -0.990639865398407, - 0.576785683631897, - -0.402848482131958, - -0.9531654119491577, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.861982524394989, - 0.32276400923728943, - -0.44735023379325867, - -0.6731740236282349, - 0.49189892411231995, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - 0.337996244430542, - 0.11028251051902771, - -0.5945112705230713, - -0.15864109992980957, - -0.3418811559677124, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 8 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat four float16 2D tensors of same others dimensions except different 2nd dimension along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542 - ], - "descriptor": { - "shape": [ - 3, - 1 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124 - ], - "descriptor": { - "shape": [ - 3, - 2 - ], - "dataType": "float16" - } - }, - "concatInput4": { - "data": [ - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - -0.99072265625, - 0.57666015625, - -0.40283203125, - -0.953125, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.86181640625, - 0.32275390625, - -0.447265625, - -0.67333984375, - 0.491943359375, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - 0.337890625, - 0.11029052734375, - -0.5947265625, - -0.15869140625, - -0.341796875, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 3, - 8 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat two float32 3D tensors of same others dimensions except different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 6, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 8, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 3D tensors of same others dimensions except different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 6, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 8, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat four float32 3D tensors of same others dimensions except different 2nd dimension along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1 - ], - "dataType": "float32" - } - }, - "concatInput4": { - "data": [ - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 3, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - -0.990639865398407, - 0.576785683631897, - -0.402848482131958, - -0.9531654119491577, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.861982524394989, - 0.32276400923728943, - -0.44735023379325867, - -0.6731740236282349, - 0.49189892411231995, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - 0.337996244430542, - 0.11028251051902771, - -0.5945112705230713, - -0.15864109992980957, - -0.3418811559677124, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 8, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat four float16 3D tensors of same others dimensions except different 2nd dimension along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1 - ], - "dataType": "float16" - } - }, - "concatInput4": { - "data": [ - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 3, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - -0.99072265625, - 0.57666015625, - -0.40283203125, - -0.953125, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.86181640625, - 0.32275390625, - -0.447265625, - -0.67333984375, - 0.491943359375, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - 0.337890625, - 0.11029052734375, - -0.5947265625, - -0.15869140625, - -0.341796875, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 3, - 8, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat three float32 3D tensors of same shape along axis 2", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 2 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - -0.5945112705230713, - -0.402848482131958, - -0.7206121683120728, - -0.7993468642234802, - 0.337996244430542, - -0.990639865398407, - -0.9531654119491577, - -0.6731740236282349, - 0.6653800010681152, - 0.03886038810014725, - 0.576785683631897, - 0.32276400923728943, - 0.49189892411231995, - -0.15864109992980957, - 0.5182055234909058, - -0.8742017149925232, - -0.44735023379325867, - 0.11028251051902771, - -0.3418811559677124, - -0.9158143401145935, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 2, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat three float16 3D tensors of same shape along axis 2", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 2 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - -0.5947265625, - -0.40283203125, - -0.720703125, - -0.79931640625, - 0.337890625, - -0.99072265625, - -0.953125, - -0.67333984375, - 0.66552734375, - 0.038848876953125, - 0.57666015625, - 0.32275390625, - 0.491943359375, - -0.15869140625, - 0.51806640625, - -0.8740234375, - -0.447265625, - 0.11029052734375, - -0.341796875, - -0.916015625, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat two float32 4D tensors of same others dimensions except different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 2 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 3, - 1, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 4, - 3, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 4D tensors of same others dimensions except different 1st dimension along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 2 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 3, - 1, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 4, - 3, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat three float32 4D tensors of same shape along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 6, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat three float16 4D tensors of same shape along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 2, - 6, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat three float32 4D tensors of same others dimensions except different 3rd dimension along axis 2", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725 - ], - "descriptor": { - "shape": [ - 1, - 2, - 8, - 1 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 2 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.5182055234909058, - -0.8742017149925232, - 0.337996244430542, - -0.990639865398407, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 12, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat three float16 4D tensors of same others dimensions except different 3rd dimension along axis 2", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725 - ], - "descriptor": { - "shape": [ - 1, - 2, - 8, - 1 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 2 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.51806640625, - -0.8740234375, - 0.337890625, - -0.99072265625, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 12, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat four float32 4D tensors of same others dimensions except different 4th dimension along axis 3", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 1 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 1 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 2 - ], - "dataType": "float32" - } - }, - "concatInput4": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 3 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - -0.990639865398407, - -0.44735023379325867, - 0.11028251051902771, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - 0.861982524394989, - 0.576785683631897, - -0.5945112705230713, - -0.402848482131958, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.337996244430542, - 0.32276400923728943, - -0.9531654119491577, - -0.6731740236282349, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 8 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat four float16 4D tensors of same others dimensions except different 4th dimension along axis 3", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 1 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 1 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 2 - ], - "dataType": "float16" - } - }, - "concatInput4": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 3 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - -0.99072265625, - -0.447265625, - 0.11029052734375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - 0.86181640625, - 0.57666015625, - -0.5947265625, - -0.40283203125, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.337890625, - 0.32275390625, - -0.953125, - -0.67333984375, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 1, - 3, - 1, - 8 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat four float32 5D tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - }, - "concatInput4": { - "data": [ - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 4, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat four float16 5D tensors of same shape along axis 0", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - }, - "concatInput4": { - "data": [ - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3", - "concatInput4" - ] - }, - { - "axis": 0 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat two float32 5D tensors of same others dimensions except different 2nd dimension along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 1, - 1 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 6, - 3, - 1, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 8, - 3, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 5D tensors of same others dimensions except different 2nd dimension along axis 1", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 1, - 1 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 6, - 3, - 1, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 1 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 1, - 8, - 3, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat three float32 5D tensors of same others dimensions except different 3rd dimension along axis 2", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1, - 2 - ], - "dataType": "float32" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 1, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 2 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.337996244430542, - -0.990639865398407, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 6, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat three float16 5D tensors of same others dimensions except different 3rd dimension along axis 2", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1, - 2 - ], - "dataType": "float16" - } - }, - "concatInput3": { - "data": [ - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 1, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2", - "concatInput3" - ] - }, - { - "axis": 2 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.337890625, - -0.99072265625, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 6, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat two float32 5D tensors of same others dimensions except different 4th dimension along axis 3", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 3, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 3 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.337996244430542, - -0.990639865398407, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.576785683631897, - 0.32276400923728943, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 4, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 5D tensors of same others dimensions except different 4th dimension along axis 3", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.44735023379325867, - 0.11028251051902771, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 3, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 3 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - -0.447265625, - 0.11029052734375, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.337890625, - -0.99072265625, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - -0.720703125, - -0.79931640625, - 0.57666015625, - 0.32275390625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 4, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "concat two float32 5D tensors of same others dimensions except different 5th dimension along axis 4", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 4 - ], - "dataType": "float32" - } - }, - "concatInput2": { - "data": [ - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 8 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 4 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 12 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "concat two float16 5D tensors of same others dimensions except different 5th dimension along axis 4", - "graph": { - "inputs": { - "concatInput1": { - "data": [ - -0.3944413363933563, - 0.861982524394989, - 0.337996244430542, - -0.990639865398407, - 0.576785683631897, - 0.32276400923728943, - -0.44735023379325867, - 0.11028251051902771 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 4 - ], - "dataType": "float16" - } - }, - "concatInput2": { - "data": [ - -0.5945112705230713, - -0.402848482131958, - -0.9531654119491577, - -0.6731740236282349, - 0.49189892411231995, - -0.15864109992980957, - -0.3418811559677124, - -0.9158143401145935, - -0.7206121683120728, - -0.7993468642234802, - 0.6653800010681152, - 0.03886038810014725, - 0.5182055234909058, - -0.8742017149925232, - -0.4790218770503998, - 0.1211843192577362 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 8 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "concat", - "arguments": [ - { - "inputs": [ - "concatInput1", - "concatInput2" - ] - }, - { - "axis": 4 - } - ], - "outputs": "concatOutput" - } - ], - "expectedOutputs": { - "concatOutput": { - "data": [ - -0.39453125, - 0.86181640625, - 0.337890625, - -0.99072265625, - -0.5947265625, - -0.40283203125, - -0.953125, - -0.67333984375, - 0.491943359375, - -0.15869140625, - -0.341796875, - -0.916015625, - 0.57666015625, - 0.32275390625, - -0.447265625, - 0.11029052734375, - -0.720703125, - -0.79931640625, - 0.66552734375, - 0.038848876953125, - 0.51806640625, - -0.8740234375, - -0.47900390625, - 0.12115478515625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 12 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/conv2d.json b/tests/wpt_data/conformance/conv2d.json deleted file mode 100644 index 8c489ef..0000000 --- a/tests/wpt_data/conformance/conv2d.json +++ /dev/null @@ -1,5073 +0,0 @@ -{ - "operation": "conv2d", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/conv2d.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "conv2d float32 4D both input and filter non-constant tensors default options", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6124474406242371, - 0.8857858777046204, - 0.13667134940624237, - 0.5645291209220886, - 0.8965172171592712, - 0.36792829632759094, - 0.6811466217041016, - 0.0479511022567749, - 0.33355462551116943, - 0.19882695376873016, - 0.41167140007019043, - 0.07934240251779556, - 0.4272463321685791, - 0.535800576210022, - 0.5910806059837341, - 0.28415432572364807, - 0.4147258698940277, - 0.026906268671154976, - 0.3621256649494171, - 0.9945681691169739, - 0.07184549421072006, - 0.12204372137784958, - 0.8422137498855591, - 0.4537501037120819, - 0.21529443562030792 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.3804761469364166, - 0.5280312299728394, - 0.21947036683559418, - 0.36689770221710205, - 0.33974137902259827, - 0.4200059771537781, - 0.3805030882358551, - 0.19443586468696594, - 0.5686976909637451 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.5323282480239868, - 1.3573521375656128, - 1.3641656637191772, - 1.071682333946228, - 1.1259644031524658, - 1.4713115692138672, - 1.078782320022583, - 1.155018925666809, - 1.656954288482666 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D both input and filter constant tensors default options", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6124474406242371, - 0.8857858777046204, - 0.13667134940624237, - 0.5645291209220886, - 0.8965172171592712, - 0.36792829632759094, - 0.6811466217041016, - 0.0479511022567749, - 0.33355462551116943, - 0.19882695376873016, - 0.41167140007019043, - 0.07934240251779556, - 0.4272463321685791, - 0.535800576210022, - 0.5910806059837341, - 0.28415432572364807, - 0.4147258698940277, - 0.026906268671154976, - 0.3621256649494171, - 0.9945681691169739, - 0.07184549421072006, - 0.12204372137784958, - 0.8422137498855591, - 0.4537501037120819, - 0.21529443562030792 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - }, - "constant": true - }, - "conv2dFilter": { - "data": [ - 0.3804761469364166, - 0.5280312299728394, - 0.21947036683559418, - 0.36689770221710205, - 0.33974137902259827, - 0.4200059771537781, - 0.3805030882358551, - 0.19443586468696594, - 0.5686976909637451 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.5323282480239868, - 1.3573521375656128, - 1.3641656637191772, - 1.071682333946228, - 1.1259644031524658, - 1.4713115692138672, - 1.078782320022583, - 1.155018925666809, - 1.656954288482666 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors default options", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6124474406242371, - 0.8857858777046204, - 0.13667134940624237, - 0.5645291209220886, - 0.8965172171592712, - 0.36792829632759094, - 0.6811466217041016, - 0.0479511022567749, - 0.33355462551116943, - 0.19882695376873016, - 0.41167140007019043, - 0.07934240251779556, - 0.4272463321685791, - 0.535800576210022, - 0.5910806059837341, - 0.28415432572364807, - 0.4147258698940277, - 0.026906268671154976, - 0.3621256649494171, - 0.9945681691169739, - 0.07184549421072006, - 0.12204372137784958, - 0.8422137498855591, - 0.4537501037120819, - 0.21529443562030792 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.3804761469364166, - 0.5280312299728394, - 0.21947036683559418, - 0.36689770221710205, - 0.33974137902259827, - 0.4200059771537781, - 0.3805030882358551, - 0.19443586468696594, - 0.5686976909637451 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.5323282480239868, - 1.3573521375656128, - 1.3641656637191772, - 1.071682333946228, - 1.1259644031524658, - 1.4713115692138672, - 1.078782320022583, - 1.155018925666809, - 1.656954288482666 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.padding", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6124474406242371, - 0.8857858777046204, - 0.13667134940624237, - 0.5645291209220886, - 0.8965172171592712, - 0.36792829632759094, - 0.6811466217041016, - 0.0479511022567749, - 0.33355462551116943, - 0.19882695376873016, - 0.41167140007019043, - 0.07934240251779556, - 0.4272463321685791, - 0.535800576210022, - 0.5910806059837341, - 0.28415432572364807, - 0.4147258698940277, - 0.026906268671154976, - 0.3621256649494171, - 0.9945681691169739, - 0.07184549421072006, - 0.12204372137784958, - 0.8422137498855591, - 0.4537501037120819, - 0.21529443562030792 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.3804761469364166, - 0.5280312299728394, - 0.21947036683559418, - 0.36689770221710205, - 0.33974137902259827, - 0.4200059771537781, - 0.3805030882358551, - 0.19443586468696594, - 0.5686976909637451 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "padding": [ - 1, - 1, - 1, - 1 - ] - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.0390141010284424, - 0.882753312587738, - 1.0667248964309692, - 0.8146538734436035, - 0.6772860884666443, - 1.0540467500686646, - 1.5323282480239868, - 1.3573521375656128, - 1.3641656637191772, - 1.1969101428985596, - 0.8080586791038513, - 1.071682333946228, - 1.1259644031524658, - 1.4713115692138672, - 0.960464596748352, - 0.5888903141021729, - 1.078782320022583, - 1.155018925666809, - 1.656954288482666, - 1.2012416124343872, - 0.3167303800582886, - 0.7545653581619263, - 0.7729666829109192, - 0.9733180403709412, - 0.9025675058364868 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.strides", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6124474406242371, - 0.8857858777046204, - 0.13667134940624237, - 0.5645291209220886, - 0.8965172171592712, - 0.36792829632759094, - 0.6811466217041016, - 0.0479511022567749, - 0.33355462551116943, - 0.19882695376873016, - 0.41167140007019043, - 0.07934240251779556, - 0.4272463321685791, - 0.535800576210022, - 0.5910806059837341, - 0.28415432572364807, - 0.4147258698940277, - 0.026906268671154976, - 0.3621256649494171, - 0.9945681691169739, - 0.07184549421072006, - 0.12204372137784958, - 0.8422137498855591, - 0.4537501037120819, - 0.21529443562030792 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.3804761469364166, - 0.5280312299728394, - 0.21947036683559418, - 0.36689770221710205, - 0.33974137902259827, - 0.4200059771537781, - 0.3805030882358551, - 0.19443586468696594, - 0.5686976909637451 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "strides": [ - 2, - 2 - ] - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.5323282480239868, - 1.3641656637191772, - 1.078782320022583, - 1.656954288482666 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.dilations", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6124474406242371, - 0.8857858777046204, - 0.13667134940624237, - 0.5645291209220886, - 0.8965172171592712, - 0.36792829632759094, - 0.6811466217041016, - 0.0479511022567749, - 0.33355462551116943, - 0.19882695376873016, - 0.41167140007019043, - 0.07934240251779556, - 0.4272463321685791, - 0.535800576210022, - 0.5910806059837341, - 0.28415432572364807, - 0.4147258698940277, - 0.026906268671154976, - 0.3621256649494171, - 0.9945681691169739, - 0.07184549421072006, - 0.12204372137784958, - 0.8422137498855591, - 0.4537501037120819, - 0.21529443562030792 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.3804761469364166, - 0.5280312299728394, - 0.21947036683559418, - 0.36689770221710205, - 0.33974137902259827, - 0.4200059771537781, - 0.3805030882358551, - 0.19443586468696594, - 0.5686976909637451 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "dilations": [ - 2, - 2 - ] - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.3599307537078857 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "depthwise conv2d float32 4D input and filter tensors options.groups= input_channels", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.8444867730140686, - 0.9432409405708313, - 0.6556113362312317, - 0.6982811689376831, - 0.9994443655014038, - 0.23663610219955444, - 0.36740678548812866, - 0.2619246542453766, - 0.6254158616065979, - 0.8403863906860352, - 0.3783077001571655, - 0.4543924033641815, - 0.25327208638191223, - 0.5780375599861145, - 0.5414554476737976, - 0.37846308946609497 - ], - "descriptor": { - "shape": [ - 1, - 4, - 2, - 2 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.27221617102622986, - 0.281202495098114, - 0.854483962059021, - 0.1796930730342865, - 0.7762278318405151, - 0.5140685439109802, - 0.6374202966690063, - 0.12801742553710938, - 0.8373776078224182, - 0.5726001858711243, - 0.09855203330516815, - 0.5929878950119019, - 0.5900803804397583, - 0.9690897464752197, - 0.23175589740276337, - 0.14805112779140472 - ], - "descriptor": { - "shape": [ - 4, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "groups": 4 - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.1808103322982788, - 1.165167212486267, - 1.311646819114685, - 0.8911385536193848 - ], - "descriptor": { - "shape": [ - 1, - 4, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.inputLayout='nchw'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.9671129584312439, - 0.10836050659418106, - 0.3202308118343353, - 0.6952692270278931, - 0.5070913434028625, - 0.08139707148075104, - 0.5303338766098022, - 0.3072136342525482, - 0.43241235613822937, - 0.9849002361297607, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nchw" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.7413608431816101, - 0.2897796928882599, - 0.4053896367549896, - 0.9626783132553101, - 0.9108520746231079, - 0.4832426905632019, - 0.4878997206687927, - 0.8020333051681519, - 0.6277193427085876, - 0.4483422338962555, - 0.8711439371109009, - 0.6932874917984009, - 1.0369365215301514, - 0.8282973766326904, - 0.35335418581962585, - 1.1787647008895874, - 0.8123774528503418, - 0.816078782081604, - 0.6780439019203186, - 0.9170808792114258, - 1.082636833190918, - 1.2353861331939697, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.inputLayout='nhwc'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.9671129584312439, - 0.10836050659418106, - 0.3202308118343353, - 0.6952692270278931, - 0.5070913434028625, - 0.08139707148075104, - 0.5303338766098022, - 0.3072136342525482, - 0.43241235613822937, - 0.9849002361297607, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.9626783132553101, - 0.8020333051681519, - 0.7413608431816101, - 0.9108520746231079, - 0.6277193427085876, - 0.2897796928882599, - 0.4832426905632019, - 0.4483422338962555, - 0.4053896367549896, - 0.4878997206687927, - 0.8711439371109009, - 0.6932874917984009, - 1.1787647008895874, - 0.9170808792114258, - 1.0369365215301514, - 0.8123774528503418, - 1.082636833190918, - 0.8282973766326904, - 0.816078782081604, - 1.2353861331939697, - 0.35335418581962585, - 0.6780439019203186, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.filterLayout='oihw'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.9671129584312439, - 0.10836050659418106, - 0.3202308118343353, - 0.6952692270278931, - 0.5070913434028625, - 0.08139707148075104, - 0.5303338766098022, - 0.3072136342525482, - 0.43241235613822937, - 0.9849002361297607, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "filterLayout": "oihw" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.7413608431816101, - 0.2897796928882599, - 0.4053896367549896, - 0.9626783132553101, - 0.9108520746231079, - 0.4832426905632019, - 0.4878997206687927, - 0.8020333051681519, - 0.6277193427085876, - 0.4483422338962555, - 0.8711439371109009, - 0.6932874917984009, - 1.0369365215301514, - 0.8282973766326904, - 0.35335418581962585, - 1.1787647008895874, - 0.8123774528503418, - 0.816078782081604, - 0.6780439019203186, - 0.9170808792114258, - 1.082636833190918, - 1.2353861331939697, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.filterLayout='hwio'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.6952692270278931, - 0.3072136342525482, - 0.9671129584312439, - 0.5070913434028625, - 0.43241235613822937, - 0.10836050659418106, - 0.08139707148075104, - 0.9849002361297607, - 0.3202308118343353, - 0.5303338766098022, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "filterLayout": "hwio" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.7413608431816101, - 0.2897796928882599, - 0.4053896367549896, - 0.9626783132553101, - 0.9108520746231079, - 0.4832426905632019, - 0.4878997206687927, - 0.8020333051681519, - 0.6277193427085876, - 0.4483422338962555, - 0.8711439371109009, - 0.6932874917984009, - 1.0369365215301514, - 0.8282973766326904, - 0.35335418581962585, - 1.1787647008895874, - 0.8123774528503418, - 0.816078782081604, - 0.6780439019203186, - 0.9170808792114258, - 1.082636833190918, - 1.2353861331939697, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.filterLayout='ohwi'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.9671129584312439, - 0.10836050659418106, - 0.3202308118343353, - 0.6952692270278931, - 0.5070913434028625, - 0.08139707148075104, - 0.5303338766098022, - 0.3072136342525482, - 0.43241235613822937, - 0.9849002361297607, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "filterLayout": "ohwi" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.7413608431816101, - 0.2897796928882599, - 0.4053896367549896, - 0.9626783132553101, - 0.9108520746231079, - 0.4832426905632019, - 0.4878997206687927, - 0.8020333051681519, - 0.6277193427085876, - 0.4483422338962555, - 0.8711439371109009, - 0.6932874917984009, - 1.0369365215301514, - 0.8282973766326904, - 0.35335418581962585, - 1.1787647008895874, - 0.8123774528503418, - 0.816078782081604, - 0.6780439019203186, - 0.9170808792114258, - 1.082636833190918, - 1.2353861331939697, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.filterLayout='ihwo'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.6952692270278931, - 0.3072136342525482, - 0.9671129584312439, - 0.5070913434028625, - 0.43241235613822937, - 0.10836050659418106, - 0.08139707148075104, - 0.9849002361297607, - 0.3202308118343353, - 0.5303338766098022, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "filterLayout": "ihwo" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.7413608431816101, - 0.2897796928882599, - 0.4053896367549896, - 0.9626783132553101, - 0.9108520746231079, - 0.4832426905632019, - 0.4878997206687927, - 0.8020333051681519, - 0.6277193427085876, - 0.4483422338962555, - 0.8711439371109009, - 0.6932874917984009, - 1.0369365215301514, - 0.8282973766326904, - 0.35335418581962585, - 1.1787647008895874, - 0.8123774528503418, - 0.816078782081604, - 0.6780439019203186, - 0.9170808792114258, - 1.082636833190918, - 1.2353861331939697, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='oihw'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.9671129584312439, - 0.10836050659418106, - 0.3202308118343353, - 0.6952692270278931, - 0.5070913434028625, - 0.08139707148075104, - 0.5303338766098022, - 0.3072136342525482, - 0.43241235613822937, - 0.9849002361297607, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "oihw" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.9626783132553101, - 0.8020333051681519, - 0.7413608431816101, - 0.9108520746231079, - 0.6277193427085876, - 0.2897796928882599, - 0.4832426905632019, - 0.4483422338962555, - 0.4053896367549896, - 0.4878997206687927, - 0.8711439371109009, - 0.6932874917984009, - 1.1787647008895874, - 0.9170808792114258, - 1.0369365215301514, - 0.8123774528503418, - 1.082636833190918, - 0.8282973766326904, - 0.816078782081604, - 1.2353861331939697, - 0.35335418581962585, - 0.6780439019203186, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='hwio'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.6952692270278931, - 0.3072136342525482, - 0.9671129584312439, - 0.5070913434028625, - 0.43241235613822937, - 0.10836050659418106, - 0.08139707148075104, - 0.9849002361297607, - 0.3202308118343353, - 0.5303338766098022, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "hwio" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.9626783132553101, - 0.8020333051681519, - 0.7413608431816101, - 0.9108520746231079, - 0.6277193427085876, - 0.2897796928882599, - 0.4832426905632019, - 0.4483422338962555, - 0.4053896367549896, - 0.4878997206687927, - 0.8711439371109009, - 0.6932874917984009, - 1.1787647008895874, - 0.9170808792114258, - 1.0369365215301514, - 0.8123774528503418, - 1.082636833190918, - 0.8282973766326904, - 0.816078782081604, - 1.2353861331939697, - 0.35335418581962585, - 0.6780439019203186, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ohwi'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.9671129584312439, - 0.10836050659418106, - 0.3202308118343353, - 0.6952692270278931, - 0.5070913434028625, - 0.08139707148075104, - 0.5303338766098022, - 0.3072136342525482, - 0.43241235613822937, - 0.9849002361297607, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "ohwi" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.9626783132553101, - 0.8020333051681519, - 0.7413608431816101, - 0.9108520746231079, - 0.6277193427085876, - 0.2897796928882599, - 0.4832426905632019, - 0.4483422338962555, - 0.4053896367549896, - 0.4878997206687927, - 0.8711439371109009, - 0.6932874917984009, - 1.1787647008895874, - 0.9170808792114258, - 1.0369365215301514, - 0.8123774528503418, - 1.082636833190918, - 0.8282973766326904, - 0.816078782081604, - 1.2353861331939697, - 0.35335418581962585, - 0.6780439019203186, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ihwo'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.6952692270278931, - 0.3072136342525482, - 0.9671129584312439, - 0.5070913434028625, - 0.43241235613822937, - 0.10836050659418106, - 0.08139707148075104, - 0.9849002361297607, - 0.3202308118343353, - 0.5303338766098022, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "ihwo" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.8845428228378296, - 0.9626783132553101, - 0.8020333051681519, - 0.7413608431816101, - 0.9108520746231079, - 0.6277193427085876, - 0.2897796928882599, - 0.4832426905632019, - 0.4483422338962555, - 0.4053896367549896, - 0.4878997206687927, - 0.8711439371109009, - 0.6932874917984009, - 1.1787647008895874, - 0.9170808792114258, - 1.0369365215301514, - 0.8123774528503418, - 1.082636833190918, - 0.8282973766326904, - 0.816078782081604, - 1.2353861331939697, - 0.35335418581962585, - 0.6780439019203186, - 0.9810346961021423 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors 1D options.bias", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529087066650391, - 0.7520291805267334, - 0.5949527621269226, - 0.2163185328245163, - 0.07589349150657654, - 0.151067852973938, - 0.1212485060095787, - 0.5364335179328918, - 0.5937089920043945, - 0.991003155708313, - 0.3630942404270172, - 0.9289674162864685, - 0.22727376222610474, - 0.5414124131202698, - 0.08445341885089874, - 0.6765284538269043, - 0.6193256378173828, - 0.3929215967655182 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.14543837308883667, - 0.9671129584312439, - 0.10836050659418106, - 0.3202308118343353, - 0.6952692270278931, - 0.5070913434028625, - 0.08139707148075104, - 0.5303338766098022, - 0.3072136342525482, - 0.43241235613822937, - 0.9849002361297607, - 0.4281076192855835 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - }, - "conv2dBias": { - "data": [ - 0.8135762214660645, - 0.8394582867622375, - 0.49444812536239624 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "bias": "conv2dBias" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.698119044303894, - 1.5549371242523193, - 1.103355884552002, - 1.2189658880233765, - 1.8021366596221924, - 1.7503103017807007, - 1.3227009773254395, - 1.3273580074310303, - 1.2964813709259033, - 1.1221674680709839, - 0.9427903890609741, - 1.365592122077942, - 1.5068637132644653, - 1.8505127429962158, - 1.6418735980987549, - 1.1669304370880127, - 2.0182230472564697, - 1.6518357992172241, - 1.6555371284484863, - 1.5175021886825562, - 1.4115289449691772, - 1.577085018157959, - 1.7298341989517212, - 1.4754828214645386 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors all options", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.09971386939287186, - 0.5374298095703125, - 0.30570074915885925, - 0.7222362160682678, - 0.5066556334495544, - 0.3238430619239807, - 0.8721967935562134, - 0.20989856123924255, - 0.5052645802497864, - 0.026870572939515114, - 0.5497115850448608, - 0.06430311501026154, - 0.1560668647289276, - 0.11970008909702301, - 0.036145713180303574, - 0.41425615549087524, - 0.2417246550321579, - 0.6771785020828247, - 0.2087000161409378, - 0.10979551076889038, - 0.745035707950592, - 0.7443592548370361, - 0.7873413562774658, - 0.5887080430984497, - 0.11018028855323792, - 0.9045036435127258, - 0.11725221574306488, - 0.8508669137954712, - 0.4244919717311859, - 0.02537914551794529, - 0.747390866279602, - 0.4645859897136688, - 0.030408121645450592, - 0.4244018793106079, - 0.3847547769546509, - 0.7581132650375366, - 0.9901952147483826, - 0.03716852888464928, - 0.014496322721242905, - 0.8263142108917236, - 0.21072064340114594, - 0.6569713950157166, - 0.25842806696891785, - 0.4802338480949402, - 0.9704219102859497, - 0.2968284785747528, - 0.7524365782737732, - 0.029636209830641747, - 0.09028015285730362, - 0.77818763256073 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.6385681629180908, - 0.07764163613319397, - 0.1291629821062088, - 0.45633891224861145, - 0.40438535809516907, - 0.5943626761436462, - 0.14241264760494232, - 0.9036700129508972 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float32" - }, - "constant": true - }, - "conv2dBias": { - "data": [ - 0.542375385761261, - 0.8406118750572205 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "padding": [ - 1, - 0, - 0, - 1 - ], - "strides": [ - 1, - 1 - ], - "dilations": [ - 1, - 1 - ], - "groups": 2, - "inputLayout": "nchw", - "filterLayout": "hwio", - "bias": "conv2dBias" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.6592350006103516, - 0.8032397627830505, - 0.7688518762588501, - 0.9065912961959839, - 0.7472594976425171, - 0.9306347966194153, - 1.3076419830322266, - 0.987708330154419, - 1.277161955833435, - 0.8767756223678589, - 1.0932797193527222, - 1.1746727228164673, - 0.8218293786048889, - 0.9220445156097412, - 0.5741508603096008, - 1.103653073310852, - 0.7977840900421143, - 0.9610581398010254, - 0.7235122323036194, - 0.6098566055297852, - 1.2454158067703247, - 1.1973347663879395, - 1.4039851427078247, - 0.9435820579528809, - 0.6570426225662231, - 1.4841723442077637, - 1.6792051792144775, - 1.729936122894287, - 1.115848422050476, - 0.8556963205337524, - 1.828399419784546, - 1.5416107177734375, - 1.5019794702529907, - 1.4850915670394897, - 1.0712661743164062, - 2.4560532569885254, - 1.5126826763153076, - 1.0718353986740112, - 1.8044731616973877, - 1.3616151809692383, - 2.07026743888855, - 1.5584666728973389, - 1.4376858472824097, - 2.3811910152435303, - 1.4815508127212524, - 2.0131523609161377, - 1.4835525751113892, - 1.1790242195129395, - 2.0776233673095703, - 1.378482699394226 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float32 4D input and filter tensors, both negative input tensor and options.bias", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - -0.8073334693908691, - -0.8839999437332153, - -0.7700487375259399, - -0.5646049380302429, - -0.39717939496040344, - -0.10841356962919235, - -0.5519214868545532, - -0.3954172134399414, - -0.057589758187532425, - -0.5144240856170654, - -0.21321901679039001, - -0.950609028339386, - -0.8043696880340576, - -0.8646378517150879, - -0.9607220888137817, - -0.3264438509941101, - -0.06884296983480453, - -0.3203399181365967, - -0.2692728042602539, - -0.3430887758731842, - -0.8989502191543579, - -0.9038569331169128, - -0.6369403004646301, - -0.20070797204971313, - -0.7870702147483826, - -0.3467883765697479, - -0.060042694211006165, - -0.14985208213329315, - -0.6482332348823547, - -0.8934088349342346, - -0.8149284720420837, - -0.6423668265342712, - -0.032736241817474365, - -0.6608918905258179, - -0.5843491554260254, - -0.09921254217624664, - -0.16602523624897003, - -0.9508541822433472, - -0.3051462769508362, - -0.6210587024688721, - -0.5400903820991516, - -0.42009180784225464, - -0.18824540078639984, - -0.3588937520980835, - -0.7114293575286865, - -0.3751019835472107, - -0.7108227610588074, - -0.36050301790237427, - -0.5468712449073792, - -0.032261595129966736 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float32" - } - }, - "conv2dFilter": { - "data": [ - 0.6385681629180908, - 0.07764163613319397, - 0.1291629821062088, - 0.45633891224861145, - 0.40438535809516907, - 0.5943626761436462, - 0.14241264760494232, - 0.9036700129508972 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float32" - }, - "constant": true - }, - "conv2dBias": { - "data": [ - -0.37496936321258545, - -0.4363507032394409 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "padding": [ - 1, - 0, - 0, - 1 - ], - "groups": 2, - "filterLayout": "hwio", - "bias": "conv2dBias" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - -0.8273359537124634, - -0.8421106934547424, - -0.7667726874351501, - -0.6598507165908813, - -0.5355829000473022, - -1.1271283626556396, - -1.3184267282485962, - -1.1077264547348022, - -0.8833579421043396, - -0.8366210460662842, - -0.7370880246162415, - -1.2774468660354614, - -1.0833193063735962, - -0.9646547436714172, - -1.091966152191162, - -0.7757209539413452, - -1.1593523025512695, - -1.1681820154190063, - -1.2089394330978394, - -1.127195954322815, - -1.0845609903335571, - -0.9165211915969849, - -0.9004610180854797, - -0.78448486328125, - -0.9123346209526062, - -0.6967275738716125, - -0.6074546575546265, - -1.1112061738967896, - -1.6289831399917603, - -0.9673595428466797, - -1.5555264949798584, - -0.9207774996757507, - -1.3604848384857178, - -1.8152461051940918, - -0.8530317544937134, - -1.0017603635787964, - -1.4591015577316284, - -1.5813868045806885, - -1.4969244003295898, - -0.8508546352386475, - -1.2204514741897583, - -1.3029515743255615, - -1.0856342315673828, - -1.5996664762496948, - -0.9074177742004395, - -1.5352842807769775, - -1.303133249282837, - -1.3232042789459229, - -1.1430623531341553, - -0.5107623338699341 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "conv2d float16 4D both input and filter non-constant tensors default options", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6123046875, - 0.8857421875, - 0.13671875, - 0.564453125, - 0.896484375, - 0.367919921875, - 0.68115234375, - 0.047943115234375, - 0.33349609375, - 0.1988525390625, - 0.41162109375, - 0.079345703125, - 0.42724609375, - 0.53564453125, - 0.59130859375, - 0.2841796875, - 0.414794921875, - 0.0269012451171875, - 0.362060546875, - 0.99462890625, - 0.07183837890625, - 0.1220703125, - 0.84228515625, - 0.453857421875, - 0.21533203125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.38037109375, - 0.52783203125, - 0.219482421875, - 0.366943359375, - 0.33984375, - 0.419921875, - 0.380615234375, - 0.1944580078125, - 0.56884765625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.5322265625, - 1.357421875, - 1.3642578125, - 1.0712890625, - 1.1259765625, - 1.4716796875, - 1.0791015625, - 1.1552734375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D both input and filter constant tensors default options", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6123046875, - 0.8857421875, - 0.13671875, - 0.564453125, - 0.896484375, - 0.367919921875, - 0.68115234375, - 0.047943115234375, - 0.33349609375, - 0.1988525390625, - 0.41162109375, - 0.079345703125, - 0.42724609375, - 0.53564453125, - 0.59130859375, - 0.2841796875, - 0.414794921875, - 0.0269012451171875, - 0.362060546875, - 0.99462890625, - 0.07183837890625, - 0.1220703125, - 0.84228515625, - 0.453857421875, - 0.21533203125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - }, - "constant": true - }, - "conv2dFilter": { - "data": [ - 0.38037109375, - 0.52783203125, - 0.219482421875, - 0.366943359375, - 0.33984375, - 0.419921875, - 0.380615234375, - 0.1944580078125, - 0.56884765625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.5322265625, - 1.357421875, - 1.3642578125, - 1.0712890625, - 1.1259765625, - 1.4716796875, - 1.0791015625, - 1.1552734375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors default options", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6123046875, - 0.8857421875, - 0.13671875, - 0.564453125, - 0.896484375, - 0.367919921875, - 0.68115234375, - 0.047943115234375, - 0.33349609375, - 0.1988525390625, - 0.41162109375, - 0.079345703125, - 0.42724609375, - 0.53564453125, - 0.59130859375, - 0.2841796875, - 0.414794921875, - 0.0269012451171875, - 0.362060546875, - 0.99462890625, - 0.07183837890625, - 0.1220703125, - 0.84228515625, - 0.453857421875, - 0.21533203125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.38037109375, - 0.52783203125, - 0.219482421875, - 0.366943359375, - 0.33984375, - 0.419921875, - 0.380615234375, - 0.1944580078125, - 0.56884765625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.5322265625, - 1.357421875, - 1.3642578125, - 1.0712890625, - 1.1259765625, - 1.4716796875, - 1.0791015625, - 1.1552734375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.padding", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6123046875, - 0.8857421875, - 0.13671875, - 0.564453125, - 0.896484375, - 0.367919921875, - 0.68115234375, - 0.047943115234375, - 0.33349609375, - 0.1988525390625, - 0.41162109375, - 0.079345703125, - 0.42724609375, - 0.53564453125, - 0.59130859375, - 0.2841796875, - 0.414794921875, - 0.0269012451171875, - 0.362060546875, - 0.99462890625, - 0.07183837890625, - 0.1220703125, - 0.84228515625, - 0.453857421875, - 0.21533203125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.38037109375, - 0.52783203125, - 0.219482421875, - 0.366943359375, - 0.33984375, - 0.419921875, - 0.380615234375, - 0.1944580078125, - 0.56884765625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "padding": [ - 1, - 1, - 1, - 1 - ] - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.0390625, - 0.8828125, - 1.06640625, - 0.814453125, - 0.67724609375, - 1.0537109375, - 1.5322265625, - 1.357421875, - 1.3642578125, - 1.1962890625, - 0.80810546875, - 1.0712890625, - 1.1259765625, - 1.4716796875, - 0.96044921875, - 0.5888671875, - 1.0791015625, - 1.1552734375, - 1.6572265625, - 1.201171875, - 0.316650390625, - 0.75439453125, - 0.77294921875, - 0.97314453125, - 0.90234375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.strides", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6123046875, - 0.8857421875, - 0.13671875, - 0.564453125, - 0.896484375, - 0.367919921875, - 0.68115234375, - 0.047943115234375, - 0.33349609375, - 0.1988525390625, - 0.41162109375, - 0.079345703125, - 0.42724609375, - 0.53564453125, - 0.59130859375, - 0.2841796875, - 0.414794921875, - 0.0269012451171875, - 0.362060546875, - 0.99462890625, - 0.07183837890625, - 0.1220703125, - 0.84228515625, - 0.453857421875, - 0.21533203125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.38037109375, - 0.52783203125, - 0.219482421875, - 0.366943359375, - 0.33984375, - 0.419921875, - 0.380615234375, - 0.1944580078125, - 0.56884765625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "strides": [ - 2, - 2 - ] - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.5322265625, - 1.3642578125, - 1.0791015625, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.dilations", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.6123046875, - 0.8857421875, - 0.13671875, - 0.564453125, - 0.896484375, - 0.367919921875, - 0.68115234375, - 0.047943115234375, - 0.33349609375, - 0.1988525390625, - 0.41162109375, - 0.079345703125, - 0.42724609375, - 0.53564453125, - 0.59130859375, - 0.2841796875, - 0.414794921875, - 0.0269012451171875, - 0.362060546875, - 0.99462890625, - 0.07183837890625, - 0.1220703125, - 0.84228515625, - 0.453857421875, - 0.21533203125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.38037109375, - 0.52783203125, - 0.219482421875, - 0.366943359375, - 0.33984375, - 0.419921875, - 0.380615234375, - 0.1944580078125, - 0.56884765625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "dilations": [ - 2, - 2 - ] - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.3603515625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "depthwise conv2d float16 4D input and filter tensors options.groups= input_channels", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.8447265625, - 0.943359375, - 0.65576171875, - 0.6982421875, - 0.99951171875, - 0.2366943359375, - 0.367431640625, - 0.261962890625, - 0.62548828125, - 0.84033203125, - 0.37841796875, - 0.454345703125, - 0.253173828125, - 0.578125, - 0.54150390625, - 0.37841796875 - ], - "descriptor": { - "shape": [ - 1, - 4, - 2, - 2 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.272216796875, - 0.28125, - 0.8544921875, - 0.1796875, - 0.7763671875, - 0.51416015625, - 0.63720703125, - 0.1280517578125, - 0.83740234375, - 0.57275390625, - 0.09857177734375, - 0.5927734375, - 0.58984375, - 0.96923828125, - 0.2318115234375, - 0.1480712890625 - ], - "descriptor": { - "shape": [ - 4, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "groups": 4 - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.1806640625, - 1.1650390625, - 1.3115234375, - 0.89111328125 - ], - "descriptor": { - "shape": [ - 1, - 4, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.inputLayout='nchw'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.96728515625, - 0.10833740234375, - 0.3203125, - 0.6953125, - 0.50732421875, - 0.0814208984375, - 0.5302734375, - 0.30712890625, - 0.432373046875, - 0.98486328125, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nchw" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.7412109375, - 0.289794921875, - 0.405517578125, - 0.962890625, - 0.91064453125, - 0.4833984375, - 0.488037109375, - 0.8017578125, - 0.62744140625, - 0.448486328125, - 0.87158203125, - 0.693359375, - 1.037109375, - 0.82861328125, - 0.353271484375, - 1.1787109375, - 0.8125, - 0.81640625, - 0.67822265625, - 0.9169921875, - 1.0830078125, - 1.2353515625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.inputLayout='nhwc'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.96728515625, - 0.10833740234375, - 0.3203125, - 0.6953125, - 0.50732421875, - 0.0814208984375, - 0.5302734375, - 0.30712890625, - 0.432373046875, - 0.98486328125, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.962890625, - 0.8017578125, - 0.7412109375, - 0.91064453125, - 0.62744140625, - 0.289794921875, - 0.4833984375, - 0.448486328125, - 0.405517578125, - 0.488037109375, - 0.87158203125, - 0.693359375, - 1.1787109375, - 0.9169921875, - 1.037109375, - 0.8125, - 1.0830078125, - 0.82861328125, - 0.81640625, - 1.2353515625, - 0.353271484375, - 0.67822265625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.filterLayout='oihw'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.96728515625, - 0.10833740234375, - 0.3203125, - 0.6953125, - 0.50732421875, - 0.0814208984375, - 0.5302734375, - 0.30712890625, - 0.432373046875, - 0.98486328125, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "filterLayout": "oihw" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.7412109375, - 0.289794921875, - 0.405517578125, - 0.962890625, - 0.91064453125, - 0.4833984375, - 0.488037109375, - 0.8017578125, - 0.62744140625, - 0.448486328125, - 0.87158203125, - 0.693359375, - 1.037109375, - 0.82861328125, - 0.353271484375, - 1.1787109375, - 0.8125, - 0.81640625, - 0.67822265625, - 0.9169921875, - 1.0830078125, - 1.2353515625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.filterLayout='hwio'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.6953125, - 0.30712890625, - 0.96728515625, - 0.50732421875, - 0.432373046875, - 0.10833740234375, - 0.0814208984375, - 0.98486328125, - 0.3203125, - 0.5302734375, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "filterLayout": "hwio" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.7412109375, - 0.289794921875, - 0.405517578125, - 0.962890625, - 0.91064453125, - 0.4833984375, - 0.488037109375, - 0.8017578125, - 0.62744140625, - 0.448486328125, - 0.87158203125, - 0.693359375, - 1.037109375, - 0.82861328125, - 0.353271484375, - 1.1787109375, - 0.8125, - 0.81640625, - 0.67822265625, - 0.9169921875, - 1.0830078125, - 1.2353515625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.filterLayout='ohwi'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.96728515625, - 0.10833740234375, - 0.3203125, - 0.6953125, - 0.50732421875, - 0.0814208984375, - 0.5302734375, - 0.30712890625, - 0.432373046875, - 0.98486328125, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "filterLayout": "ohwi" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.7412109375, - 0.289794921875, - 0.405517578125, - 0.962890625, - 0.91064453125, - 0.4833984375, - 0.488037109375, - 0.8017578125, - 0.62744140625, - 0.448486328125, - 0.87158203125, - 0.693359375, - 1.037109375, - 0.82861328125, - 0.353271484375, - 1.1787109375, - 0.8125, - 0.81640625, - 0.67822265625, - 0.9169921875, - 1.0830078125, - 1.2353515625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.filterLayout='ihwo'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.6953125, - 0.30712890625, - 0.96728515625, - 0.50732421875, - 0.432373046875, - 0.10833740234375, - 0.0814208984375, - 0.98486328125, - 0.3203125, - 0.5302734375, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "filterLayout": "ihwo" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.7412109375, - 0.289794921875, - 0.405517578125, - 0.962890625, - 0.91064453125, - 0.4833984375, - 0.488037109375, - 0.8017578125, - 0.62744140625, - 0.448486328125, - 0.87158203125, - 0.693359375, - 1.037109375, - 0.82861328125, - 0.353271484375, - 1.1787109375, - 0.8125, - 0.81640625, - 0.67822265625, - 0.9169921875, - 1.0830078125, - 1.2353515625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='oihw'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.96728515625, - 0.10833740234375, - 0.3203125, - 0.6953125, - 0.50732421875, - 0.0814208984375, - 0.5302734375, - 0.30712890625, - 0.432373046875, - 0.98486328125, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "oihw" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.962890625, - 0.8017578125, - 0.7412109375, - 0.91064453125, - 0.62744140625, - 0.289794921875, - 0.4833984375, - 0.448486328125, - 0.405517578125, - 0.488037109375, - 0.87158203125, - 0.693359375, - 1.1787109375, - 0.9169921875, - 1.037109375, - 0.8125, - 1.0830078125, - 0.82861328125, - 0.81640625, - 1.2353515625, - 0.353271484375, - 0.67822265625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='hwio'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.6953125, - 0.30712890625, - 0.96728515625, - 0.50732421875, - 0.432373046875, - 0.10833740234375, - 0.0814208984375, - 0.98486328125, - 0.3203125, - 0.5302734375, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "hwio" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.962890625, - 0.8017578125, - 0.7412109375, - 0.91064453125, - 0.62744140625, - 0.289794921875, - 0.4833984375, - 0.448486328125, - 0.405517578125, - 0.488037109375, - 0.87158203125, - 0.693359375, - 1.1787109375, - 0.9169921875, - 1.037109375, - 0.8125, - 1.0830078125, - 0.82861328125, - 0.81640625, - 1.2353515625, - 0.353271484375, - 0.67822265625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ohwi'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.96728515625, - 0.10833740234375, - 0.3203125, - 0.6953125, - 0.50732421875, - 0.0814208984375, - 0.5302734375, - 0.30712890625, - 0.432373046875, - 0.98486328125, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "ohwi" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.962890625, - 0.8017578125, - 0.7412109375, - 0.91064453125, - 0.62744140625, - 0.289794921875, - 0.4833984375, - 0.448486328125, - 0.405517578125, - 0.488037109375, - 0.87158203125, - 0.693359375, - 1.1787109375, - 0.9169921875, - 1.037109375, - 0.8125, - 1.0830078125, - 0.82861328125, - 0.81640625, - 1.2353515625, - 0.353271484375, - 0.67822265625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors options.inputLayout='nhwc' and options.filterLayout='ihwo'", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.6953125, - 0.30712890625, - 0.96728515625, - 0.50732421875, - 0.432373046875, - 0.10833740234375, - 0.0814208984375, - 0.98486328125, - 0.3203125, - 0.5302734375, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "ihwo" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.884765625, - 0.962890625, - 0.8017578125, - 0.7412109375, - 0.91064453125, - 0.62744140625, - 0.289794921875, - 0.4833984375, - 0.448486328125, - 0.405517578125, - 0.488037109375, - 0.87158203125, - 0.693359375, - 1.1787109375, - 0.9169921875, - 1.037109375, - 0.8125, - 1.0830078125, - 0.82861328125, - 0.81640625, - 1.2353515625, - 0.353271484375, - 0.67822265625, - 0.98095703125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors 1D options.bias", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.7529296875, - 0.751953125, - 0.5947265625, - 0.21630859375, - 0.07586669921875, - 0.151123046875, - 0.12127685546875, - 0.53662109375, - 0.59375, - 0.9912109375, - 0.363037109375, - 0.92919921875, - 0.227294921875, - 0.54150390625, - 0.08447265625, - 0.6767578125, - 0.619140625, - 0.392822265625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.1453857421875, - 0.96728515625, - 0.10833740234375, - 0.3203125, - 0.6953125, - 0.50732421875, - 0.0814208984375, - 0.5302734375, - 0.30712890625, - 0.432373046875, - 0.98486328125, - 0.42822265625 - ], - "descriptor": { - "shape": [ - 3, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - }, - "conv2dBias": { - "data": [ - 0.8134765625, - 0.83935546875, - 0.494384765625 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "bias": "conv2dBias" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 1.6982421875, - 1.5546875, - 1.103515625, - 1.21875, - 1.8017578125, - 1.75, - 1.322265625, - 1.3271484375, - 1.2958984375, - 1.1220703125, - 0.94287109375, - 1.3662109375, - 1.5068359375, - 1.8505859375, - 1.6416015625, - 1.1669921875, - 2.017578125, - 1.65234375, - 1.6552734375, - 1.517578125, - 1.4111328125, - 1.5771484375, - 1.7294921875, - 1.4755859375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors all options", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - 0.0997314453125, - 0.53759765625, - 0.3056640625, - 0.72216796875, - 0.5068359375, - 0.32373046875, - 0.8720703125, - 0.2098388671875, - 0.50537109375, - 0.0268707275390625, - 0.5498046875, - 0.0643310546875, - 0.156005859375, - 0.11968994140625, - 0.0361328125, - 0.414306640625, - 0.24169921875, - 0.67724609375, - 0.208740234375, - 0.10980224609375, - 0.7451171875, - 0.744140625, - 0.787109375, - 0.5888671875, - 0.11016845703125, - 0.904296875, - 0.11724853515625, - 0.85107421875, - 0.424560546875, - 0.0253753662109375, - 0.74755859375, - 0.464599609375, - 0.0304107666015625, - 0.42431640625, - 0.384765625, - 0.75830078125, - 0.990234375, - 0.03717041015625, - 0.014495849609375, - 0.826171875, - 0.210693359375, - 0.65673828125, - 0.258544921875, - 0.480224609375, - 0.97021484375, - 0.296875, - 0.75244140625, - 0.029632568359375, - 0.09027099609375, - 0.7783203125 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.638671875, - 0.07763671875, - 0.129150390625, - 0.456298828125, - 0.404296875, - 0.59423828125, - 0.1424560546875, - 0.90380859375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float16" - }, - "constant": true - }, - "conv2dBias": { - "data": [ - 0.54248046875, - 0.8408203125 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "padding": [ - 1, - 0, - 0, - 1 - ], - "strides": [ - 1, - 1 - ], - "dilations": [ - 1, - 1 - ], - "groups": 2, - "inputLayout": "nchw", - "filterLayout": "hwio", - "bias": "conv2dBias" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - 0.6591796875, - 0.80322265625, - 0.76904296875, - 0.90673828125, - 0.74755859375, - 0.9306640625, - 1.3076171875, - 0.98779296875, - 1.27734375, - 0.876953125, - 1.09375, - 1.1748046875, - 0.82177734375, - 0.92236328125, - 0.57421875, - 1.103515625, - 0.7978515625, - 0.9609375, - 0.7236328125, - 0.60986328125, - 1.2451171875, - 1.197265625, - 1.404296875, - 0.94384765625, - 0.6572265625, - 1.484375, - 1.6796875, - 1.73046875, - 1.1162109375, - 0.85595703125, - 1.8291015625, - 1.5419921875, - 1.501953125, - 1.4853515625, - 1.0712890625, - 2.45703125, - 1.5126953125, - 1.072265625, - 1.8046875, - 1.361328125, - 2.0703125, - 1.55859375, - 1.4384765625, - 2.380859375, - 1.4814453125, - 2.013671875, - 1.4833984375, - 1.1796875, - 2.078125, - 1.37890625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "conv2d float16 4D input and filter tensors, both negative input tensor and options.bias", - "graph": { - "inputs": { - "conv2dInput": { - "data": [ - -0.80712890625, - -0.8837890625, - -0.77001953125, - -0.564453125, - -0.397216796875, - -0.1083984375, - -0.5517578125, - -0.3955078125, - -0.057586669921875, - -0.5146484375, - -0.2132568359375, - -0.95068359375, - -0.80419921875, - -0.86474609375, - -0.9609375, - -0.326416015625, - -0.06884765625, - -0.3203125, - -0.269287109375, - -0.343017578125, - -0.89892578125, - -0.90380859375, - -0.63671875, - -0.20068359375, - -0.787109375, - -0.3466796875, - -0.060028076171875, - -0.14990234375, - -0.6484375, - -0.8935546875, - -0.81494140625, - -0.642578125, - -0.032745361328125, - -0.6611328125, - -0.58447265625, - -0.09918212890625, - -0.166015625, - -0.95068359375, - -0.30517578125, - -0.62109375, - -0.5400390625, - -0.420166015625, - -0.188232421875, - -0.35888671875, - -0.71142578125, - -0.375, - -0.7109375, - -0.360595703125, - -0.546875, - -0.032257080078125 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float16" - } - }, - "conv2dFilter": { - "data": [ - 0.638671875, - 0.07763671875, - 0.129150390625, - 0.456298828125, - 0.404296875, - 0.59423828125, - 0.1424560546875, - 0.90380859375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2 - ], - "dataType": "float16" - }, - "constant": true - }, - "conv2dBias": { - "data": [ - -0.375, - -0.436279296875 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "conv2d", - "arguments": [ - { - "input": "conv2dInput" - }, - { - "filter": "conv2dFilter" - }, - { - "options": { - "padding": [ - 1, - 0, - 0, - 1 - ], - "groups": 2, - "filterLayout": "hwio", - "bias": "conv2dBias" - } - } - ], - "outputs": "conv2dOutput" - } - ], - "expectedOutputs": { - "conv2dOutput": { - "data": [ - -0.8271484375, - -0.841796875, - -0.7666015625, - -0.65966796875, - -0.53564453125, - -1.126953125, - -1.318359375, - -1.107421875, - -0.88330078125, - -0.8369140625, - -0.7373046875, - -1.27734375, - -1.0830078125, - -0.96484375, - -1.091796875, - -0.77587890625, - -1.1591796875, - -1.16796875, - -1.208984375, - -1.126953125, - -1.0849609375, - -0.91650390625, - -0.900390625, - -0.78466796875, - -0.912109375, - -0.69677734375, - -0.607421875, - -1.111328125, - -1.62890625, - -0.96728515625, - -1.5556640625, - -0.9208984375, - -1.3603515625, - -1.8154296875, - -0.85302734375, - -1.001953125, - -1.458984375, - -1.5810546875, - -1.4970703125, - -0.8505859375, - -1.220703125, - -1.302734375, - -1.0859375, - -1.599609375, - -0.9072265625, - -1.53515625, - -1.302734375, - -1.3232421875, - -1.142578125, - -0.5107421875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/conv_transpose2d.json b/tests/wpt_data/conformance/conv_transpose2d.json deleted file mode 100644 index f7b95fb..0000000 --- a/tests/wpt_data/conformance/conv_transpose2d.json +++ /dev/null @@ -1,6077 +0,0 @@ -{ - "operation": "conv_transpose2d", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/conv_transpose2d.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "convTranspose2d float32 4D both input and filter non-constant tensors default options", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.5872158408164978, - 0.6077792048454285, - 0.017289165407419205, - 0.2614607512950897 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.3292713165283203, - 0.5866857171058655, - 0.29701370000839233, - 0.0033378428779542446 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.1933533400297165, - 0.5446354150772095, - 0.3565753698348999, - 0.18010397255420685, - 0.2787136137485504, - 0.15542395412921906, - 0.0051351189613342285, - 0.07771513611078262, - 0.0008727149106562138 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D both input and filter constant tensors default options", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.5872158408164978, - 0.6077792048454285, - 0.017289165407419205, - 0.2614607512950897 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - }, - "convTranspose2dFilter": { - "data": [ - 0.3292713165283203, - 0.5866857171058655, - 0.29701370000839233, - 0.0033378428779542446 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.1933533400297165, - 0.5446354150772095, - 0.3565753698348999, - 0.18010397255420685, - 0.2787136137485504, - 0.15542395412921906, - 0.0051351189613342285, - 0.07771513611078262, - 0.0008727149106562138 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors default options", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.5872158408164978, - 0.6077792048454285, - 0.017289165407419205, - 0.2614607512950897 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.3292713165283203, - 0.5866857171058655, - 0.29701370000839233, - 0.0033378428779542446 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.1933533400297165, - 0.5446354150772095, - 0.3565753698348999, - 0.18010397255420685, - 0.2787136137485504, - 0.15542395412921906, - 0.0051351189613342285, - 0.07771513611078262, - 0.0008727149106562138 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.groups", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.8161798119544983, - 0.5442776083946228, - 0.7910669445991516, - 0.36564111709594727, - 0.25429198145866394, - 0.20815767347812653, - 0.7023073434829712, - 0.5734469890594482 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 2 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.09232201427221298, - 0.31896016001701355, - 0.5445202589035034, - 0.6582807898521423, - 0.9634373188018799, - 0.012118860147893429, - 0.9230011701583862, - 0.4781944155693054 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "groups": 2 - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.07535136491060257, - 0.3105776607990265, - 0.1736028790473938, - 0.5174593329429626, - 1.1197212934494019, - 0.4749124348163605, - 0.4307519793510437, - 0.7198431491851807, - 0.24069452285766602, - 0.2449943870306015, - 0.20362859964370728, - 0.002522633643820882, - 0.9113409519195557, - 0.8747221827507019, - 0.10648936033248901, - 0.6482304930686951, - 0.865131676197052, - 0.2742191553115845 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.groups=2 options.strides=[2, 2]", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.8161798119544983, - 0.5442776083946228, - 0.7910669445991516, - 0.36564111709594727, - 0.25429198145866394, - 0.20815767347812653, - 0.7023073434829712, - 0.5734469890594482 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 2 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.09232201427221298, - 0.31896016001701355, - 0.5445202589035034, - 0.6582807898521423, - 0.9634373188018799, - 0.012118860147893429, - 0.9230011701583862, - 0.4781944155693054 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 2, - 2 - ], - "groups": 2 - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.07535136491060257, - 0.26032882928848267, - 0.050248805433511734, - 0.1736028790473938, - 0.44442644715309143, - 0.537275493144989, - 0.29637017846107483, - 0.3582874834537506, - 0.07303289324045181, - 0.2523188292980194, - 0.03375672549009323, - 0.11662495136260986, - 0.4307519793510437, - 0.5207441449165344, - 0.19909898936748505, - 0.24069452285766602, - 0.2449943870306015, - 0.0030817289371043444, - 0.20054687559604645, - 0.002522633643820882, - 0.23471179604530334, - 0.12160100787878036, - 0.19212977588176727, - 0.09953983873128891, - 0.6766291260719299, - 0.008511164225637913, - 0.5524802207946777, - 0.00694952392950654, - 0.6482304930686951, - 0.3358394503593445, - 0.5292922258377075, - 0.2742191553115845 - ], - "descriptor": { - "shape": [ - 1, - 2, - 4, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.padding", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.5872158408164978, - 0.6077792048454285, - 0.017289165407419205, - 0.2614607512950897 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.3292713165283203, - 0.5866857171058655, - 0.29701370000839233, - 0.0033378428779542446 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "padding": [ - 1, - 1, - 1, - 1 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.2787136137485504 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d options.padding is the same upper padding", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "outputSizes": [ - 6, - 6 - ], - "groups": 1, - "strides": [ - 2, - 2 - ], - "dilations": [ - 1, - 1 - ], - "padding": [ - 0, - 1, - 0, - 1 - ], - "filterLayout": "ohwi", - "inputLayout": "nhwc" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.5, - 0.5, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 1, - 1, - 2, - 2, - 1, - 1, - 2, - 2, - 1, - 1, - 0.5, - 0.5, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 1, - 1, - 2, - 2, - 1, - 1, - 2, - 2, - 1, - 1, - 0.5, - 0.5, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5 - ], - "descriptor": { - "shape": [ - 1, - 6, - 6, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.strides", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 3, - 2 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.03513447195291519, - 0.6485382318496704, - 0.4458966553211212, - 1.015426516532898, - 0.4092629551887512, - 0.4157154858112335, - 0.0469902828335762, - 0.0066622416488826275, - 0.6519761085510254, - 0.08455146849155426, - 1.2531912326812744, - 0.07760494202375412, - 0.6478374600410461, - 0.018416915088891983, - 0.04900681599974632, - 0.27412328124046326, - 0.6219525337219238, - 0.7271442413330078, - 0.5708546042442322, - 0.4705001711845398, - 0.3327140808105469, - 0.24207575619220734, - 0.5793426632881165, - 0.24261142313480377, - 1.0615012645721436, - 0.593023955821991, - 0.6023737192153931, - 0.32376202940940857, - 0.04590269923210144, - 0.7076690793037415, - 0.0460042729973793, - 1.177173137664795, - 0.11244992911815643, - 0.9387195110321045, - 0.12689214944839478, - 0.3376559019088745, - 0.40547001361846924, - 0.3384030759334564, - 0.5897663235664368, - 0.8271709680557251, - 0.6817569732666016, - 0.08246752619743347, - 0.06000163406133652, - 0.8564596176147461, - 0.5787978172302246, - 1.1360399723052979, - 0.39879822731018066, - 0.4050857424736023, - 0.0802486464381218, - 0.011377583257853985, - 0.8690866827964783, - 0.1097523421049118, - 1.4495694637298584, - 0.0756206065416336, - 0.6312723755836487, - 0.03145187348127365, - 0.08369242399930954, - 0.37237587571144104, - 0.8073278069496155, - 0.8744456768035889, - 0.556257963180542, - 0.45846959948539734, - 0.05494653806090355, - 0.0034586030524224043, - 0.7153855562210083, - 0.04389362782239914, - 0.869132936000824, - 0.04028744250535965, - 0.21026825904846191, - 0.04203145205974579, - 0.02203426882624626, - 0.5411697030067444, - 0.2796400785446167, - 0.5878635048866272, - 0.25666558742523193, - 0.0901883915066719, - 0.015911730006337166, - 0.023744819685816765, - 0.21005792915821075, - 0.30134889483451843, - 0.2883978486061096, - 0.27659088373184204, - 0.09458412230014801, - 0.3785804808139801, - 0.02382970042526722, - 0.5037901997566223, - 0.0238824300467968, - 1.0520728826522827, - 0.05837669596076012, - 0.3046796917915344, - 0.2895958125591278, - 0.15181563794612885, - 0.3435823321342468, - 0.15215156972408295, - 0.7628997564315796, - 0.37190964818000793, - 0.13068340718746185, - 0.1096314787864685, - 0.16360129415988922, - 0.16581982374191284, - 0.16396330296993256, - 0.3246387541294098, - 0.400781512260437, - 0.13705284893512726, - 0.09383610635995865, - 0.00590650225058198, - 0.9360047578811646, - 0.05697628855705261, - 0.9210482239723206, - 0.03925730288028717, - 0.20489174127578735, - 0.07178010046482086, - 0.03762948885560036, - 0.7056396007537842, - 0.36298784613609314, - 0.6046316623687744, - 0.2501027286052704, - 0.08788229525089264, - 0.027173593640327454, - 0.04055071249604225, - 0.27599334716796875, - 0.3911670744419098, - 0.3143731355667114, - 0.26951852440834045, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 2, - 9, - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.dilations", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.3194596767425537, - 0.9762163758277893, - 0.4131408631801605, - 0.47982943058013916, - 0.76741623878479, - 0.9083173871040344, - 0.6205142140388489, - 0.6580719947814941, - 0.6553052067756653 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.6835425496101379, - 0.9641214609146118, - 0.8272836804389954, - 0.5771222710609436 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "dilations": [ - 2, - 2 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.21836428344249725, - 0.6672854423522949, - 0.590397298336029, - 0.9411911368370056, - 0.39831796288490295, - 0.3279838263988495, - 0.5245616436004639, - 1.0834873914718628, - 0.7398824691772461, - 0.8757283091545105, - 0.6884316205978394, - 1.2574280500411987, - 1.5723320245742798, - 1.1978574991226196, - 0.8702266216278076, - 0.39695504307746887, - 0.6348709464073181, - 1.0283564329147339, - 0.44289299845695496, - 0.5242102146148682, - 0.5133413076400757, - 0.5444121956825256, - 0.9002358913421631, - 0.37978801131248474, - 0.3781912326812744 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.outputPadding", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 3, - 2 - ], - "outputPadding": [ - 1, - 1 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.03513447195291519, - 0.6485382318496704, - 0.4458966553211212, - 1.015426516532898, - 0.4092629551887512, - 0.4157154858112335, - 0, - 0.0469902828335762, - 0.0066622416488826275, - 0.6519761085510254, - 0.08455146849155426, - 1.2531912326812744, - 0.07760494202375412, - 0.6478374600410461, - 0, - 0.018416915088891983, - 0.04900681599974632, - 0.27412328124046326, - 0.6219525337219238, - 0.7271442413330078, - 0.5708546042442322, - 0.4705001711845398, - 0, - 0.3327140808105469, - 0.24207575619220734, - 0.5793426632881165, - 0.24261142313480377, - 1.0615012645721436, - 0.593023955821991, - 0.6023737192153931, - 0, - 0.32376202940940857, - 0.04590269923210144, - 0.7076690793037415, - 0.0460042729973793, - 1.177173137664795, - 0.11244992911815643, - 0.9387195110321045, - 0, - 0.12689214944839478, - 0.3376559019088745, - 0.40547001361846924, - 0.3384030759334564, - 0.5897663235664368, - 0.8271709680557251, - 0.6817569732666016, - 0, - 0.08246752619743347, - 0.06000163406133652, - 0.8564596176147461, - 0.5787978172302246, - 1.1360399723052979, - 0.39879822731018066, - 0.4050857424736023, - 0, - 0.0802486464381218, - 0.011377583257853985, - 0.8690866827964783, - 0.1097523421049118, - 1.4495694637298584, - 0.0756206065416336, - 0.6312723755836487, - 0, - 0.03145187348127365, - 0.08369242399930954, - 0.37237587571144104, - 0.8073278069496155, - 0.8744456768035889, - 0.556257963180542, - 0.45846959948539734, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.05494653806090355, - 0.0034586030524224043, - 0.7153855562210083, - 0.04389362782239914, - 0.869132936000824, - 0.04028744250535965, - 0.21026825904846191, - 0, - 0.04203145205974579, - 0.02203426882624626, - 0.5411697030067444, - 0.2796400785446167, - 0.5878635048866272, - 0.25666558742523193, - 0.0901883915066719, - 0, - 0.015911730006337166, - 0.023744819685816765, - 0.21005792915821075, - 0.30134889483451843, - 0.2883978486061096, - 0.27659088373184204, - 0.09458412230014801, - 0, - 0.3785804808139801, - 0.02382970042526722, - 0.5037901997566223, - 0.0238824300467968, - 1.0520728826522827, - 0.05837669596076012, - 0.3046796917915344, - 0, - 0.2895958125591278, - 0.15181563794612885, - 0.3435823321342468, - 0.15215156972408295, - 0.7628997564315796, - 0.37190964818000793, - 0.13068340718746185, - 0, - 0.1096314787864685, - 0.16360129415988922, - 0.16581982374191284, - 0.16396330296993256, - 0.3246387541294098, - 0.400781512260437, - 0.13705284893512726, - 0, - 0.09383610635995865, - 0.00590650225058198, - 0.9360047578811646, - 0.05697628855705261, - 0.9210482239723206, - 0.03925730288028717, - 0.20489174127578735, - 0, - 0.07178010046482086, - 0.03762948885560036, - 0.7056396007537842, - 0.36298784613609314, - 0.6046316623687744, - 0.2501027286052704, - 0.08788229525089264, - 0, - 0.027173593640327454, - 0.04055071249604225, - 0.27599334716796875, - 0.3911670744419098, - 0.3143731355667114, - 0.26951852440834045, - 0.09216563403606415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 10, - 8 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.outputSizes", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 3, - 2 - ], - "outputSizes": [ - 10, - 8 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.03513447195291519, - 0.6485382318496704, - 0.4458966553211212, - 1.015426516532898, - 0.4092629551887512, - 0.4157154858112335, - 0, - 0.0469902828335762, - 0.0066622416488826275, - 0.6519761085510254, - 0.08455146849155426, - 1.2531912326812744, - 0.07760494202375412, - 0.6478374600410461, - 0, - 0.018416915088891983, - 0.04900681599974632, - 0.27412328124046326, - 0.6219525337219238, - 0.7271442413330078, - 0.5708546042442322, - 0.4705001711845398, - 0, - 0.3327140808105469, - 0.24207575619220734, - 0.5793426632881165, - 0.24261142313480377, - 1.0615012645721436, - 0.593023955821991, - 0.6023737192153931, - 0, - 0.32376202940940857, - 0.04590269923210144, - 0.7076690793037415, - 0.0460042729973793, - 1.177173137664795, - 0.11244992911815643, - 0.9387195110321045, - 0, - 0.12689214944839478, - 0.3376559019088745, - 0.40547001361846924, - 0.3384030759334564, - 0.5897663235664368, - 0.8271709680557251, - 0.6817569732666016, - 0, - 0.08246752619743347, - 0.06000163406133652, - 0.8564596176147461, - 0.5787978172302246, - 1.1360399723052979, - 0.39879822731018066, - 0.4050857424736023, - 0, - 0.0802486464381218, - 0.011377583257853985, - 0.8690866827964783, - 0.1097523421049118, - 1.4495694637298584, - 0.0756206065416336, - 0.6312723755836487, - 0, - 0.03145187348127365, - 0.08369242399930954, - 0.37237587571144104, - 0.8073278069496155, - 0.8744456768035889, - 0.556257963180542, - 0.45846959948539734, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.05494653806090355, - 0.0034586030524224043, - 0.7153855562210083, - 0.04389362782239914, - 0.869132936000824, - 0.04028744250535965, - 0.21026825904846191, - 0, - 0.04203145205974579, - 0.02203426882624626, - 0.5411697030067444, - 0.2796400785446167, - 0.5878635048866272, - 0.25666558742523193, - 0.0901883915066719, - 0, - 0.015911730006337166, - 0.023744819685816765, - 0.21005792915821075, - 0.30134889483451843, - 0.2883978486061096, - 0.27659088373184204, - 0.09458412230014801, - 0, - 0.3785804808139801, - 0.02382970042526722, - 0.5037901997566223, - 0.0238824300467968, - 1.0520728826522827, - 0.05837669596076012, - 0.3046796917915344, - 0, - 0.2895958125591278, - 0.15181563794612885, - 0.3435823321342468, - 0.15215156972408295, - 0.7628997564315796, - 0.37190964818000793, - 0.13068340718746185, - 0, - 0.1096314787864685, - 0.16360129415988922, - 0.16581982374191284, - 0.16396330296993256, - 0.3246387541294098, - 0.400781512260437, - 0.13705284893512726, - 0, - 0.09383610635995865, - 0.00590650225058198, - 0.9360047578811646, - 0.05697628855705261, - 0.9210482239723206, - 0.03925730288028717, - 0.20489174127578735, - 0, - 0.07178010046482086, - 0.03762948885560036, - 0.7056396007537842, - 0.36298784613609314, - 0.6046316623687744, - 0.2501027286052704, - 0.08788229525089264, - 0, - 0.027173593640327454, - 0.04055071249604225, - 0.27599334716796875, - 0.3911670744419098, - 0.3143731355667114, - 0.26951852440834045, - 0.09216563403606415, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 10, - 8 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.inputLayout=nchw", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nchw" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.6479843258857727, - 1.0440847873687744, - 0.8621897101402283, - 0.4157154858112335, - 0.3797043561935425, - 1.1785486936569214, - 1.9911006689071655, - 1.6228916645050049, - 1.2502111196517944, - 0.4246464669704437, - 1.5086332559585571, - 3.287064790725708, - 2.5666797161102295, - 1.8143054246902466, - 0.20714078843593597, - 1.2503143548965454, - 1.6656538248062134, - 2.097904920578003, - 1.313029408454895, - 0.03145187348127365, - 0.38708874583244324, - 1.0853508710861206, - 1.2216601371765137, - 0.45846959948539734, - 0.05494653806090355, - 0.7007930278778076, - 0.7019880414009094, - 0.26937708258628845, - 0.21026825904846191, - 0.4206119179725647, - 0.9587093591690063, - 1.8526650667190552, - 0.5379507541656494, - 0.39486807584762573, - 0.3993436396121979, - 1.5788191556930542, - 2.121230363845825, - 1.141642689704895, - 0.4301592707633972, - 0.18141157925128937, - 1.0035220384597778, - 1.3417718410491943, - 0.8345021605491638, - 0.2249351441860199, - 0.027173593640327454, - 0.3026771545410156, - 0.5856420397758484, - 0.40328359603881836, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.inputLayout=nhwc", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nhwc" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.05494653806090355, - 0.6479843258857727, - 0.7007930278778076, - 1.0440847873687744, - 0.7019880414009094, - 0.8621897101402283, - 0.26937708258628845, - 0.4157154858112335, - 0.21026825904846191, - 0.3797043561935425, - 0.4206119179725647, - 1.1785486936569214, - 0.9587093591690063, - 1.9911006689071655, - 1.8526650667190552, - 1.6228916645050049, - 0.5379507541656494, - 1.2502111196517944, - 0.39486807584762573, - 0.4246464669704437, - 0.3993436396121979, - 1.5086332559585571, - 1.5788191556930542, - 3.287064790725708, - 2.121230363845825, - 2.5666797161102295, - 1.141642689704895, - 1.8143054246902466, - 0.4301592707633972, - 0.20714078843593597, - 0.18141157925128937, - 1.2503143548965454, - 1.0035220384597778, - 1.6656538248062134, - 1.3417718410491943, - 2.097904920578003, - 0.8345021605491638, - 1.313029408454895, - 0.2249351441860199, - 0.03145187348127365, - 0.027173593640327454, - 0.38708874583244324, - 0.3026771545410156, - 1.0853508710861206, - 0.5856420397758484, - 1.2216601371765137, - 0.40328359603881836, - 0.45846959948539734, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 5, - 5, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.filterLayout=iohw", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "filterLayout": "iohw" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.6479843258857727, - 1.0440847873687744, - 0.8621897101402283, - 0.4157154858112335, - 0.3797043561935425, - 1.1785486936569214, - 1.9911006689071655, - 1.6228916645050049, - 1.2502111196517944, - 0.4246464669704437, - 1.5086332559585571, - 3.287064790725708, - 2.5666797161102295, - 1.8143054246902466, - 0.20714078843593597, - 1.2503143548965454, - 1.6656538248062134, - 2.097904920578003, - 1.313029408454895, - 0.03145187348127365, - 0.38708874583244324, - 1.0853508710861206, - 1.2216601371765137, - 0.45846959948539734, - 0.05494653806090355, - 0.7007930278778076, - 0.7019880414009094, - 0.26937708258628845, - 0.21026825904846191, - 0.4206119179725647, - 0.9587093591690063, - 1.8526650667190552, - 0.5379507541656494, - 0.39486807584762573, - 0.3993436396121979, - 1.5788191556930542, - 2.121230363845825, - 1.141642689704895, - 0.4301592707633972, - 0.18141157925128937, - 1.0035220384597778, - 1.3417718410491943, - 0.8345021605491638, - 0.2249351441860199, - 0.027173593640327454, - 0.3026771545410156, - 0.5856420397758484, - 0.40328359603881836, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.filterLayout=hwoi", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.9801966547966003, - 0.6267672777175903, - 0.06169835478067398, - 0.6366490125656128, - 0.3220160901546478, - 0.8382642269134521, - 0.7498031854629517, - 0.11884837597608566, - 0.3930714726448059, - 0.9921330213546753, - 0.13811933994293213, - 0.3285411298274994, - 0.28385090827941895, - 0.8742373585700989, - 0.4235861301422119, - 0.7205492258071899, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 3, - 3, - 2, - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "filterLayout": "hwoi" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.6479843258857727, - 1.0440847873687744, - 0.8621897101402283, - 0.4157154858112335, - 0.3797043561935425, - 1.1785486936569214, - 1.9911006689071655, - 1.6228916645050049, - 1.2502111196517944, - 0.4246464669704437, - 1.5086332559585571, - 3.287064790725708, - 2.5666797161102295, - 1.8143054246902466, - 0.20714078843593597, - 1.2503143548965454, - 1.6656538248062134, - 2.097904920578003, - 1.313029408454895, - 0.03145187348127365, - 0.38708874583244324, - 1.0853508710861206, - 1.2216601371765137, - 0.45846959948539734, - 0.05494653806090355, - 0.7007930278778076, - 0.7019880414009094, - 0.26937708258628845, - 0.21026825904846191, - 0.4206119179725647, - 0.9587093591690063, - 1.8526650667190552, - 0.5379507541656494, - 0.39486807584762573, - 0.3993436396121979, - 1.5788191556930542, - 2.121230363845825, - 1.141642689704895, - 0.4301592707633972, - 0.18141157925128937, - 1.0035220384597778, - 1.3417718410491943, - 0.8345021605491638, - 0.2249351441860199, - 0.027173593640327454, - 0.3026771545410156, - 0.5856420397758484, - 0.40328359603881836, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.filterLayout=ohwi", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "filterLayout": "ohwi" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.6479843258857727, - 1.0440847873687744, - 0.8621897101402283, - 0.4157154858112335, - 0.3797043561935425, - 1.1785486936569214, - 1.9911006689071655, - 1.6228916645050049, - 1.2502111196517944, - 0.4246464669704437, - 1.5086332559585571, - 3.287064790725708, - 2.5666797161102295, - 1.8143054246902466, - 0.20714078843593597, - 1.2503143548965454, - 1.6656538248062134, - 2.097904920578003, - 1.313029408454895, - 0.03145187348127365, - 0.38708874583244324, - 1.0853508710861206, - 1.2216601371765137, - 0.45846959948539734, - 0.05494653806090355, - 0.7007930278778076, - 0.7019880414009094, - 0.26937708258628845, - 0.21026825904846191, - 0.4206119179725647, - 0.9587093591690063, - 1.8526650667190552, - 0.5379507541656494, - 0.39486807584762573, - 0.3993436396121979, - 1.5788191556930542, - 2.121230363845825, - 1.141642689704895, - 0.4301592707633972, - 0.18141157925128937, - 1.0035220384597778, - 1.3417718410491943, - 0.8345021605491638, - 0.2249351441860199, - 0.027173593640327454, - 0.3026771545410156, - 0.5856420397758484, - 0.40328359603881836, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.inputLayout=nhwc options.filterLayout=iohw", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "iohw" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.05494653806090355, - 0.6479843258857727, - 0.7007930278778076, - 1.0440847873687744, - 0.7019880414009094, - 0.8621897101402283, - 0.26937708258628845, - 0.4157154858112335, - 0.21026825904846191, - 0.3797043561935425, - 0.4206119179725647, - 1.1785486936569214, - 0.9587093591690063, - 1.9911006689071655, - 1.8526650667190552, - 1.6228916645050049, - 0.5379507541656494, - 1.2502111196517944, - 0.39486807584762573, - 0.4246464669704437, - 0.3993436396121979, - 1.5086332559585571, - 1.5788191556930542, - 3.287064790725708, - 2.121230363845825, - 2.5666797161102295, - 1.141642689704895, - 1.8143054246902466, - 0.4301592707633972, - 0.20714078843593597, - 0.18141157925128937, - 1.2503143548965454, - 1.0035220384597778, - 1.6656538248062134, - 1.3417718410491943, - 2.097904920578003, - 0.8345021605491638, - 1.313029408454895, - 0.2249351441860199, - 0.03145187348127365, - 0.027173593640327454, - 0.38708874583244324, - 0.3026771545410156, - 1.0853508710861206, - 0.5856420397758484, - 1.2216601371765137, - 0.40328359603881836, - 0.45846959948539734, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 5, - 5, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.inputLayout=nhwc options.filterLayout=hwoi", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.9801966547966003, - 0.6267672777175903, - 0.06169835478067398, - 0.6366490125656128, - 0.3220160901546478, - 0.8382642269134521, - 0.7498031854629517, - 0.11884837597608566, - 0.3930714726448059, - 0.9921330213546753, - 0.13811933994293213, - 0.3285411298274994, - 0.28385090827941895, - 0.8742373585700989, - 0.4235861301422119, - 0.7205492258071899, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 3, - 3, - 2, - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "hwoi" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.05494653806090355, - 0.6479843258857727, - 0.7007930278778076, - 1.0440847873687744, - 0.7019880414009094, - 0.8621897101402283, - 0.26937708258628845, - 0.4157154858112335, - 0.21026825904846191, - 0.3797043561935425, - 0.4206119179725647, - 1.1785486936569214, - 0.9587093591690063, - 1.9911006689071655, - 1.8526650667190552, - 1.6228916645050049, - 0.5379507541656494, - 1.2502111196517944, - 0.39486807584762573, - 0.4246464669704437, - 0.3993436396121979, - 1.5086332559585571, - 1.5788191556930542, - 3.287064790725708, - 2.121230363845825, - 2.5666797161102295, - 1.141642689704895, - 1.8143054246902466, - 0.4301592707633972, - 0.20714078843593597, - 0.18141157925128937, - 1.2503143548965454, - 1.0035220384597778, - 1.6656538248062134, - 1.3417718410491943, - 2.097904920578003, - 0.8345021605491638, - 1.313029408454895, - 0.2249351441860199, - 0.03145187348127365, - 0.027173593640327454, - 0.38708874583244324, - 0.3026771545410156, - 1.0853508710861206, - 0.5856420397758484, - 1.2216601371765137, - 0.40328359603881836, - 0.45846959948539734, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 5, - 5, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.inputLayout=nhwc options.filterLayout=ohwi", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.05605664849281311, - 0.7114229798316956, - 0.6529743671417236, - 0.38622909784317017, - 0.3870837390422821, - 0.9461629390716553, - 0.09573192149400711, - 0.9234652519226074, - 0.636277973651886 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.8614422678947449, - 0.6267672777175903, - 0.6366490125656128, - 0.8382642269134521, - 0.11884837597608566, - 0.9921330213546753, - 0.3285411298274994, - 0.8742373585700989, - 0.7205492258071899, - 0.9801966547966003, - 0.06169835478067398, - 0.3220160901546478, - 0.7498031854629517, - 0.3930714726448059, - 0.13811933994293213, - 0.28385090827941895, - 0.4235861301422119, - 0.1448512077331543 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "ohwi" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04828956723213196, - 0.05494653806090355, - 0.6479843258857727, - 0.7007930278778076, - 1.0440847873687744, - 0.7019880414009094, - 0.8621897101402283, - 0.26937708258628845, - 0.4157154858112335, - 0.21026825904846191, - 0.3797043561935425, - 0.4206119179725647, - 1.1785486936569214, - 0.9587093591690063, - 1.9911006689071655, - 1.8526650667190552, - 1.6228916645050049, - 0.5379507541656494, - 1.2502111196517944, - 0.39486807584762573, - 0.4246464669704437, - 0.3993436396121979, - 1.5086332559585571, - 1.5788191556930542, - 3.287064790725708, - 2.121230363845825, - 2.5666797161102295, - 1.141642689704895, - 1.8143054246902466, - 0.4301592707633972, - 0.20714078843593597, - 0.18141157925128937, - 1.2503143548965454, - 1.0035220384597778, - 1.6656538248062134, - 1.3417718410491943, - 2.097904920578003, - 0.8345021605491638, - 1.313029408454895, - 0.2249351441860199, - 0.03145187348127365, - 0.027173593640327454, - 0.38708874583244324, - 0.3026771545410156, - 1.0853508710861206, - 0.5856420397758484, - 1.2216601371765137, - 0.40328359603881836, - 0.45846959948539734, - 0.09216563403606415 - ], - "descriptor": { - "shape": [ - 1, - 5, - 5, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors options.bias", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.1109575480222702, - 0.8681362271308899, - 0.7342095971107483, - 0.43077003955841064, - 0.5981627106666565, - 0.12321650236845016, - 0.1610974818468094, - 0.0884026437997818, - 0.29100972414016724 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.6161394715309143, - 0.26224616169929504, - 0.7951397895812988, - 0.8730561137199402, - 0.8309102058410645, - 0.854960560798645, - 0.5552039742469788, - 0.840092122554779, - 0.85308438539505 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "convTranspose2dBias": { - "data": [ - 0.451673686504364 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "bias": "convTranspose2dBias" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.5200390219688416, - 1.01566481590271, - 1.2199413776397705, - 1.3345069885253906, - 1.0354729890823364, - 0.8139602541923523, - 1.7833205461502075, - 2.484194278717041, - 2.311894178390503, - 1.1773682832717896, - 0.9886226654052734, - 2.0037572383880615, - 2.9867470264434814, - 2.5694668292999268, - 1.41475510597229, - 0.8314860463142395, - 1.3567005395889282, - 1.8553334474563599, - 1.3828538656234741, - 0.8055896162986755, - 0.5411156415939331, - 0.6360918879508972, - 0.8249395489692688, - 0.7715635895729065, - 0.6999295353889465 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float32 4D input and filter tensors, both negative input tensor and options.bias", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - -0.10889056324958801, - -0.29801905155181885, - -0.3907785713672638, - -0.5624061226844788, - -0.7322093844413757, - -0.8421320915222168, - -0.30598655343055725, - -0.976659893989563, - -0.014158561825752258 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.6161394715309143, - 0.26224616169929504, - 0.7951397895812988, - 0.8730561137199402, - 0.8309102058410645, - 0.854960560798645, - 0.5552039742469788, - 0.840092122554779, - 0.85308438539505 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "convTranspose2dBias": { - "data": [ - -0.8457866311073303 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "bias": "convTranspose2dBias" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - -0.9128783941268921, - -1.0579640865325928, - -1.2512983083724976, - -1.1852335929870605, - -1.1565102338790894, - -1.2873748540878296, - -1.7950842380523682, - -2.6857638359069824, - -2.2283377647399902, - -1.8494995832443237, - -1.5857856273651123, - -2.8912975788116455, - -3.738619565963745, - -3.5343525409698486, - -1.910401463508606, - -1.425180196762085, - -2.8317112922668457, - -3.49372935295105, - -3.0246617794036865, - -1.5763013362884521, - -1.0156716108322144, - -1.645089030265808, - -1.935164213180542, - -1.6908544301986694, - -0.8578650951385498 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d same output size different padding (padding=1, outputPadding=0))", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 3, - 3 - ], - "padding": [ - 1, - 1, - 1, - 1 - ], - "outputPadding": [ - 0, - 0 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 1, - 1, - 2, - 2, - 2, - 3, - 3, - 1, - 1, - 2, - 2, - 2, - 3, - 3, - 4, - 4, - 5, - 5, - 5, - 6, - 6, - 4, - 4, - 5, - 5, - 5, - 6, - 6, - 4, - 4, - 5, - 5, - 5, - 6, - 6, - 7, - 7, - 8, - 8, - 8, - 9, - 9, - 7, - 7, - 8, - 8, - 8, - 9, - 9 - ], - "descriptor": { - "shape": [ - 1, - 1, - 7, - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d same output size different padding (padding=2, outputPadding=2))", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - } - }, - "convTranspose2dFilter": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 3, - 3 - ], - "padding": [ - 2, - 2, - 2, - 2 - ], - "outputPadding": [ - 2, - 2 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 1, - 2, - 2, - 2, - 3, - 3, - 3, - 4, - 5, - 5, - 5, - 6, - 6, - 6, - 4, - 5, - 5, - 5, - 6, - 6, - 6, - 4, - 5, - 5, - 5, - 6, - 6, - 6, - 7, - 8, - 8, - 8, - 9, - 9, - 9, - 7, - 8, - 8, - 8, - 9, - 9, - 9, - 7, - 8, - 8, - 8, - 9, - 9, - 9 - ], - "descriptor": { - "shape": [ - 1, - 1, - 7, - 7 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D both input and filter non-constant tensors default options", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.58740234375, - 0.60791015625, - 0.0172882080078125, - 0.261474609375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.329345703125, - 0.5869140625, - 0.297119140625, - 0.003337860107421875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.1934814453125, - 0.544921875, - 0.356689453125, - 0.18017578125, - 0.27880859375, - 0.155517578125, - 0.005138397216796875, - 0.0777587890625, - 0.0008726119995117188 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D both input and filter constant tensors default options", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.58740234375, - 0.60791015625, - 0.0172882080078125, - 0.261474609375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - }, - "convTranspose2dFilter": { - "data": [ - 0.329345703125, - 0.5869140625, - 0.297119140625, - 0.003337860107421875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.1934814453125, - 0.544921875, - 0.356689453125, - 0.18017578125, - 0.27880859375, - 0.155517578125, - 0.005138397216796875, - 0.0777587890625, - 0.0008726119995117188 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors default options", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.58740234375, - 0.60791015625, - 0.0172882080078125, - 0.261474609375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.329345703125, - 0.5869140625, - 0.297119140625, - 0.003337860107421875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.1934814453125, - 0.544921875, - 0.356689453125, - 0.18017578125, - 0.27880859375, - 0.155517578125, - 0.005138397216796875, - 0.0777587890625, - 0.0008726119995117188 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.padding", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.58740234375, - 0.60791015625, - 0.0172882080078125, - 0.261474609375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.329345703125, - 0.5869140625, - 0.297119140625, - 0.003337860107421875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "padding": [ - 1, - 1, - 1, - 1 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.27880859375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 input tensors options.padding is the same upper padding", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "outputSizes": [ - 6, - 6 - ], - "groups": 1, - "strides": [ - 2, - 2 - ], - "dilations": [ - 1, - 1 - ], - "padding": [ - 0, - 1, - 0, - 1 - ], - "filterLayout": "ohwi", - "inputLayout": "nhwc" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.5, - 0.5, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 1, - 1, - 2, - 2, - 1, - 1, - 2, - 2, - 1, - 1, - 0.5, - 0.5, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 1, - 1, - 2, - 2, - 1, - 1, - 2, - 2, - 1, - 1, - 0.5, - 0.5, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5, - 1, - 1, - 0.5, - 0.5 - ], - "descriptor": { - "shape": [ - 1, - 6, - 6, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.strides", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 3, - 2 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.03515625, - 0.6484375, - 0.446044921875, - 1.015625, - 0.4091796875, - 0.415771484375, - 0.0469970703125, - 0.00666046142578125, - 0.65185546875, - 0.08453369140625, - 1.2529296875, - 0.07757568359375, - 0.64794921875, - 0.0184173583984375, - 0.04901123046875, - 0.274169921875, - 0.62158203125, - 0.72705078125, - 0.57080078125, - 0.470458984375, - 0.332763671875, - 0.2421875, - 0.5791015625, - 0.2425537109375, - 1.0615234375, - 0.59326171875, - 0.6025390625, - 0.32373046875, - 0.0458984375, - 0.70751953125, - 0.045989990234375, - 1.177734375, - 0.1124267578125, - 0.93896484375, - 0.126953125, - 0.337646484375, - 0.405517578125, - 0.338134765625, - 0.58984375, - 0.8271484375, - 0.68212890625, - 0.08245849609375, - 0.05999755859375, - 0.8564453125, - 0.5791015625, - 1.1357421875, - 0.39892578125, - 0.405029296875, - 0.08026123046875, - 0.01137542724609375, - 0.869140625, - 0.1097412109375, - 1.44921875, - 0.07562255859375, - 0.63134765625, - 0.031463623046875, - 0.0836181640625, - 0.372314453125, - 0.80712890625, - 0.87451171875, - 0.55615234375, - 0.45849609375, - 0.054931640625, - 0.003459930419921875, - 0.71533203125, - 0.043914794921875, - 0.86865234375, - 0.040283203125, - 0.210205078125, - 0.04205322265625, - 0.02203369140625, - 0.54150390625, - 0.279541015625, - 0.587890625, - 0.256591796875, - 0.09014892578125, - 0.0159149169921875, - 0.02374267578125, - 0.2100830078125, - 0.30126953125, - 0.288330078125, - 0.276611328125, - 0.0946044921875, - 0.37841796875, - 0.023834228515625, - 0.50341796875, - 0.0238800048828125, - 1.0517578125, - 0.058380126953125, - 0.3046875, - 0.28955078125, - 0.15185546875, - 0.343505859375, - 0.152099609375, - 0.76318359375, - 0.3720703125, - 0.130615234375, - 0.10968017578125, - 0.16357421875, - 0.1658935546875, - 0.1639404296875, - 0.32470703125, - 0.40087890625, - 0.1370849609375, - 0.09381103515625, - 0.0059051513671875, - 0.935546875, - 0.056976318359375, - 0.9208984375, - 0.03924560546875, - 0.204833984375, - 0.07177734375, - 0.037628173828125, - 0.70556640625, - 0.363037109375, - 0.6044921875, - 0.25, - 0.08782958984375, - 0.0271759033203125, - 0.04052734375, - 0.276123046875, - 0.39111328125, - 0.314453125, - 0.26953125, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 9, - 7 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.dilations", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.319580078125, - 0.97607421875, - 0.4130859375, - 0.479736328125, - 0.767578125, - 0.908203125, - 0.62060546875, - 0.658203125, - 0.6552734375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.68359375, - 0.96435546875, - 0.8271484375, - 0.5771484375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "dilations": [ - 2, - 2 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.218505859375, - 0.66748046875, - 0.59033203125, - 0.94140625, - 0.3984375, - 0.327880859375, - 0.52490234375, - 1.0830078125, - 0.740234375, - 0.8759765625, - 0.6884765625, - 1.2568359375, - 1.572265625, - 1.1982421875, - 0.8701171875, - 0.396728515625, - 0.634765625, - 1.0283203125, - 0.443115234375, - 0.52392578125, - 0.51318359375, - 0.54443359375, - 0.900390625, - 0.3798828125, - 0.378173828125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.outputPadding", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 3, - 2 - ], - "outputPadding": [ - 1, - 1 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.03515625, - 0.6484375, - 0.446044921875, - 1.015625, - 0.4091796875, - 0.415771484375, - 0, - 0.0469970703125, - 0.00666046142578125, - 0.65185546875, - 0.08453369140625, - 1.2529296875, - 0.07757568359375, - 0.64794921875, - 0, - 0.0184173583984375, - 0.04901123046875, - 0.274169921875, - 0.62158203125, - 0.72705078125, - 0.57080078125, - 0.470458984375, - 0, - 0.332763671875, - 0.2421875, - 0.5791015625, - 0.2425537109375, - 1.0615234375, - 0.59326171875, - 0.6025390625, - 0, - 0.32373046875, - 0.0458984375, - 0.70751953125, - 0.045989990234375, - 1.177734375, - 0.1124267578125, - 0.93896484375, - 0, - 0.126953125, - 0.337646484375, - 0.405517578125, - 0.338134765625, - 0.58984375, - 0.8271484375, - 0.68212890625, - 0, - 0.08245849609375, - 0.05999755859375, - 0.8564453125, - 0.5791015625, - 1.1357421875, - 0.39892578125, - 0.405029296875, - 0, - 0.08026123046875, - 0.01137542724609375, - 0.869140625, - 0.1097412109375, - 1.44921875, - 0.07562255859375, - 0.63134765625, - 0, - 0.031463623046875, - 0.0836181640625, - 0.372314453125, - 0.80712890625, - 0.87451171875, - 0.55615234375, - 0.45849609375, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.054931640625, - 0.003459930419921875, - 0.71533203125, - 0.043914794921875, - 0.86865234375, - 0.040283203125, - 0.210205078125, - 0, - 0.04205322265625, - 0.02203369140625, - 0.54150390625, - 0.279541015625, - 0.587890625, - 0.256591796875, - 0.09014892578125, - 0, - 0.0159149169921875, - 0.02374267578125, - 0.2100830078125, - 0.30126953125, - 0.288330078125, - 0.276611328125, - 0.0946044921875, - 0, - 0.37841796875, - 0.023834228515625, - 0.50341796875, - 0.0238800048828125, - 1.0517578125, - 0.058380126953125, - 0.3046875, - 0, - 0.28955078125, - 0.15185546875, - 0.343505859375, - 0.152099609375, - 0.76318359375, - 0.3720703125, - 0.130615234375, - 0, - 0.10968017578125, - 0.16357421875, - 0.1658935546875, - 0.1639404296875, - 0.32470703125, - 0.40087890625, - 0.1370849609375, - 0, - 0.09381103515625, - 0.0059051513671875, - 0.935546875, - 0.056976318359375, - 0.9208984375, - 0.03924560546875, - 0.204833984375, - 0, - 0.07177734375, - 0.037628173828125, - 0.70556640625, - 0.363037109375, - 0.6044921875, - 0.25, - 0.08782958984375, - 0, - 0.0271759033203125, - 0.04052734375, - 0.276123046875, - 0.39111328125, - 0.314453125, - 0.26953125, - 0.0921630859375, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 10, - 8 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.outputSizes", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "strides": [ - 3, - 2 - ], - "outputSizes": [ - 10, - 8 - ] - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.03515625, - 0.6484375, - 0.446044921875, - 1.015625, - 0.4091796875, - 0.415771484375, - 0, - 0.0469970703125, - 0.00666046142578125, - 0.65185546875, - 0.08453369140625, - 1.2529296875, - 0.07757568359375, - 0.64794921875, - 0, - 0.0184173583984375, - 0.04901123046875, - 0.274169921875, - 0.62158203125, - 0.72705078125, - 0.57080078125, - 0.470458984375, - 0, - 0.332763671875, - 0.2421875, - 0.5791015625, - 0.2425537109375, - 1.0615234375, - 0.59326171875, - 0.6025390625, - 0, - 0.32373046875, - 0.0458984375, - 0.70751953125, - 0.045989990234375, - 1.177734375, - 0.1124267578125, - 0.93896484375, - 0, - 0.126953125, - 0.337646484375, - 0.405517578125, - 0.338134765625, - 0.58984375, - 0.8271484375, - 0.68212890625, - 0, - 0.08245849609375, - 0.05999755859375, - 0.8564453125, - 0.5791015625, - 1.1357421875, - 0.39892578125, - 0.405029296875, - 0, - 0.08026123046875, - 0.01137542724609375, - 0.869140625, - 0.1097412109375, - 1.44921875, - 0.07562255859375, - 0.63134765625, - 0, - 0.031463623046875, - 0.0836181640625, - 0.372314453125, - 0.80712890625, - 0.87451171875, - 0.55615234375, - 0.45849609375, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.054931640625, - 0.003459930419921875, - 0.71533203125, - 0.043914794921875, - 0.86865234375, - 0.040283203125, - 0.210205078125, - 0, - 0.04205322265625, - 0.02203369140625, - 0.54150390625, - 0.279541015625, - 0.587890625, - 0.256591796875, - 0.09014892578125, - 0, - 0.0159149169921875, - 0.02374267578125, - 0.2100830078125, - 0.30126953125, - 0.288330078125, - 0.276611328125, - 0.0946044921875, - 0, - 0.37841796875, - 0.023834228515625, - 0.50341796875, - 0.0238800048828125, - 1.0517578125, - 0.058380126953125, - 0.3046875, - 0, - 0.28955078125, - 0.15185546875, - 0.343505859375, - 0.152099609375, - 0.76318359375, - 0.3720703125, - 0.130615234375, - 0, - 0.10968017578125, - 0.16357421875, - 0.1658935546875, - 0.1639404296875, - 0.32470703125, - 0.40087890625, - 0.1370849609375, - 0, - 0.09381103515625, - 0.0059051513671875, - 0.935546875, - 0.056976318359375, - 0.9208984375, - 0.03924560546875, - 0.204833984375, - 0, - 0.07177734375, - 0.037628173828125, - 0.70556640625, - 0.363037109375, - 0.6044921875, - 0.25, - 0.08782958984375, - 0, - 0.0271759033203125, - 0.04052734375, - 0.276123046875, - 0.39111328125, - 0.314453125, - 0.26953125, - 0.0921630859375, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 10, - 8 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.inputLayout=nchw", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nchw" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.64794921875, - 1.0439453125, - 0.8623046875, - 0.415771484375, - 0.379638671875, - 1.1787109375, - 1.9912109375, - 1.623046875, - 1.25, - 0.424560546875, - 1.5087890625, - 3.287109375, - 2.56640625, - 1.814453125, - 0.2071533203125, - 1.25, - 1.666015625, - 2.09765625, - 1.3134765625, - 0.031463623046875, - 0.386962890625, - 1.0849609375, - 1.2216796875, - 0.45849609375, - 0.054931640625, - 0.70068359375, - 0.70166015625, - 0.269287109375, - 0.210205078125, - 0.420654296875, - 0.95849609375, - 1.8525390625, - 0.53759765625, - 0.394775390625, - 0.3994140625, - 1.578125, - 2.12109375, - 1.1416015625, - 0.43017578125, - 0.181396484375, - 1.00390625, - 1.341796875, - 0.83447265625, - 0.2249755859375, - 0.0271759033203125, - 0.302734375, - 0.58544921875, - 0.4033203125, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.inputLayout=nhwc", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nhwc" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.054931640625, - 0.64794921875, - 0.70068359375, - 1.0439453125, - 0.70166015625, - 0.8623046875, - 0.269287109375, - 0.415771484375, - 0.210205078125, - 0.379638671875, - 0.420654296875, - 1.1787109375, - 0.95849609375, - 1.9912109375, - 1.8525390625, - 1.623046875, - 0.53759765625, - 1.25, - 0.394775390625, - 0.424560546875, - 0.3994140625, - 1.5087890625, - 1.578125, - 3.287109375, - 2.12109375, - 2.56640625, - 1.1416015625, - 1.814453125, - 0.43017578125, - 0.2071533203125, - 0.181396484375, - 1.25, - 1.00390625, - 1.666015625, - 1.341796875, - 2.09765625, - 0.83447265625, - 1.3134765625, - 0.2249755859375, - 0.031463623046875, - 0.0271759033203125, - 0.386962890625, - 0.302734375, - 1.0849609375, - 0.58544921875, - 1.2216796875, - 0.4033203125, - 0.45849609375, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 5, - 5, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.filterLayout=iohw", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "filterLayout": "iohw" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.64794921875, - 1.0439453125, - 0.8623046875, - 0.415771484375, - 0.379638671875, - 1.1787109375, - 1.9912109375, - 1.623046875, - 1.25, - 0.424560546875, - 1.5087890625, - 3.287109375, - 2.56640625, - 1.814453125, - 0.2071533203125, - 1.25, - 1.666015625, - 2.09765625, - 1.3134765625, - 0.031463623046875, - 0.386962890625, - 1.0849609375, - 1.2216796875, - 0.45849609375, - 0.054931640625, - 0.70068359375, - 0.70166015625, - 0.269287109375, - 0.210205078125, - 0.420654296875, - 0.95849609375, - 1.8525390625, - 0.53759765625, - 0.394775390625, - 0.3994140625, - 1.578125, - 2.12109375, - 1.1416015625, - 0.43017578125, - 0.181396484375, - 1.00390625, - 1.341796875, - 0.83447265625, - 0.2249755859375, - 0.0271759033203125, - 0.302734375, - 0.58544921875, - 0.4033203125, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.filterLayout=hwoi", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.97998046875, - 0.626953125, - 0.06170654296875, - 0.63671875, - 0.322021484375, - 0.83837890625, - 0.75, - 0.11883544921875, - 0.39306640625, - 0.9921875, - 0.1380615234375, - 0.32861328125, - 0.283935546875, - 0.8740234375, - 0.423583984375, - 0.720703125, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 3, - 3, - 2, - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "filterLayout": "hwoi" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.64794921875, - 1.0439453125, - 0.8623046875, - 0.415771484375, - 0.379638671875, - 1.1787109375, - 1.9912109375, - 1.623046875, - 1.25, - 0.424560546875, - 1.5087890625, - 3.287109375, - 2.56640625, - 1.814453125, - 0.2071533203125, - 1.25, - 1.666015625, - 2.09765625, - 1.3134765625, - 0.031463623046875, - 0.386962890625, - 1.0849609375, - 1.2216796875, - 0.45849609375, - 0.054931640625, - 0.70068359375, - 0.70166015625, - 0.269287109375, - 0.210205078125, - 0.420654296875, - 0.95849609375, - 1.8525390625, - 0.53759765625, - 0.394775390625, - 0.3994140625, - 1.578125, - 2.12109375, - 1.1416015625, - 0.43017578125, - 0.181396484375, - 1.00390625, - 1.341796875, - 0.83447265625, - 0.2249755859375, - 0.0271759033203125, - 0.302734375, - 0.58544921875, - 0.4033203125, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.filterLayout=ohwi", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "filterLayout": "ohwi" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.64794921875, - 1.0439453125, - 0.8623046875, - 0.415771484375, - 0.379638671875, - 1.1787109375, - 1.9912109375, - 1.623046875, - 1.25, - 0.424560546875, - 1.5087890625, - 3.287109375, - 2.56640625, - 1.814453125, - 0.2071533203125, - 1.25, - 1.666015625, - 2.09765625, - 1.3134765625, - 0.031463623046875, - 0.386962890625, - 1.0849609375, - 1.2216796875, - 0.45849609375, - 0.054931640625, - 0.70068359375, - 0.70166015625, - 0.269287109375, - 0.210205078125, - 0.420654296875, - 0.95849609375, - 1.8525390625, - 0.53759765625, - 0.394775390625, - 0.3994140625, - 1.578125, - 2.12109375, - 1.1416015625, - 0.43017578125, - 0.181396484375, - 1.00390625, - 1.341796875, - 0.83447265625, - 0.2249755859375, - 0.0271759033203125, - 0.302734375, - 0.58544921875, - 0.4033203125, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.inputLayout=nhwc options.filterLayout=iohw", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "iohw" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.054931640625, - 0.64794921875, - 0.70068359375, - 1.0439453125, - 0.70166015625, - 0.8623046875, - 0.269287109375, - 0.415771484375, - 0.210205078125, - 0.379638671875, - 0.420654296875, - 1.1787109375, - 0.95849609375, - 1.9912109375, - 1.8525390625, - 1.623046875, - 0.53759765625, - 1.25, - 0.394775390625, - 0.424560546875, - 0.3994140625, - 1.5087890625, - 1.578125, - 3.287109375, - 2.12109375, - 2.56640625, - 1.1416015625, - 1.814453125, - 0.43017578125, - 0.2071533203125, - 0.181396484375, - 1.25, - 1.00390625, - 1.666015625, - 1.341796875, - 2.09765625, - 0.83447265625, - 1.3134765625, - 0.2249755859375, - 0.031463623046875, - 0.0271759033203125, - 0.386962890625, - 0.302734375, - 1.0849609375, - 0.58544921875, - 1.2216796875, - 0.4033203125, - 0.45849609375, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 5, - 5, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.inputLayout=nhwc options.filterLayout=hwoi", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.97998046875, - 0.626953125, - 0.06170654296875, - 0.63671875, - 0.322021484375, - 0.83837890625, - 0.75, - 0.11883544921875, - 0.39306640625, - 0.9921875, - 0.1380615234375, - 0.32861328125, - 0.283935546875, - 0.8740234375, - 0.423583984375, - 0.720703125, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 3, - 3, - 2, - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "hwoi" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.054931640625, - 0.64794921875, - 0.70068359375, - 1.0439453125, - 0.70166015625, - 0.8623046875, - 0.269287109375, - 0.415771484375, - 0.210205078125, - 0.379638671875, - 0.420654296875, - 1.1787109375, - 0.95849609375, - 1.9912109375, - 1.8525390625, - 1.623046875, - 0.53759765625, - 1.25, - 0.394775390625, - 0.424560546875, - 0.3994140625, - 1.5087890625, - 1.578125, - 3.287109375, - 2.12109375, - 2.56640625, - 1.1416015625, - 1.814453125, - 0.43017578125, - 0.2071533203125, - 0.181396484375, - 1.25, - 1.00390625, - 1.666015625, - 1.341796875, - 2.09765625, - 0.83447265625, - 1.3134765625, - 0.2249755859375, - 0.031463623046875, - 0.0271759033203125, - 0.386962890625, - 0.302734375, - 1.0849609375, - 0.58544921875, - 1.2216796875, - 0.4033203125, - 0.45849609375, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 5, - 5, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.inputLayout=nhwc options.filterLayout=ohwi", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.056060791015625, - 0.71142578125, - 0.65283203125, - 0.38623046875, - 0.386962890625, - 0.9462890625, - 0.095703125, - 0.92333984375, - 0.63623046875 - ], - "descriptor": { - "shape": [ - 1, - 3, - 3, - 1 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.861328125, - 0.626953125, - 0.63671875, - 0.83837890625, - 0.11883544921875, - 0.9921875, - 0.32861328125, - 0.8740234375, - 0.720703125, - 0.97998046875, - 0.06170654296875, - 0.322021484375, - 0.75, - 0.39306640625, - 0.1380615234375, - 0.283935546875, - 0.423583984375, - 0.1448974609375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "inputLayout": "nhwc", - "filterLayout": "ohwi" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.04827880859375, - 0.054931640625, - 0.64794921875, - 0.70068359375, - 1.0439453125, - 0.70166015625, - 0.8623046875, - 0.269287109375, - 0.415771484375, - 0.210205078125, - 0.379638671875, - 0.420654296875, - 1.1787109375, - 0.95849609375, - 1.9912109375, - 1.8525390625, - 1.623046875, - 0.53759765625, - 1.25, - 0.394775390625, - 0.424560546875, - 0.3994140625, - 1.5087890625, - 1.578125, - 3.287109375, - 2.12109375, - 2.56640625, - 1.1416015625, - 1.814453125, - 0.43017578125, - 0.2071533203125, - 0.181396484375, - 1.25, - 1.00390625, - 1.666015625, - 1.341796875, - 2.09765625, - 0.83447265625, - 1.3134765625, - 0.2249755859375, - 0.031463623046875, - 0.0271759033203125, - 0.386962890625, - 0.302734375, - 1.0849609375, - 0.58544921875, - 1.2216796875, - 0.4033203125, - 0.45849609375, - 0.0921630859375 - ], - "descriptor": { - "shape": [ - 1, - 5, - 5, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors options.bias", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - 0.1109619140625, - 0.8681640625, - 0.734375, - 0.4306640625, - 0.59814453125, - 0.12322998046875, - 0.1611328125, - 0.08837890625, - 0.291015625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.6162109375, - 0.26220703125, - 0.794921875, - 0.873046875, - 0.8310546875, - 0.85498046875, - 0.55517578125, - 0.84033203125, - 0.85302734375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "convTranspose2dBias": { - "data": [ - 0.45166015625 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "bias": "convTranspose2dBias" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - 0.52001953125, - 1.015625, - 1.2197265625, - 1.333984375, - 1.03515625, - 0.81396484375, - 1.783203125, - 2.484375, - 2.3125, - 1.177734375, - 0.98876953125, - 2.00390625, - 2.986328125, - 2.5703125, - 1.4150390625, - 0.83154296875, - 1.3564453125, - 1.85546875, - 1.3828125, - 0.8056640625, - 0.541015625, - 0.63623046875, - 0.82470703125, - 0.771484375, - 0.69970703125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "convTranspose2d float16 4D input and filter tensors, both negative input tensor and options.bias", - "graph": { - "inputs": { - "convTranspose2dInput": { - "data": [ - -0.10888671875, - -0.298095703125, - -0.390869140625, - -0.5625, - -0.732421875, - -0.84228515625, - -0.305908203125, - -0.9765625, - -0.01416015625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - } - }, - "convTranspose2dFilter": { - "data": [ - 0.6162109375, - 0.26220703125, - 0.794921875, - 0.873046875, - 0.8310546875, - 0.85498046875, - 0.55517578125, - 0.84033203125, - 0.85302734375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "convTranspose2dBias": { - "data": [ - -0.845703125 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "convTranspose2d", - "arguments": [ - { - "input": "convTranspose2dInput" - }, - { - "filter": "convTranspose2dFilter" - }, - { - "options": { - "bias": "convTranspose2dBias" - } - } - ], - "outputs": "convTranspose2dOutput" - } - ], - "expectedOutputs": { - "convTranspose2dOutput": { - "data": [ - -0.91259765625, - -1.0576171875, - -1.2509765625, - -1.185546875, - -1.15625, - -1.287109375, - -1.794921875, - -2.685546875, - -2.228515625, - -1.849609375, - -1.5859375, - -2.890625, - -3.73828125, - -3.53515625, - -1.91015625, - -1.4248046875, - -2.83203125, - -3.494140625, - -3.025390625, - -1.576171875, - -1.015625, - -1.64453125, - -1.935546875, - -1.6904296875, - -0.85791015625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 5, - 5 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/div.json b/tests/wpt_data/conformance/div.json deleted file mode 100644 index 9c8073b..0000000 --- a/tests/wpt_data/conformance/div.json +++ /dev/null @@ -1,2465 +0,0 @@ -{ - "operation": "div", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/div.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "div float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - -95.0290298461914, - 62.804866790771484, - -85.32865905761719, - -68.20919799804688, - 79.45568084716797, - -68.69049072265625, - -94.46466827392578, - -10.000411033630371, - 18.318864822387695, - -3.6232800483703613, - -5.957828044891357, - 89.49882507324219, - 94.9579086303711, - -79.0005874633789, - -79.87596893310547, - 74.99787139892578, - 25.865373611450195, - 91.5443344116211, - 81.65287017822266, - 48.2148323059082, - 63.370121002197266, - 10.626384735107422, - 46.126625061035156, - 77.22327423095703 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.6358450651168823, - -1.3840086460113525, - 0.22848258912563324, - 0.22211983799934387, - 0.16934208571910858, - -0.6614248752593994, - -0.6466212868690491, - -7.071591854095459, - -1.7074518203735352, - -15.478666305541992, - -6.544795513153076, - -0.036596786230802536, - 0.3400382697582245, - 0.046538159251213074, - -1.1071529388427734, - 0.19159291684627533, - 0.5390679836273193, - 0.18418607115745544, - 0.058991268277168274, - 0.9158834218978882, - -0.20645710825920105, - 4.193900108337402, - -0.7564564943313599, - -0.9594743251800537 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -95.0290298461914, - 62.804866790771484, - -85.32865905761719, - -68.20919799804688, - 79.45568084716797, - -68.69049072265625, - -94.46466827392578, - -10.000411033630371, - 18.318864822387695, - -3.6232800483703613, - -5.957828044891357, - 89.49882507324219, - 94.9579086303711, - -79.0005874633789, - -79.87596893310547, - 74.99787139892578, - 25.865373611450195, - 91.5443344116211, - 81.65287017822266, - 48.2148323059082, - 63.370121002197266, - 10.626384735107422, - 46.126625061035156, - 77.22327423095703 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.6358450651168823, - -1.3840086460113525, - 0.22848258912563324, - 0.22211983799934387, - 0.16934208571910858, - -0.6614248752593994, - -0.6466212868690491, - -7.071591854095459, - -1.7074518203735352, - -15.478666305541992, - -6.544795513153076, - -0.036596786230802536, - 0.3400382697582245, - 0.046538159251213074, - -1.1071529388427734, - 0.19159291684627533, - 0.5390679836273193, - 0.18418607115745544, - 0.058991268277168274, - 0.9158834218978882, - -0.20645710825920105, - 4.193900108337402, - -0.7564564943313599, - -0.9594743251800537 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -95.0290298461914, - 62.804866790771484, - -85.32865905761719, - -68.20919799804688, - 79.45568084716797, - -68.69049072265625, - -94.46466827392578, - -10.000411033630371, - 18.318864822387695, - -3.6232800483703613, - -5.957828044891357, - 89.49882507324219, - 94.9579086303711, - -79.0005874633789, - -79.87596893310547, - 74.99787139892578, - 25.865373611450195, - 91.5443344116211, - 81.65287017822266, - 48.2148323059082, - 63.370121002197266, - 10.626384735107422, - 46.126625061035156, - 77.22327423095703 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.6358450651168823, - -1.3840086460113525, - 0.22848258912563324, - 0.22211983799934387, - 0.16934208571910858, - -0.6614248752593994, - -0.6466212868690491, - -7.071591854095459, - -1.7074518203735352, - -15.478666305541992, - -6.544795513153076, - -0.036596786230802536, - 0.3400382697582245, - 0.046538159251213074, - -1.1071529388427734, - 0.19159291684627533, - 0.5390679836273193, - 0.18418607115745544, - 0.058991268277168274, - 0.9158834218978882, - -0.20645710825920105, - 4.193900108337402, - -0.7564564943313599, - -0.9594743251800537 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -95.0290298461914, - 62.804866790771484, - -85.32865905761719, - -68.20919799804688, - 79.45568084716797, - -68.69049072265625, - -94.46466827392578, - -10.000411033630371, - 18.318864822387695, - -3.6232800483703613, - -5.957828044891357, - 89.49882507324219, - 94.9579086303711, - -79.0005874633789, - -79.87596893310547, - 74.99787139892578, - 25.865373611450195, - 91.5443344116211, - 81.65287017822266, - 48.2148323059082, - 63.370121002197266, - 10.626384735107422, - 46.126625061035156, - 77.22327423095703 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.6358450651168823, - -1.3840086460113525, - 0.22848258912563324, - 0.22211983799934387, - 0.16934208571910858, - -0.6614248752593994, - -0.6466212868690491, - -7.071591854095459, - -1.7074518203735352, - -15.478666305541992, - -6.544795513153076, - -0.036596786230802536, - 0.3400382697582245, - 0.046538159251213074, - -1.1071529388427734, - 0.19159291684627533, - 0.5390679836273193, - 0.18418607115745544, - 0.058991268277168274, - 0.9158834218978882, - -0.20645710825920105, - 4.193900108337402, - -0.7564564943313599, - -0.9594743251800537 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -95.0290298461914, - 62.804866790771484, - -85.32865905761719, - -68.20919799804688, - 79.45568084716797, - -68.69049072265625, - -94.46466827392578, - -10.000411033630371, - 18.318864822387695, - -3.6232800483703613, - -5.957828044891357, - 89.49882507324219, - 94.9579086303711, - -79.0005874633789, - -79.87596893310547, - 74.99787139892578, - 25.865373611450195, - 91.5443344116211, - 81.65287017822266, - 48.2148323059082, - 63.370121002197266, - 10.626384735107422, - 46.126625061035156, - 77.22327423095703 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.6358450651168823, - -1.3840086460113525, - 0.22848258912563324, - 0.22211983799934387, - 0.16934208571910858, - -0.6614248752593994, - -0.6466212868690491, - -7.071591854095459, - -1.7074518203735352, - -15.478666305541992, - -6.544795513153076, - -0.036596786230802536, - 0.3400382697582245, - 0.046538159251213074, - -1.1071529388427734, - 0.19159291684627533, - 0.5390679836273193, - 0.18418607115745544, - 0.058991268277168274, - 0.9158834218978882, - -0.20645710825920105, - 4.193900108337402, - -0.7564564943313599, - -0.9594743251800537 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -95.0290298461914, - 62.804866790771484, - -85.32865905761719, - -68.20919799804688, - 79.45568084716797, - -68.69049072265625, - -94.46466827392578, - -10.000411033630371, - 18.318864822387695, - -3.6232800483703613, - -5.957828044891357, - 89.49882507324219, - 94.9579086303711, - -79.0005874633789, - -79.87596893310547, - 74.99787139892578, - 25.865373611450195, - 91.5443344116211, - 81.65287017822266, - 48.2148323059082, - 63.370121002197266, - 10.626384735107422, - 46.126625061035156, - 77.22327423095703 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.6358450651168823, - -1.3840086460113525, - 0.22848258912563324, - 0.22211983799934387, - 0.16934208571910858, - -0.6614248752593994, - -0.6466212868690491, - -7.071591854095459, - -1.7074518203735352, - -15.478666305541992, - -6.544795513153076, - -0.036596786230802536, - 0.3400382697582245, - 0.046538159251213074, - -1.1071529388427734, - 0.19159291684627533, - 0.5390679836273193, - 0.18418607115745544, - 0.058991268277168274, - 0.9158834218978882, - -0.20645710825920105, - 4.193900108337402, - -0.7564564943313599, - -0.9594743251800537 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -41.827415466308594 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.6922348141670227, - 0.48120367527008057, - 2.145423412322998, - 2.7607734203338623, - -3.10864520072937, - -0.9206274151802063, - -0.6847651600837708, - -0.5914608240127563, - 1.337254285812378, - -0.7458055019378662, - -1.0726968050003052, - 12.770289421081543, - -1.2953946590423584, - 11.376836776733398, - -0.4729740023612976, - -2.910935878753662, - -2.999844551086426, - -2.48069167137146, - -8.683640480041504, - -0.9471967220306396, - 3.1970295906066895, - -0.9385499358177185, - 1.19874107837677, - 0.5645201802253723 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 97.32406616210938, - 36.325218200683594, - 26.037858963012695, - 99.47166442871094, - 10.395523071289062, - -30.788942337036133 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0.6208509802818298, - -2.3928961753845215, - -0.7487602233886719, - -0.15231086313724518, - 1.2943254709243774, - -1.4756466150283813, - 0.627623438835144, - 1.946824550628662, - -1.2012730836868286, - 0.5638142228126526, - 3.7509193420410156, - 0.106381356716156, - 0.33177119493484497, - -0.10121183097362518, - 3.396397352218628, - 0.14445380866527557, - 1.3412691354751587, - -0.5476378798484802, - 0.049492448568344116, - 1.2156614065170288, - -0.5024688243865967, - 0.4480270743370056, - -3.356520175933838, - 2.4065051078796387 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 75.08295440673828, - -46.22666931152344, - 15.761880874633789, - 8.9222993850708 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0.8047597408294678, - -1.1576858758926392, - -0.2596609592437744, - 0.3277462124824524, - -0.2910698652267456, - -0.9828438758850098, - 3.8753535747528076, - 4.48669958114624, - -1.9844446182250977, - 6.285772323608398, - 4.370259761810303, - -0.36709925532341003, - 0.4300486445426941, - -0.04896639660000801, - 1.177829384803772, - -0.3108392059803009, - -0.30162662267684937, - -0.36475029587745667, - 0.3055984377861023, - 2.801643133163452, - -0.830053985118866, - 4.994900703430176, - -3.910738945007324, - -8.304333686828613 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -41.827415466308594 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 60.42374038696289, - -86.92247772216797, - -19.496112823486328, - -15.150615692138672, - 13.455190658569336, - 45.433597564697266, - 61.082862854003906, - 70.71882629394531, - -31.278579711914062, - 56.08354187011719, - 38.992767333984375, - -3.27536940574646, - 32.28932189941406, - -3.676541805267334, - 88.4349136352539, - 14.369060516357422, - 13.943194389343262, - 16.861190795898438, - 4.816806316375732, - 44.15916442871094, - -13.083211898803711, - 44.56599807739258, - -34.892784118652344, - -74.09375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.6922348141670227, - 0.48120367527008057, - 2.145423412322998, - 2.7607734203338623, - -3.10864520072937, - -0.9206274151802063, - -0.6847651600837708, - -0.5914608240127563, - 1.337254285812378, - -0.7458055019378662, - -1.0726968050003052, - 12.770289421081543, - -1.2953946590423584, - 11.376836776733398, - -0.4729740023612976, - -2.910935878753662, - -2.999844551086426, - -2.48069167137146, - -8.683640480041504, - -0.9471967220306396, - 3.1970295906066895, - -0.9385499358177185, - 1.19874107837677, - 0.5645201802253723 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "div float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - -95, - 62.8125, - -85.3125, - -68.1875, - 79.4375, - -68.6875, - -94.4375, - -10, - 18.3125, - -3.623046875, - -5.95703125, - 89.5, - 94.9375, - -79, - -79.875, - 75, - 25.859375, - 91.5625, - 81.625, - 48.21875, - 63.375, - 10.625, - 46.125, - 77.25 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.63623046875, - -1.3837890625, - 0.228515625, - 0.22216796875, - 0.1693115234375, - -0.66162109375, - -0.64697265625, - -7.07421875, - -1.7080078125, - -15.484375, - -6.546875, - -0.036590576171875, - 0.340087890625, - 0.046539306640625, - -1.107421875, - 0.1915283203125, - 0.5390625, - 0.18408203125, - 0.05902099609375, - 0.91552734375, - -0.20654296875, - 4.1953125, - -0.7568359375, - -0.95947265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -95, - 62.8125, - -85.3125, - -68.1875, - 79.4375, - -68.6875, - -94.4375, - -10, - 18.3125, - -3.623046875, - -5.95703125, - 89.5, - 94.9375, - -79, - -79.875, - 75, - 25.859375, - 91.5625, - 81.625, - 48.21875, - 63.375, - 10.625, - 46.125, - 77.25 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.63623046875, - -1.3837890625, - 0.228515625, - 0.22216796875, - 0.1693115234375, - -0.66162109375, - -0.64697265625, - -7.07421875, - -1.7080078125, - -15.484375, - -6.546875, - -0.036590576171875, - 0.340087890625, - 0.046539306640625, - -1.107421875, - 0.1915283203125, - 0.5390625, - 0.18408203125, - 0.05902099609375, - 0.91552734375, - -0.20654296875, - 4.1953125, - -0.7568359375, - -0.95947265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -95, - 62.8125, - -85.3125, - -68.1875, - 79.4375, - -68.6875, - -94.4375, - -10, - 18.3125, - -3.623046875, - -5.95703125, - 89.5, - 94.9375, - -79, - -79.875, - 75, - 25.859375, - 91.5625, - 81.625, - 48.21875, - 63.375, - 10.625, - 46.125, - 77.25 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.63623046875, - -1.3837890625, - 0.228515625, - 0.22216796875, - 0.1693115234375, - -0.66162109375, - -0.64697265625, - -7.07421875, - -1.7080078125, - -15.484375, - -6.546875, - -0.036590576171875, - 0.340087890625, - 0.046539306640625, - -1.107421875, - 0.1915283203125, - 0.5390625, - 0.18408203125, - 0.05902099609375, - 0.91552734375, - -0.20654296875, - 4.1953125, - -0.7568359375, - -0.95947265625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -95, - 62.8125, - -85.3125, - -68.1875, - 79.4375, - -68.6875, - -94.4375, - -10, - 18.3125, - -3.623046875, - -5.95703125, - 89.5, - 94.9375, - -79, - -79.875, - 75, - 25.859375, - 91.5625, - 81.625, - 48.21875, - 63.375, - 10.625, - 46.125, - 77.25 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.63623046875, - -1.3837890625, - 0.228515625, - 0.22216796875, - 0.1693115234375, - -0.66162109375, - -0.64697265625, - -7.07421875, - -1.7080078125, - -15.484375, - -6.546875, - -0.036590576171875, - 0.340087890625, - 0.046539306640625, - -1.107421875, - 0.1915283203125, - 0.5390625, - 0.18408203125, - 0.05902099609375, - 0.91552734375, - -0.20654296875, - 4.1953125, - -0.7568359375, - -0.95947265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -95, - 62.8125, - -85.3125, - -68.1875, - 79.4375, - -68.6875, - -94.4375, - -10, - 18.3125, - -3.623046875, - -5.95703125, - 89.5, - 94.9375, - -79, - -79.875, - 75, - 25.859375, - 91.5625, - 81.625, - 48.21875, - 63.375, - 10.625, - 46.125, - 77.25 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.63623046875, - -1.3837890625, - 0.228515625, - 0.22216796875, - 0.1693115234375, - -0.66162109375, - -0.64697265625, - -7.07421875, - -1.7080078125, - -15.484375, - -6.546875, - -0.036590576171875, - 0.340087890625, - 0.046539306640625, - -1.107421875, - 0.1915283203125, - 0.5390625, - 0.18408203125, - 0.05902099609375, - 0.91552734375, - -0.20654296875, - 4.1953125, - -0.7568359375, - -0.95947265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -95, - 62.8125, - -85.3125, - -68.1875, - 79.4375, - -68.6875, - -94.4375, - -10, - 18.3125, - -3.623046875, - -5.95703125, - 89.5, - 94.9375, - -79, - -79.875, - 75, - 25.859375, - 91.5625, - 81.625, - 48.21875, - 63.375, - 10.625, - 46.125, - 77.25 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.63623046875, - -1.3837890625, - 0.228515625, - 0.22216796875, - 0.1693115234375, - -0.66162109375, - -0.64697265625, - -7.07421875, - -1.7080078125, - -15.484375, - -6.546875, - -0.036590576171875, - 0.340087890625, - 0.046539306640625, - -1.107421875, - 0.1915283203125, - 0.5390625, - 0.18408203125, - 0.05902099609375, - 0.91552734375, - -0.20654296875, - 4.1953125, - -0.7568359375, - -0.95947265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -41.8125 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.69189453125, - 0.48095703125, - 2.14453125, - 2.759765625, - -3.107421875, - -0.92041015625, - -0.6845703125, - -0.5908203125, - 1.3369140625, - -0.74560546875, - -1.072265625, - 12.765625, - -1.294921875, - 11.375, - -0.472900390625, - -2.91015625, - -2.998046875, - -2.48046875, - -8.6796875, - -0.94677734375, - 3.1953125, - -0.9384765625, - 1.1982421875, - 0.56396484375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 97.3125, - 36.3125, - 26.03125, - 99.5, - 10.3984375, - -30.78125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0.62109375, - -2.39453125, - -0.7490234375, - -0.1522216796875, - 1.2939453125, - -1.4765625, - 0.6279296875, - 1.9482421875, - -1.2021484375, - 0.56396484375, - 3.75, - 0.10638427734375, - 0.331787109375, - -0.1011962890625, - 3.396484375, - 0.1444091796875, - 1.3408203125, - -0.5478515625, - 0.04949951171875, - 1.2158203125, - -0.5029296875, - 0.44775390625, - -3.357421875, - 2.408203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 75.0625, - -46.21875, - 15.765625, - 8.921875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0.80517578125, - -1.158203125, - -0.259765625, - 0.32763671875, - -0.291015625, - -0.98291015625, - 3.875, - 4.48828125, - -1.984375, - 6.2890625, - 4.37109375, - -0.3671875, - 0.43017578125, - -0.048980712890625, - 1.177734375, - -0.310791015625, - -0.3017578125, - -0.36474609375, - 0.305419921875, - 2.80078125, - -0.830078125, - 4.99609375, - -3.912109375, - -8.3046875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "div float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -41.8125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 60.4375, - -86.9375, - -19.5, - -15.1484375, - 13.453125, - 45.4375, - 61.09375, - 70.75, - -31.28125, - 56.09375, - 39, - -3.275390625, - 32.28125, - -3.67578125, - 88.4375, - 14.3671875, - 13.9453125, - 16.859375, - 4.81640625, - 44.15625, - -13.0859375, - 44.5625, - -34.90625, - -74.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "div", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -0.69189453125, - 0.48095703125, - 2.14453125, - 2.759765625, - -3.107421875, - -0.92041015625, - -0.6845703125, - -0.5908203125, - 1.3369140625, - -0.74560546875, - -1.072265625, - 12.765625, - -1.294921875, - 11.375, - -0.472900390625, - -2.91015625, - -2.998046875, - -2.48046875, - -8.6796875, - -0.94677734375, - 3.1953125, - -0.9384765625, - 1.1982421875, - 0.56396484375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/elu.json b/tests/wpt_data/conformance/elu.json deleted file mode 100644 index ce8e401..0000000 --- a/tests/wpt_data/conformance/elu.json +++ /dev/null @@ -1,1655 +0,0 @@ -{ - "operation": "elu", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/elu.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "elu float32 positive 0D scalar default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 negative 0D scalar default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - -3.8663666248321533 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - -0.9790657162666321 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 1D constant tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -3.8663666248321533, - 1.3590080738067627, - -3.8641843795776367, - 7.839725494384766, - -6.69080114364624, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -7.419948101043701, - 5.665064334869385, - -6.712906837463379, - -3.334894895553589, - -1.2103675603866577, - 7.255547046661377, - 8.903468132019043, - -4.01986026763916, - 7.114678382873535, - -0.11212847381830215, - -3.688840866088867, - 6.135150909423828, - -9.895182609558105 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -0.9790657162666321, - 1.3590080738067627, - -0.9790199995040894, - 7.839725494384766, - -0.9987577199935913, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -0.999400794506073, - 5.665064334869385, - -0.9987848997116089, - -0.9643816947937012, - -0.7019122838973999, - 7.255547046661377, - 8.903468132019043, - -0.982044517993927, - 7.114678382873535, - -0.10607059299945831, - -0.9749990105628967, - 6.135150909423828, - -0.99994957447052 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 1D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -3.8663666248321533, - 1.3590080738067627, - -3.8641843795776367, - 7.839725494384766, - -6.69080114364624, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -7.419948101043701, - 5.665064334869385, - -6.712906837463379, - -3.334894895553589, - -1.2103675603866577, - 7.255547046661377, - 8.903468132019043, - -4.01986026763916, - 7.114678382873535, - -0.11212847381830215, - -3.688840866088867, - 6.135150909423828, - -9.895182609558105 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -0.9790657162666321, - 1.3590080738067627, - -0.9790199995040894, - 7.839725494384766, - -0.9987577199935913, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -0.999400794506073, - 5.665064334869385, - -0.9987848997116089, - -0.9643816947937012, - -0.7019122838973999, - 7.255547046661377, - 8.903468132019043, - -0.982044517993927, - 7.114678382873535, - -0.10607059299945831, - -0.9749990105628967, - 6.135150909423828, - -0.99994957447052 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 2D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -3.8663666248321533, - 1.3590080738067627, - -3.8641843795776367, - 7.839725494384766, - -6.69080114364624, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -7.419948101043701, - 5.665064334869385, - -6.712906837463379, - -3.334894895553589, - -1.2103675603866577, - 7.255547046661377, - 8.903468132019043, - -4.01986026763916, - 7.114678382873535, - -0.11212847381830215, - -3.688840866088867, - 6.135150909423828, - -9.895182609558105 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -0.9790657162666321, - 1.3590080738067627, - -0.9790199995040894, - 7.839725494384766, - -0.9987577199935913, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -0.999400794506073, - 5.665064334869385, - -0.9987848997116089, - -0.9643816947937012, - -0.7019122838973999, - 7.255547046661377, - 8.903468132019043, - -0.982044517993927, - 7.114678382873535, - -0.10607059299945831, - -0.9749990105628967, - 6.135150909423828, - -0.99994957447052 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 3D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -3.8663666248321533, - 1.3590080738067627, - -3.8641843795776367, - 7.839725494384766, - -6.69080114364624, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -7.419948101043701, - 5.665064334869385, - -6.712906837463379, - -3.334894895553589, - -1.2103675603866577, - 7.255547046661377, - 8.903468132019043, - -4.01986026763916, - 7.114678382873535, - -0.11212847381830215, - -3.688840866088867, - 6.135150909423828, - -9.895182609558105 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -0.9790657162666321, - 1.3590080738067627, - -0.9790199995040894, - 7.839725494384766, - -0.9987577199935913, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -0.999400794506073, - 5.665064334869385, - -0.9987848997116089, - -0.9643816947937012, - -0.7019122838973999, - 7.255547046661377, - 8.903468132019043, - -0.982044517993927, - 7.114678382873535, - -0.10607059299945831, - -0.9749990105628967, - 6.135150909423828, - -0.99994957447052 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 4D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -3.8663666248321533, - 1.3590080738067627, - -3.8641843795776367, - 7.839725494384766, - -6.69080114364624, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -7.419948101043701, - 5.665064334869385, - -6.712906837463379, - -3.334894895553589, - -1.2103675603866577, - 7.255547046661377, - 8.903468132019043, - -4.01986026763916, - 7.114678382873535, - -0.11212847381830215, - -3.688840866088867, - 6.135150909423828, - -9.895182609558105 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -0.9790657162666321, - 1.3590080738067627, - -0.9790199995040894, - 7.839725494384766, - -0.9987577199935913, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -0.999400794506073, - 5.665064334869385, - -0.9987848997116089, - -0.9643816947937012, - -0.7019122838973999, - 7.255547046661377, - 8.903468132019043, - -0.982044517993927, - 7.114678382873535, - -0.10607059299945831, - -0.9749990105628967, - 6.135150909423828, - -0.99994957447052 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 5D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -3.8663666248321533, - 1.3590080738067627, - -3.8641843795776367, - 7.839725494384766, - -6.69080114364624, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -7.419948101043701, - 5.665064334869385, - -6.712906837463379, - -3.334894895553589, - -1.2103675603866577, - 7.255547046661377, - 8.903468132019043, - -4.01986026763916, - 7.114678382873535, - -0.11212847381830215, - -3.688840866088867, - 6.135150909423828, - -9.895182609558105 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -0.9790657162666321, - 1.3590080738067627, - -0.9790199995040894, - 7.839725494384766, - -0.9987577199935913, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -0.999400794506073, - 5.665064334869385, - -0.9987848997116089, - -0.9643816947937012, - -0.7019122838973999, - 7.255547046661377, - 8.903468132019043, - -0.982044517993927, - 7.114678382873535, - -0.10607059299945831, - -0.9749990105628967, - 6.135150909423828, - -0.99994957447052 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 4D tensor positive options.alpha", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -3.8663666248321533, - 1.3590080738067627, - -3.8641843795776367, - 7.839725494384766, - -6.69080114364624, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -7.419948101043701, - 5.665064334869385, - -6.712906837463379, - -3.334894895553589, - -1.2103675603866577, - 7.255547046661377, - 8.903468132019043, - -4.01986026763916, - 7.114678382873535, - -0.11212847381830215, - -3.688840866088867, - 6.135150909423828, - -9.895182609558105 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - }, - { - "options": { - "alpha": 0.3607245505146506 - } - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -0.35317301750183105, - 1.3590080738067627, - -0.35315653681755066, - 7.839725494384766, - -0.36027640104293823, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -0.36050841212272644, - 5.665064334869385, - -0.3602862060070038, - -0.3478761315345764, - -0.25319698452949524, - 7.255547046661377, - 8.903468132019043, - -0.3542475700378418, - 7.114678382873535, - -0.0382622666656971, - -0.3517060875892639, - 6.135150909423828, - -0.3607063591480255 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float32 4D tensor negative options.alpha", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - -3.8663666248321533, - 1.3590080738067627, - -3.8641843795776367, - 7.839725494384766, - -6.69080114364624, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - -7.419948101043701, - 5.665064334869385, - -6.712906837463379, - -3.334894895553589, - -1.2103675603866577, - 7.255547046661377, - 8.903468132019043, - -4.01986026763916, - 7.114678382873535, - -0.11212847381830215, - -3.688840866088867, - 6.135150909423828, - -9.895182609558105 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - }, - { - "options": { - "alpha": -3.468180406374035 - } - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.721739768981934, - 0.3768780529499054, - 1.4189997911453247, - 3.3955764770507812, - 1.3590080738067627, - 3.3954179286956787, - 7.839725494384766, - 3.463871955871582, - 0.5456406474113464, - 5.776711463928223, - 7.263273239135742, - 3.466102361679077, - 5.665064334869385, - 3.463966131210327, - 3.34464955329895, - 2.434358596801758, - 7.255547046661377, - 8.903468132019043, - 3.40590763092041, - 7.114678382873535, - 0.3678719699382782, - 3.381472587585449, - 6.135150909423828, - 3.468005657196045 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "elu float16 positive 0D scalar default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 negative 0D scalar default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - -3.8671875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - -0.97900390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 1D constant tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -3.8671875, - 1.359375, - -3.86328125, - 7.83984375, - -6.69140625, - 0.54541015625, - 5.77734375, - 7.26171875, - -7.421875, - 5.6640625, - -6.71484375, - -3.333984375, - -1.2099609375, - 7.25390625, - 8.90625, - -4.01953125, - 7.11328125, - -0.11212158203125, - -3.689453125, - 6.13671875, - -9.8984375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -0.97900390625, - 1.359375, - -0.97900390625, - 7.83984375, - -0.99853515625, - 0.54541015625, - 5.77734375, - 7.26171875, - -0.99951171875, - 5.6640625, - -0.9990234375, - -0.96435546875, - -0.70166015625, - 7.25390625, - 8.90625, - -0.98193359375, - 7.11328125, - -0.1060791015625, - -0.97509765625, - 6.13671875, - -1 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 1D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -3.8671875, - 1.359375, - -3.86328125, - 7.83984375, - -6.69140625, - 0.54541015625, - 5.77734375, - 7.26171875, - -7.421875, - 5.6640625, - -6.71484375, - -3.333984375, - -1.2099609375, - 7.25390625, - 8.90625, - -4.01953125, - 7.11328125, - -0.11212158203125, - -3.689453125, - 6.13671875, - -9.8984375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -0.97900390625, - 1.359375, - -0.97900390625, - 7.83984375, - -0.99853515625, - 0.54541015625, - 5.77734375, - 7.26171875, - -0.99951171875, - 5.6640625, - -0.9990234375, - -0.96435546875, - -0.70166015625, - 7.25390625, - 8.90625, - -0.98193359375, - 7.11328125, - -0.1060791015625, - -0.97509765625, - 6.13671875, - -1 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 2D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -3.8671875, - 1.359375, - -3.86328125, - 7.83984375, - -6.69140625, - 0.54541015625, - 5.77734375, - 7.26171875, - -7.421875, - 5.6640625, - -6.71484375, - -3.333984375, - -1.2099609375, - 7.25390625, - 8.90625, - -4.01953125, - 7.11328125, - -0.11212158203125, - -3.689453125, - 6.13671875, - -9.8984375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -0.97900390625, - 1.359375, - -0.97900390625, - 7.83984375, - -0.99853515625, - 0.54541015625, - 5.77734375, - 7.26171875, - -0.99951171875, - 5.6640625, - -0.9990234375, - -0.96435546875, - -0.70166015625, - 7.25390625, - 8.90625, - -0.98193359375, - 7.11328125, - -0.1060791015625, - -0.97509765625, - 6.13671875, - -1 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 3D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -3.8671875, - 1.359375, - -3.86328125, - 7.83984375, - -6.69140625, - 0.54541015625, - 5.77734375, - 7.26171875, - -7.421875, - 5.6640625, - -6.71484375, - -3.333984375, - -1.2099609375, - 7.25390625, - 8.90625, - -4.01953125, - 7.11328125, - -0.11212158203125, - -3.689453125, - 6.13671875, - -9.8984375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -0.97900390625, - 1.359375, - -0.97900390625, - 7.83984375, - -0.99853515625, - 0.54541015625, - 5.77734375, - 7.26171875, - -0.99951171875, - 5.6640625, - -0.9990234375, - -0.96435546875, - -0.70166015625, - 7.25390625, - 8.90625, - -0.98193359375, - 7.11328125, - -0.1060791015625, - -0.97509765625, - 6.13671875, - -1 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 4D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -3.8671875, - 1.359375, - -3.86328125, - 7.83984375, - -6.69140625, - 0.54541015625, - 5.77734375, - 7.26171875, - -7.421875, - 5.6640625, - -6.71484375, - -3.333984375, - -1.2099609375, - 7.25390625, - 8.90625, - -4.01953125, - 7.11328125, - -0.11212158203125, - -3.689453125, - 6.13671875, - -9.8984375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -0.97900390625, - 1.359375, - -0.97900390625, - 7.83984375, - -0.99853515625, - 0.54541015625, - 5.77734375, - 7.26171875, - -0.99951171875, - 5.6640625, - -0.9990234375, - -0.96435546875, - -0.70166015625, - 7.25390625, - 8.90625, - -0.98193359375, - 7.11328125, - -0.1060791015625, - -0.97509765625, - 6.13671875, - -1 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 5D tensor default options", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -3.8671875, - 1.359375, - -3.86328125, - 7.83984375, - -6.69140625, - 0.54541015625, - 5.77734375, - 7.26171875, - -7.421875, - 5.6640625, - -6.71484375, - -3.333984375, - -1.2099609375, - 7.25390625, - 8.90625, - -4.01953125, - 7.11328125, - -0.11212158203125, - -3.689453125, - 6.13671875, - -9.8984375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -0.97900390625, - 1.359375, - -0.97900390625, - 7.83984375, - -0.99853515625, - 0.54541015625, - 5.77734375, - 7.26171875, - -0.99951171875, - 5.6640625, - -0.9990234375, - -0.96435546875, - -0.70166015625, - 7.25390625, - 8.90625, - -0.98193359375, - 7.11328125, - -0.1060791015625, - -0.97509765625, - 6.13671875, - -1 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 4D tensor positive options.alpha", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -3.8671875, - 1.359375, - -3.86328125, - 7.83984375, - -6.69140625, - 0.54541015625, - 5.77734375, - 7.26171875, - -7.421875, - 5.6640625, - -6.71484375, - -3.333984375, - -1.2099609375, - 7.25390625, - 8.90625, - -4.01953125, - 7.11328125, - -0.11212158203125, - -3.689453125, - 6.13671875, - -9.8984375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - }, - { - "options": { - "alpha": 0.3607245505146506 - } - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -0.353271484375, - 1.359375, - -0.353271484375, - 7.83984375, - -0.3603515625, - 0.54541015625, - 5.77734375, - 7.26171875, - -0.360595703125, - 5.6640625, - -0.3603515625, - -0.347900390625, - -0.253173828125, - 7.25390625, - 8.90625, - -0.354248046875, - 7.11328125, - -0.03826904296875, - -0.351806640625, - 6.13671875, - -0.360595703125 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "elu float16 4D tensor negative options.alpha", - "graph": { - "inputs": { - "eluInput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - -3.8671875, - 1.359375, - -3.86328125, - 7.83984375, - -6.69140625, - 0.54541015625, - 5.77734375, - 7.26171875, - -7.421875, - 5.6640625, - -6.71484375, - -3.333984375, - -1.2099609375, - 7.25390625, - 8.90625, - -4.01953125, - 7.11328125, - -0.11212158203125, - -3.689453125, - 6.13671875, - -9.8984375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "elu", - "arguments": [ - { - "input": "eluInput" - }, - { - "options": { - "alpha": -3.468180406374035 - } - } - ], - "outputs": "eluOutput" - } - ], - "expectedOutputs": { - "eluOutput": { - "data": [ - 4.72265625, - 0.376953125, - 1.4189453125, - 3.396484375, - 1.359375, - 3.39453125, - 7.83984375, - 3.46484375, - 0.54541015625, - 5.77734375, - 7.26171875, - 3.466796875, - 5.6640625, - 3.46484375, - 3.34375, - 2.43359375, - 7.25390625, - 8.90625, - 3.40625, - 7.11328125, - 0.367919921875, - 3.380859375, - 6.13671875, - 3.46875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/equal.json b/tests/wpt_data/conformance/equal.json deleted file mode 100644 index b603e00..0000000 --- a/tests/wpt_data/conformance/equal.json +++ /dev/null @@ -1,2777 +0,0 @@ -{ - "operation": "equal", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/equal.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "equal float32 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - -0.6285496950149536 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -4.4166412353515625 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - -4.839719772338867, - 4.996258735656738, - 0.9727277755737305, - -6.173707485198975, - 2.80570650100708, - 5.588105201721191, - 7.767369747161865, - -4.308907985687256, - -5.895479679107666, - -8.53209114074707, - 2.80570650100708, - 5.588105201721191, - 0.17833954095840454, - -4.479541778564453, - 0.6819732189178467, - -6.6875128746032715, - 2.80570650100708, - 5.588105201721191, - -9.041799545288086, - -1.9728281497955322, - -3.011512279510498, - 3.6268343925476074 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - -4.839719772338867, - 4.996258735656738, - 0.9727277755737305, - -6.173707485198975, - 2.80570650100708, - 5.588105201721191, - 7.767369747161865, - -4.308907985687256, - -5.895479679107666, - -8.53209114074707, - 2.80570650100708, - 5.588105201721191, - 0.17833954095840454, - -4.479541778564453, - 0.6819732189178467, - -6.6875128746032715, - 2.80570650100708, - 5.588105201721191, - -9.041799545288086, - -1.9728281497955322, - -3.011512279510498, - 3.6268343925476074 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - -4.839719772338867, - 4.996258735656738, - 0.9727277755737305, - -6.173707485198975, - 2.80570650100708, - 5.588105201721191, - 7.767369747161865, - -4.308907985687256, - -5.895479679107666, - -8.53209114074707, - 2.80570650100708, - 5.588105201721191, - 0.17833954095840454, - -4.479541778564453, - 0.6819732189178467, - -6.6875128746032715, - 2.80570650100708, - 5.588105201721191, - -9.041799545288086, - -1.9728281497955322, - -3.011512279510498, - 3.6268343925476074 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - -4.839719772338867, - 4.996258735656738, - 0.9727277755737305, - -6.173707485198975, - 2.80570650100708, - 5.588105201721191, - 7.767369747161865, - -4.308907985687256, - -5.895479679107666, - -8.53209114074707, - 2.80570650100708, - 5.588105201721191, - 0.17833954095840454, - -4.479541778564453, - 0.6819732189178467, - -6.6875128746032715, - 2.80570650100708, - 5.588105201721191, - -9.041799545288086, - -1.9728281497955322, - -3.011512279510498, - 3.6268343925476074 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - -4.839719772338867, - 4.996258735656738, - 0.9727277755737305, - -6.173707485198975, - 2.80570650100708, - 5.588105201721191, - 7.767369747161865, - -4.308907985687256, - -5.895479679107666, - -8.53209114074707, - 2.80570650100708, - 5.588105201721191, - 0.17833954095840454, - -4.479541778564453, - 0.6819732189178467, - -6.6875128746032715, - 2.80570650100708, - 5.588105201721191, - -9.041799545288086, - -1.9728281497955322, - -3.011512279510498, - 3.6268343925476074 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - -4.839719772338867, - 4.996258735656738, - 0.9727277755737305, - -6.173707485198975, - 2.80570650100708, - 5.588105201721191, - 7.767369747161865, - -4.308907985687256, - -5.895479679107666, - -8.53209114074707, - 2.80570650100708, - 5.588105201721191, - 0.17833954095840454, - -4.479541778564453, - 0.6819732189178467, - -6.6875128746032715, - 2.80570650100708, - 5.588105201721191, - -9.041799545288086, - -1.9728281497955322, - -3.011512279510498, - 3.6268343925476074 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - -4.9622955322265625, - -2.863192081451416, - -3.011512279510498, - 3.6268343925476074 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - -9.041799545288086, - 3.6268343925476074 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.80570650100708 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.80570650100708, - 5.588105201721191, - 2.855226516723633, - 4.996258735656738, - 0.9727277755737305, - -4.742599964141846, - 2.80570650100708, - 5.588105201721191, - -5.107602119445801, - 6.624142169952393, - -2.3207247257232666, - -7.053895950317383, - 2.80570650100708, - 5.588105201721191, - 4.980423927307129, - -5.440841197967529, - 1.1459590196609497, - 7.774532794952393, - 2.80570650100708, - 5.588105201721191, - -6.245251178741455, - -2.8490731716156006, - -2.6951117515563965, - 5.817563056945801 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - -0.62841796875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -4.41796875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - -4.83984375, - 4.99609375, - 0.97265625, - -6.171875, - 2.806640625, - 5.58984375, - 7.765625, - -4.30859375, - -5.89453125, - -8.53125, - 2.806640625, - 5.58984375, - 0.1783447265625, - -4.48046875, - 0.68212890625, - -6.6875, - 2.806640625, - 5.58984375, - -9.0390625, - -1.97265625, - -3.01171875, - 3.626953125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - -4.83984375, - 4.99609375, - 0.97265625, - -6.171875, - 2.806640625, - 5.58984375, - 7.765625, - -4.30859375, - -5.89453125, - -8.53125, - 2.806640625, - 5.58984375, - 0.1783447265625, - -4.48046875, - 0.68212890625, - -6.6875, - 2.806640625, - 5.58984375, - -9.0390625, - -1.97265625, - -3.01171875, - 3.626953125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - -4.83984375, - 4.99609375, - 0.97265625, - -6.171875, - 2.806640625, - 5.58984375, - 7.765625, - -4.30859375, - -5.89453125, - -8.53125, - 2.806640625, - 5.58984375, - 0.1783447265625, - -4.48046875, - 0.68212890625, - -6.6875, - 2.806640625, - 5.58984375, - -9.0390625, - -1.97265625, - -3.01171875, - 3.626953125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - -4.83984375, - 4.99609375, - 0.97265625, - -6.171875, - 2.806640625, - 5.58984375, - 7.765625, - -4.30859375, - -5.89453125, - -8.53125, - 2.806640625, - 5.58984375, - 0.1783447265625, - -4.48046875, - 0.68212890625, - -6.6875, - 2.806640625, - 5.58984375, - -9.0390625, - -1.97265625, - -3.01171875, - 3.626953125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - -4.83984375, - 4.99609375, - 0.97265625, - -6.171875, - 2.806640625, - 5.58984375, - 7.765625, - -4.30859375, - -5.89453125, - -8.53125, - 2.806640625, - 5.58984375, - 0.1783447265625, - -4.48046875, - 0.68212890625, - -6.6875, - 2.806640625, - 5.58984375, - -9.0390625, - -1.97265625, - -3.01171875, - 3.626953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - -4.83984375, - 4.99609375, - 0.97265625, - -6.171875, - 2.806640625, - 5.58984375, - 7.765625, - -4.30859375, - -5.89453125, - -8.53125, - 2.806640625, - 5.58984375, - 0.1783447265625, - -4.48046875, - 0.68212890625, - -6.6875, - 2.806640625, - 5.58984375, - -9.0390625, - -1.97265625, - -3.01171875, - 3.626953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - -4.9609375, - -2.86328125, - -3.01171875, - 3.626953125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - -9.0390625, - 3.626953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "equal float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 2.806640625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.806640625, - 5.58984375, - 2.85546875, - 4.99609375, - 0.97265625, - -4.7421875, - 2.806640625, - 5.58984375, - -5.109375, - 6.625, - -2.3203125, - -7.0546875, - 2.806640625, - 5.58984375, - 4.98046875, - -5.44140625, - 1.1455078125, - 7.7734375, - 2.806640625, - 5.58984375, - -6.24609375, - -2.849609375, - -2.6953125, - 5.81640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "equal", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/exp.json b/tests/wpt_data/conformance/exp.json deleted file mode 100644 index 8ff9470..0000000 --- a/tests/wpt_data/conformance/exp.json +++ /dev/null @@ -1,1183 +0,0 @@ -{ - "operation": "exp", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/exp.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "exp float32 0D scalar", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.3421436548233032 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.4079625606536865 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "exp float32 1D constant tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.3421436548233032, - -3.310965061187744, - -3.6967575550079346, - -5.105378150939941, - 5.47104024887085, - -0.06790750473737717, - 2.7373435497283936, - -3.5470757484436035, - 5.339224815368652, - -1.2636781930923462, - -0.9162953495979309, - -9.088432312011719, - -4.016050815582275, - 4.670352935791016, - 7.326992034912109, - 8.294342994689941, - -7.345414161682129, - -0.9275799989700317, - -1.7085379362106323, - -9.73737907409668, - -1.9747875928878784, - 8.203149795532227, - -7.267597675323486, - -3.5890684127807617 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.4079625606536865, - 0.03648095205426216, - 0.024803820997476578, - 0.006064045242965221, - 237.70733642578125, - 0.9343469142913818, - 15.44589900970459, - 0.02880876138806343, - 208.35113525390625, - 0.2826126217842102, - 0.39999815821647644, - 0.00011296502634650096, - 0.018024004995822906, - 106.73540496826172, - 1520.8004150390625, - 4001.173583984375, - 0.0006455459515564144, - 0.3955096900463104, - 0.18113042414188385, - 5.90350573475007e-05, - 0.1387907862663269, - 3652.4365234375, - 0.0006977862794883549, - 0.02762405201792717 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "exp float32 1D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.3421436548233032, - -3.310965061187744, - -3.6967575550079346, - -5.105378150939941, - 5.47104024887085, - -0.06790750473737717, - 2.7373435497283936, - -3.5470757484436035, - 5.339224815368652, - -1.2636781930923462, - -0.9162953495979309, - -9.088432312011719, - -4.016050815582275, - 4.670352935791016, - 7.326992034912109, - 8.294342994689941, - -7.345414161682129, - -0.9275799989700317, - -1.7085379362106323, - -9.73737907409668, - -1.9747875928878784, - 8.203149795532227, - -7.267597675323486, - -3.5890684127807617 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.4079625606536865, - 0.03648095205426216, - 0.024803820997476578, - 0.006064045242965221, - 237.70733642578125, - 0.9343469142913818, - 15.44589900970459, - 0.02880876138806343, - 208.35113525390625, - 0.2826126217842102, - 0.39999815821647644, - 0.00011296502634650096, - 0.018024004995822906, - 106.73540496826172, - 1520.8004150390625, - 4001.173583984375, - 0.0006455459515564144, - 0.3955096900463104, - 0.18113042414188385, - 5.90350573475007e-05, - 0.1387907862663269, - 3652.4365234375, - 0.0006977862794883549, - 0.02762405201792717 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "exp float32 2D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.3421436548233032, - -3.310965061187744, - -3.6967575550079346, - -5.105378150939941, - 5.47104024887085, - -0.06790750473737717, - 2.7373435497283936, - -3.5470757484436035, - 5.339224815368652, - -1.2636781930923462, - -0.9162953495979309, - -9.088432312011719, - -4.016050815582275, - 4.670352935791016, - 7.326992034912109, - 8.294342994689941, - -7.345414161682129, - -0.9275799989700317, - -1.7085379362106323, - -9.73737907409668, - -1.9747875928878784, - 8.203149795532227, - -7.267597675323486, - -3.5890684127807617 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.4079625606536865, - 0.03648095205426216, - 0.024803820997476578, - 0.006064045242965221, - 237.70733642578125, - 0.9343469142913818, - 15.44589900970459, - 0.02880876138806343, - 208.35113525390625, - 0.2826126217842102, - 0.39999815821647644, - 0.00011296502634650096, - 0.018024004995822906, - 106.73540496826172, - 1520.8004150390625, - 4001.173583984375, - 0.0006455459515564144, - 0.3955096900463104, - 0.18113042414188385, - 5.90350573475007e-05, - 0.1387907862663269, - 3652.4365234375, - 0.0006977862794883549, - 0.02762405201792717 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "exp float32 3D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.3421436548233032, - -3.310965061187744, - -3.6967575550079346, - -5.105378150939941, - 5.47104024887085, - -0.06790750473737717, - 2.7373435497283936, - -3.5470757484436035, - 5.339224815368652, - -1.2636781930923462, - -0.9162953495979309, - -9.088432312011719, - -4.016050815582275, - 4.670352935791016, - 7.326992034912109, - 8.294342994689941, - -7.345414161682129, - -0.9275799989700317, - -1.7085379362106323, - -9.73737907409668, - -1.9747875928878784, - 8.203149795532227, - -7.267597675323486, - -3.5890684127807617 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.4079625606536865, - 0.03648095205426216, - 0.024803820997476578, - 0.006064045242965221, - 237.70733642578125, - 0.9343469142913818, - 15.44589900970459, - 0.02880876138806343, - 208.35113525390625, - 0.2826126217842102, - 0.39999815821647644, - 0.00011296502634650096, - 0.018024004995822906, - 106.73540496826172, - 1520.8004150390625, - 4001.173583984375, - 0.0006455459515564144, - 0.3955096900463104, - 0.18113042414188385, - 5.90350573475007e-05, - 0.1387907862663269, - 3652.4365234375, - 0.0006977862794883549, - 0.02762405201792717 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "exp float32 4D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.3421436548233032, - -3.310965061187744, - -3.6967575550079346, - -5.105378150939941, - 5.47104024887085, - -0.06790750473737717, - 2.7373435497283936, - -3.5470757484436035, - 5.339224815368652, - -1.2636781930923462, - -0.9162953495979309, - -9.088432312011719, - -4.016050815582275, - 4.670352935791016, - 7.326992034912109, - 8.294342994689941, - -7.345414161682129, - -0.9275799989700317, - -1.7085379362106323, - -9.73737907409668, - -1.9747875928878784, - 8.203149795532227, - -7.267597675323486, - -3.5890684127807617 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.4079625606536865, - 0.03648095205426216, - 0.024803820997476578, - 0.006064045242965221, - 237.70733642578125, - 0.9343469142913818, - 15.44589900970459, - 0.02880876138806343, - 208.35113525390625, - 0.2826126217842102, - 0.39999815821647644, - 0.00011296502634650096, - 0.018024004995822906, - 106.73540496826172, - 1520.8004150390625, - 4001.173583984375, - 0.0006455459515564144, - 0.3955096900463104, - 0.18113042414188385, - 5.90350573475007e-05, - 0.1387907862663269, - 3652.4365234375, - 0.0006977862794883549, - 0.02762405201792717 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "exp float32 5D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.3421436548233032, - -3.310965061187744, - -3.6967575550079346, - -5.105378150939941, - 5.47104024887085, - -0.06790750473737717, - 2.7373435497283936, - -3.5470757484436035, - 5.339224815368652, - -1.2636781930923462, - -0.9162953495979309, - -9.088432312011719, - -4.016050815582275, - 4.670352935791016, - 7.326992034912109, - 8.294342994689941, - -7.345414161682129, - -0.9275799989700317, - -1.7085379362106323, - -9.73737907409668, - -1.9747875928878784, - 8.203149795532227, - -7.267597675323486, - -3.5890684127807617 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.4079625606536865, - 0.03648095205426216, - 0.024803820997476578, - 0.006064045242965221, - 237.70733642578125, - 0.9343469142913818, - 15.44589900970459, - 0.02880876138806343, - 208.35113525390625, - 0.2826126217842102, - 0.39999815821647644, - 0.00011296502634650096, - 0.018024004995822906, - 106.73540496826172, - 1520.8004150390625, - 4001.173583984375, - 0.0006455459515564144, - 0.3955096900463104, - 0.18113042414188385, - 5.90350573475007e-05, - 0.1387907862663269, - 3652.4365234375, - 0.0006977862794883549, - 0.02762405201792717 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "exp float16 0D scalar", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.342041015625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.408203125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "exp float16 1D constant tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.342041015625, - -3.310546875, - -3.697265625, - -5.10546875, - 5.47265625, - -0.06793212890625, - 2.73828125, - -3.546875, - 5.33984375, - -1.263671875, - -0.91650390625, - -9.0859375, - -4.015625, - 4.671875, - 7.328125, - 8.296875, - -7.34375, - -0.927734375, - -1.708984375, - -9.734375, - -1.974609375, - 8.203125, - -7.26953125, - -3.58984375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.408203125, - 0.0364990234375, - 0.0247955322265625, - 0.00606536865234375, - 238.125, - 0.93408203125, - 15.4609375, - 0.02880859375, - 208.5, - 0.28271484375, - 0.39990234375, - 0.00011324882507324219, - 0.018035888671875, - 106.875, - 1523, - 4012, - 0.0006465911865234375, - 0.3955078125, - 0.1810302734375, - 5.918741226196289e-05, - 0.1387939453125, - 3652, - 0.0006966590881347656, - 0.0276031494140625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "exp float16 1D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.342041015625, - -3.310546875, - -3.697265625, - -5.10546875, - 5.47265625, - -0.06793212890625, - 2.73828125, - -3.546875, - 5.33984375, - -1.263671875, - -0.91650390625, - -9.0859375, - -4.015625, - 4.671875, - 7.328125, - 8.296875, - -7.34375, - -0.927734375, - -1.708984375, - -9.734375, - -1.974609375, - 8.203125, - -7.26953125, - -3.58984375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.408203125, - 0.0364990234375, - 0.0247955322265625, - 0.00606536865234375, - 238.125, - 0.93408203125, - 15.4609375, - 0.02880859375, - 208.5, - 0.28271484375, - 0.39990234375, - 0.00011324882507324219, - 0.018035888671875, - 106.875, - 1523, - 4012, - 0.0006465911865234375, - 0.3955078125, - 0.1810302734375, - 5.918741226196289e-05, - 0.1387939453125, - 3652, - 0.0006966590881347656, - 0.0276031494140625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "exp float16 2D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.342041015625, - -3.310546875, - -3.697265625, - -5.10546875, - 5.47265625, - -0.06793212890625, - 2.73828125, - -3.546875, - 5.33984375, - -1.263671875, - -0.91650390625, - -9.0859375, - -4.015625, - 4.671875, - 7.328125, - 8.296875, - -7.34375, - -0.927734375, - -1.708984375, - -9.734375, - -1.974609375, - 8.203125, - -7.26953125, - -3.58984375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.408203125, - 0.0364990234375, - 0.0247955322265625, - 0.00606536865234375, - 238.125, - 0.93408203125, - 15.4609375, - 0.02880859375, - 208.5, - 0.28271484375, - 0.39990234375, - 0.00011324882507324219, - 0.018035888671875, - 106.875, - 1523, - 4012, - 0.0006465911865234375, - 0.3955078125, - 0.1810302734375, - 5.918741226196289e-05, - 0.1387939453125, - 3652, - 0.0006966590881347656, - 0.0276031494140625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "exp float16 3D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.342041015625, - -3.310546875, - -3.697265625, - -5.10546875, - 5.47265625, - -0.06793212890625, - 2.73828125, - -3.546875, - 5.33984375, - -1.263671875, - -0.91650390625, - -9.0859375, - -4.015625, - 4.671875, - 7.328125, - 8.296875, - -7.34375, - -0.927734375, - -1.708984375, - -9.734375, - -1.974609375, - 8.203125, - -7.26953125, - -3.58984375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.408203125, - 0.0364990234375, - 0.0247955322265625, - 0.00606536865234375, - 238.125, - 0.93408203125, - 15.4609375, - 0.02880859375, - 208.5, - 0.28271484375, - 0.39990234375, - 0.00011324882507324219, - 0.018035888671875, - 106.875, - 1523, - 4012, - 0.0006465911865234375, - 0.3955078125, - 0.1810302734375, - 5.918741226196289e-05, - 0.1387939453125, - 3652, - 0.0006966590881347656, - 0.0276031494140625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "exp float16 4D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.342041015625, - -3.310546875, - -3.697265625, - -5.10546875, - 5.47265625, - -0.06793212890625, - 2.73828125, - -3.546875, - 5.33984375, - -1.263671875, - -0.91650390625, - -9.0859375, - -4.015625, - 4.671875, - 7.328125, - 8.296875, - -7.34375, - -0.927734375, - -1.708984375, - -9.734375, - -1.974609375, - 8.203125, - -7.26953125, - -3.58984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.408203125, - 0.0364990234375, - 0.0247955322265625, - 0.00606536865234375, - 238.125, - 0.93408203125, - 15.4609375, - 0.02880859375, - 208.5, - 0.28271484375, - 0.39990234375, - 0.00011324882507324219, - 0.018035888671875, - 106.875, - 1523, - 4012, - 0.0006465911865234375, - 0.3955078125, - 0.1810302734375, - 5.918741226196289e-05, - 0.1387939453125, - 3652, - 0.0006966590881347656, - 0.0276031494140625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "exp float16 5D tensor", - "graph": { - "inputs": { - "expInput": { - "data": [ - 0.342041015625, - -3.310546875, - -3.697265625, - -5.10546875, - 5.47265625, - -0.06793212890625, - 2.73828125, - -3.546875, - 5.33984375, - -1.263671875, - -0.91650390625, - -9.0859375, - -4.015625, - 4.671875, - 7.328125, - 8.296875, - -7.34375, - -0.927734375, - -1.708984375, - -9.734375, - -1.974609375, - 8.203125, - -7.26953125, - -3.58984375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "exp", - "arguments": [ - { - "input": "expInput" - } - ], - "outputs": "expOutput" - } - ], - "expectedOutputs": { - "expOutput": { - "data": [ - 1.408203125, - 0.0364990234375, - 0.0247955322265625, - 0.00606536865234375, - 238.125, - 0.93408203125, - 15.4609375, - 0.02880859375, - 208.5, - 0.28271484375, - 0.39990234375, - 0.00011324882507324219, - 0.018035888671875, - 106.875, - 1523, - 4012, - 0.0006465911865234375, - 0.3955078125, - 0.1810302734375, - 5.918741226196289e-05, - 0.1387939453125, - 3652, - 0.0006966590881347656, - 0.0276031494140625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/expand.json b/tests/wpt_data/conformance/expand.json deleted file mode 100644 index 7ae90a8..0000000 --- a/tests/wpt_data/conformance/expand.json +++ /dev/null @@ -1,3341 +0,0 @@ -{ - "operation": "expand", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/expand.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "expand float32 0D scalar to 1D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 0D scalar to 2D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 0D scalar to 3D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 3, - 4 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 0D scalar to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 2, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 0D scalar to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 3, - 1, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 1D constant tensor to 1D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 1D tensor to 1D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 1D tensor to 2D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 1D tensor to 3D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 3, - 4 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 1D tensor to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 2, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 1D tensor to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 3, - 1, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 2D tensor to 2D (1st dimension)", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375 - ], - "descriptor": { - "shape": [ - 1, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375, - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375, - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375, - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 2D tensor to 2D (2nd dimension)", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 4.965915679931641, - 66.14382934570312, - 75.28175354003906, - 49.998130798339844 - ], - "descriptor": { - "shape": [ - 4, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 4.965915679931641, - 4.965915679931641, - 4.965915679931641, - 4.965915679931641, - 4.965915679931641, - 4.965915679931641, - 66.14382934570312, - 66.14382934570312, - 66.14382934570312, - 66.14382934570312, - 66.14382934570312, - 66.14382934570312, - 75.28175354003906, - 75.28175354003906, - 75.28175354003906, - 75.28175354003906, - 75.28175354003906, - 75.28175354003906, - 49.998130798339844, - 49.998130798339844, - 49.998130798339844, - 49.998130798339844, - 49.998130798339844, - 49.998130798339844 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 2D tensor to 2D (all dimensions)", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 1, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 2D tensor to 3D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 4.965915679931641, - 66.14382934570312, - 75.28175354003906, - 49.998130798339844 - ], - "descriptor": { - "shape": [ - 4, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 4, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 4.965915679931641, - 4.965915679931641, - 4.965915679931641, - 66.14382934570312, - 66.14382934570312, - 66.14382934570312, - 75.28175354003906, - 75.28175354003906, - 75.28175354003906, - 49.998130798339844, - 49.998130798339844, - 49.998130798339844, - 4.965915679931641, - 4.965915679931641, - 4.965915679931641, - 66.14382934570312, - 66.14382934570312, - 66.14382934570312, - 75.28175354003906, - 75.28175354003906, - 75.28175354003906, - 49.998130798339844, - 49.998130798339844, - 49.998130798339844 - ], - "descriptor": { - "shape": [ - 2, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 2D tensor to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375 - ], - "descriptor": { - "shape": [ - 1, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 1, - 2, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375, - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375, - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375, - 10.898762702941895, - -29.391416549682617, - -73.74250793457031, - 22.456905364990234, - -97.5792465209961, - -76.95013427734375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 2D tensor to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 1, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 1, - 3, - 2, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959, - -6.461850643157959 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 3D tensor to 3D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 21.694129943847656, - -72.82571411132812 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812 - ], - "descriptor": { - "shape": [ - 2, - 2, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 3D tensor to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 21.694129943847656, - -72.82571411132812 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 2, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 3D tensor to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 21.694129943847656, - -72.82571411132812 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 1, - 2, - 2, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812, - 21.694129943847656, - 21.694129943847656, - 21.694129943847656, - -72.82571411132812, - -72.82571411132812, - -72.82571411132812 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 4D tensor to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 12.799123764038086, - -26.550199508666992 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 3, - 2, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float32 4D tensor to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 12.799123764038086, - -26.550199508666992 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 3, - 1, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - 12.799123764038086, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992, - -26.550199508666992 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "expand float16 0D scalar to 1D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 0D scalar to 2D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 0D scalar to 3D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 3, - 4 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 0D scalar to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 2, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 0D scalar to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 3, - 1, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 1D constant tensor to 1D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 1D tensor to 1D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 1D tensor to 2D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 1D tensor to 3D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 3, - 4 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 1D tensor to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 2, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 1D tensor to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 3, - 1, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 2D tensor to 2D (1st dimension)", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375 - ], - "descriptor": { - "shape": [ - 1, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375, - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375, - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375, - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 2D tensor to 2D (2nd dimension)", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 4.96484375, - 66.125, - 75.3125, - 50 - ], - "descriptor": { - "shape": [ - 4, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 4.96484375, - 4.96484375, - 4.96484375, - 4.96484375, - 4.96484375, - 4.96484375, - 66.125, - 66.125, - 66.125, - 66.125, - 66.125, - 66.125, - 75.3125, - 75.3125, - 75.3125, - 75.3125, - 75.3125, - 75.3125, - 50, - 50, - 50, - 50, - 50, - 50 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 2D tensor to 2D (all dimensions)", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [ - 1, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 2D tensor to 3D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 4.96484375, - 66.125, - 75.3125, - 50 - ], - "descriptor": { - "shape": [ - 4, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 4, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 4.96484375, - 4.96484375, - 4.96484375, - 66.125, - 66.125, - 66.125, - 75.3125, - 75.3125, - 75.3125, - 50, - 50, - 50, - 4.96484375, - 4.96484375, - 4.96484375, - 66.125, - 66.125, - 66.125, - 75.3125, - 75.3125, - 75.3125, - 50, - 50, - 50 - ], - "descriptor": { - "shape": [ - 2, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 2D tensor to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375 - ], - "descriptor": { - "shape": [ - 1, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 1, - 2, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375, - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375, - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375, - 10.8984375, - -29.390625, - -73.75, - 22.453125, - -97.5625, - -76.9375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 2D tensor to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - -6.4609375 - ], - "descriptor": { - "shape": [ - 1, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 1, - 3, - 2, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375, - -6.4609375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 3D tensor to 3D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 21.6875, - -72.8125 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 6 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 21.6875, - 21.6875, - 21.6875, - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125, - -72.8125, - -72.8125, - -72.8125, - 21.6875, - 21.6875, - 21.6875, - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125, - -72.8125, - -72.8125, - -72.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 3D tensor to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 21.6875, - -72.8125 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 2, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125, - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125, - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125, - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 3D tensor to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 21.6875, - -72.8125 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 1, - 2, - 2, - 3 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125, - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125, - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125, - 21.6875, - 21.6875, - 21.6875, - -72.8125, - -72.8125, - -72.8125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 4D tensor to 4D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 12.796875, - -26.546875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 3, - 2, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "expand float16 4D tensor to 5D", - "graph": { - "inputs": { - "expandInput": { - "data": [ - 12.796875, - -26.546875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "expand", - "arguments": [ - { - "input": "expandInput" - }, - { - "newShape": [ - 2, - 2, - 3, - 1, - 2 - ] - } - ], - "outputs": "expandOutput" - } - ], - "expectedOutputs": { - "expandOutput": { - "data": [ - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - 12.796875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875, - -26.546875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/floor.json b/tests/wpt_data/conformance/floor.json deleted file mode 100644 index c54aa26..0000000 --- a/tests/wpt_data/conformance/floor.json +++ /dev/null @@ -1,1183 +0,0 @@ -{ - "operation": "floor", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/floor.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "floor float32 0D scalar", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.69458770751953 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "floor float32 1D constant tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.69458770751953, - -79.67150115966797, - -66.80949401855469, - -71.88439178466797, - 86.33935546875, - 6.823808670043945, - 24.908447265625, - 0.9734055399894714, - 19.948184967041016, - 0.8437776565551758, - -24.752939224243164, - 77.76482391357422, - -33.644466400146484, - 80.7762451171875, - 44.47844314575195, - -37.65005874633789, - -83.78780364990234, - 65.840087890625, - -39.83677673339844, - 32.5257568359375, - -21.213542938232422, - -80.30911254882812, - 16.674850463867188, - -72.88893127441406 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "floor float32 1D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.69458770751953, - -79.67150115966797, - -66.80949401855469, - -71.88439178466797, - 86.33935546875, - 6.823808670043945, - 24.908447265625, - 0.9734055399894714, - 19.948184967041016, - 0.8437776565551758, - -24.752939224243164, - 77.76482391357422, - -33.644466400146484, - 80.7762451171875, - 44.47844314575195, - -37.65005874633789, - -83.78780364990234, - 65.840087890625, - -39.83677673339844, - 32.5257568359375, - -21.213542938232422, - -80.30911254882812, - 16.674850463867188, - -72.88893127441406 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "floor float32 2D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.69458770751953, - -79.67150115966797, - -66.80949401855469, - -71.88439178466797, - 86.33935546875, - 6.823808670043945, - 24.908447265625, - 0.9734055399894714, - 19.948184967041016, - 0.8437776565551758, - -24.752939224243164, - 77.76482391357422, - -33.644466400146484, - 80.7762451171875, - 44.47844314575195, - -37.65005874633789, - -83.78780364990234, - 65.840087890625, - -39.83677673339844, - 32.5257568359375, - -21.213542938232422, - -80.30911254882812, - 16.674850463867188, - -72.88893127441406 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "floor float32 3D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.69458770751953, - -79.67150115966797, - -66.80949401855469, - -71.88439178466797, - 86.33935546875, - 6.823808670043945, - 24.908447265625, - 0.9734055399894714, - 19.948184967041016, - 0.8437776565551758, - -24.752939224243164, - 77.76482391357422, - -33.644466400146484, - 80.7762451171875, - 44.47844314575195, - -37.65005874633789, - -83.78780364990234, - 65.840087890625, - -39.83677673339844, - 32.5257568359375, - -21.213542938232422, - -80.30911254882812, - 16.674850463867188, - -72.88893127441406 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "floor float32 4D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.69458770751953, - -79.67150115966797, - -66.80949401855469, - -71.88439178466797, - 86.33935546875, - 6.823808670043945, - 24.908447265625, - 0.9734055399894714, - 19.948184967041016, - 0.8437776565551758, - -24.752939224243164, - 77.76482391357422, - -33.644466400146484, - 80.7762451171875, - 44.47844314575195, - -37.65005874633789, - -83.78780364990234, - 65.840087890625, - -39.83677673339844, - 32.5257568359375, - -21.213542938232422, - -80.30911254882812, - 16.674850463867188, - -72.88893127441406 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "floor float32 5D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.69458770751953, - -79.67150115966797, - -66.80949401855469, - -71.88439178466797, - 86.33935546875, - 6.823808670043945, - 24.908447265625, - 0.9734055399894714, - 19.948184967041016, - 0.8437776565551758, - -24.752939224243164, - 77.76482391357422, - -33.644466400146484, - 80.7762451171875, - 44.47844314575195, - -37.65005874633789, - -83.78780364990234, - 65.840087890625, - -39.83677673339844, - 32.5257568359375, - -21.213542938232422, - -80.30911254882812, - 16.674850463867188, - -72.88893127441406 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "floor float16 0D scalar", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.6875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "floor float16 1D constant tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.6875, - -79.6875, - -66.8125, - -71.875, - 86.3125, - 6.82421875, - 24.90625, - 0.9736328125, - 19.953125, - 0.84375, - -24.75, - 77.75, - -33.65625, - 80.75, - 44.46875, - -37.65625, - -83.8125, - 65.8125, - -39.84375, - 32.53125, - -21.21875, - -80.3125, - 16.671875, - -72.875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "floor float16 1D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.6875, - -79.6875, - -66.8125, - -71.875, - 86.3125, - 6.82421875, - 24.90625, - 0.9736328125, - 19.953125, - 0.84375, - -24.75, - 77.75, - -33.65625, - 80.75, - 44.46875, - -37.65625, - -83.8125, - 65.8125, - -39.84375, - 32.53125, - -21.21875, - -80.3125, - 16.671875, - -72.875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "floor float16 2D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.6875, - -79.6875, - -66.8125, - -71.875, - 86.3125, - 6.82421875, - 24.90625, - 0.9736328125, - 19.953125, - 0.84375, - -24.75, - 77.75, - -33.65625, - 80.75, - 44.46875, - -37.65625, - -83.8125, - 65.8125, - -39.84375, - 32.53125, - -21.21875, - -80.3125, - 16.671875, - -72.875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "floor float16 3D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.6875, - -79.6875, - -66.8125, - -71.875, - 86.3125, - 6.82421875, - 24.90625, - 0.9736328125, - 19.953125, - 0.84375, - -24.75, - 77.75, - -33.65625, - 80.75, - 44.46875, - -37.65625, - -83.8125, - 65.8125, - -39.84375, - 32.53125, - -21.21875, - -80.3125, - 16.671875, - -72.875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "floor float16 4D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.6875, - -79.6875, - -66.8125, - -71.875, - 86.3125, - 6.82421875, - 24.90625, - 0.9736328125, - 19.953125, - 0.84375, - -24.75, - 77.75, - -33.65625, - 80.75, - 44.46875, - -37.65625, - -83.8125, - 65.8125, - -39.84375, - 32.53125, - -21.21875, - -80.3125, - 16.671875, - -72.875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "floor float16 5D tensor", - "graph": { - "inputs": { - "floorInput": { - "data": [ - 89.6875, - -79.6875, - -66.8125, - -71.875, - 86.3125, - 6.82421875, - 24.90625, - 0.9736328125, - 19.953125, - 0.84375, - -24.75, - 77.75, - -33.65625, - 80.75, - 44.46875, - -37.65625, - -83.8125, - 65.8125, - -39.84375, - 32.53125, - -21.21875, - -80.3125, - 16.671875, - -72.875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "floor", - "arguments": [ - { - "input": "floorInput" - } - ], - "outputs": "floorOutput" - } - ], - "expectedOutputs": { - "floorOutput": { - "data": [ - 89, - -80, - -67, - -72, - 86, - 6, - 24, - 0, - 19, - 0, - -25, - 77, - -34, - 80, - 44, - -38, - -84, - 65, - -40, - 32, - -22, - -81, - 16, - -73 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/gather.json b/tests/wpt_data/conformance/gather.json deleted file mode 100644 index 6c3ca31..0000000 --- a/tests/wpt_data/conformance/gather.json +++ /dev/null @@ -1,4281 +0,0 @@ -{ - "operation": "gather", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/gather.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "gather float32 1D tensor and uint32 0D scalar indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 4 - ], - "descriptor": { - "shape": [], - "dataType": "uint32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 89.0337142944336 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 1D tensor and int64 0D scalar indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 4 - ], - "descriptor": { - "shape": [], - "dataType": "int64" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 89.0337142944336 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 1D tensor and int32 0D scalar indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 4 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 89.0337142944336 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 1D tensor and int32 1D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 16, - 20, - 6, - 11, - 17, - 19, - 13, - 17 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 10.829925537109375, - 0.9129875898361206, - 43.84803771972656, - -50.42131042480469, - -19.693084716796875, - 43.11057662963867, - 55.620765686035156, - -19.693084716796875 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 1D tensor and int32 2D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 14, - 9, - 21, - 17 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 44.92119598388672, - 41.94132614135742, - -7.699817180633545, - -19.693084716796875 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 1D tensor and int32 3D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 17, - 19, - 14, - 16, - 13, - 0, - 5, - 15, - 18, - 18, - 6, - 20, - 7, - 22, - 5, - 1, - 4, - 19 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -19.693084716796875, - 43.11057662963867, - 44.92119598388672, - 10.829925537109375, - 55.620765686035156, - -66.05901336669922, - -45.89653396606445, - 56.828636169433594, - -37.696800231933594, - -37.696800231933594, - 43.84803771972656, - 0.9129875898361206, - 48.81806945800781, - 25.76774024963379, - -45.89653396606445, - -68.9197006225586, - 89.0337142944336, - 43.11057662963867 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 1D tensor and int32 4D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 18, - 18, - 22, - 11, - 8, - 15, - 12, - 11, - 7, - 13, - 7, - 7 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -37.696800231933594, - -37.696800231933594, - 25.76774024963379, - -50.42131042480469, - 51.79948425292969, - 56.828636169433594, - 90.2870101928711, - -50.42131042480469, - 48.81806945800781, - 55.620765686035156, - 48.81806945800781, - 48.81806945800781 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 2D tensor and 0D scalar indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 11 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 2D tensor and 1D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 1, - 10, - 9, - 0, - 3, - 5, - 3, - 8 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -77.02045440673828, - -26.158037185668945, - 0.9129875898361206, - -7.699817180633545, - -37.696800231933594, - 43.11057662963867, - -66.05901336669922, - -68.9197006225586, - 43.84803771972656, - 48.81806945800781, - -1.1303654909133911, - -50.42131042480469, - 43.84803771972656, - 48.81806945800781, - 10.829925537109375, - -19.693084716796875 - ], - "descriptor": { - "shape": [ - 8, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 2D tensor and 2D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 4, - 8, - 9, - 10 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 51.79948425292969, - 41.94132614135742, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 2D tensor and 3D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 8, - 2, - 2, - 3, - 4, - 1, - 2, - 2, - 7, - 11, - 4, - 11, - 6, - 6, - 7, - 3, - 11, - 10 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 10.829925537109375, - -19.693084716796875, - 89.0337142944336, - -45.89653396606445, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 89.0337142944336, - -45.89653396606445, - 44.92119598388672, - 56.828636169433594, - 25.76774024963379, - 73.60064697265625, - 51.79948425292969, - 41.94132614135742, - 25.76774024963379, - 73.60064697265625, - 90.2870101928711, - 55.620765686035156, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 43.84803771972656, - 48.81806945800781, - 25.76774024963379, - 73.60064697265625, - 0.9129875898361206, - -7.699817180633545 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 2D tensor and 4D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 6, - 9, - 7, - 3, - 4, - 7, - 4, - 3, - 7, - 7, - 6, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 90.2870101928711, - 55.620765686035156, - -37.696800231933594, - 43.11057662963867, - 44.92119598388672, - 56.828636169433594, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - 44.92119598388672, - 56.828636169433594, - 51.79948425292969, - 41.94132614135742, - 43.84803771972656, - 48.81806945800781, - 44.92119598388672, - 56.828636169433594, - 44.92119598388672, - 56.828636169433594, - 90.2870101928711, - 55.620765686035156, - -66.05901336669922, - -68.9197006225586 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 3D tensor and 2D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 2, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594 - ], - "descriptor": { - "shape": [ - 2, - 2, - 4, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 4D tensor and 2D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 8, - 1, - 1, - 3 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 0, - 0, - 7, - 4 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 5D tensor and 1D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 3, - 2, - 2 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 3D tensor and 1D indices options.axis=1", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 1, - 1, - 2 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - }, - { - "options": { - "axis": 1 - } - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -77.02045440673828, - -26.158037185668945, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - -1.1303654909133911, - -50.42131042480469, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - -37.696800231933594, - 43.11057662963867, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545 - ], - "descriptor": { - "shape": [ - 3, - 3, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 3D tensor and 2D indices options.axis=2", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - }, - { - "options": { - "axis": 2 - } - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.05901336669922, - -66.05901336669922, - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -77.02045440673828, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - 89.0337142944336, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 43.84803771972656, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 51.79948425292969, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -1.1303654909133911, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 90.2870101928711, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 44.92119598388672, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - 10.829925537109375, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - -37.696800231933594, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - 0.9129875898361206, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 25.76774024963379, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 4D tensor and 2D indices explict options.axis=0", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 8, - 1, - 1, - 3 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 0, - 0, - 7, - 4 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - }, - { - "options": { - "axis": 0 - } - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 5D tensor and 0D scalar indices options.axis=4", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 1, - 1, - 3 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - }, - { - "options": { - "axis": 4 - } - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -68.9197006225586, - 89.0337142944336, - 48.81806945800781, - -1.1303654909133911, - 55.620765686035156, - 10.829925537109375, - 43.11057662963867, - 25.76774024963379 - ], - "descriptor": { - "shape": [ - 4, - 2, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 2D tensor and int32 0D negative indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - -2 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 2D tensor and int32 0D out-of-bound positive indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - 10 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float32 2D tensor and int32 0D out-of-bound negative indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469, - 90.2870101928711, - 55.620765686035156, - 44.92119598388672, - 56.828636169433594, - 10.829925537109375, - -19.693084716796875, - -37.696800231933594, - 43.11057662963867, - 0.9129875898361206, - -7.699817180633545, - 25.76774024963379, - 73.60064697265625 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float32" - } - }, - "gatherIndices": { - "data": [ - -10 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.05901336669922, - -68.9197006225586, - -77.02045440673828, - -26.158037185668945, - 89.0337142944336, - -45.89653396606445, - 43.84803771972656, - 48.81806945800781, - 51.79948425292969, - 41.94132614135742, - -1.1303654909133911, - -50.42131042480469 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "gather float16 1D tensor and uint32 0D scalar indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 4 - ], - "descriptor": { - "shape": [], - "dataType": "uint32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 89.0625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 1D tensor and int64 0D scalar indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 4 - ], - "descriptor": { - "shape": [], - "dataType": "int64" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 89.0625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 1D tensor and int32 0D scalar indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 4 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 89.0625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 1D tensor and int32 1D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 16, - 20, - 6, - 11, - 17, - 19, - 13, - 17 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 10.828125, - 0.9130859375, - 43.84375, - -50.40625, - -19.6875, - 43.125, - 55.625, - -19.6875 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 1D tensor and int32 2D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 14, - 9, - 21, - 17 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 44.90625, - 41.9375, - -7.69921875, - -19.6875 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 1D tensor and int32 3D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 17, - 19, - 14, - 16, - 13, - 0, - 5, - 15, - 18, - 18, - 6, - 20, - 7, - 22, - 5, - 1, - 4, - 19 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -19.6875, - 43.125, - 44.90625, - 10.828125, - 55.625, - -66.0625, - -45.90625, - 56.84375, - -37.6875, - -37.6875, - 43.84375, - 0.9130859375, - 48.8125, - 25.765625, - -45.90625, - -68.9375, - 89.0625, - 43.125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 1D tensor and int32 4D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 18, - 18, - 22, - 11, - 8, - 15, - 12, - 11, - 7, - 13, - 7, - 7 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -37.6875, - -37.6875, - 25.765625, - -50.40625, - 51.8125, - 56.84375, - 90.3125, - -50.40625, - 48.8125, - 55.625, - 48.8125, - 48.8125 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 2D tensor and 0D scalar indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 11 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 2D tensor and 1D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 1, - 10, - 9, - 0, - 3, - 5, - 3, - 8 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -77, - -26.15625, - 0.9130859375, - -7.69921875, - -37.6875, - 43.125, - -66.0625, - -68.9375, - 43.84375, - 48.8125, - -1.1298828125, - -50.40625, - 43.84375, - 48.8125, - 10.828125, - -19.6875 - ], - "descriptor": { - "shape": [ - 8, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 2D tensor and 2D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 4, - 8, - 9, - 10 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 51.8125, - 41.9375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 2D tensor and 3D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 8, - 2, - 2, - 3, - 4, - 1, - 2, - 2, - 7, - 11, - 4, - 11, - 6, - 6, - 7, - 3, - 11, - 10 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 10.828125, - -19.6875, - 89.0625, - -45.90625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 89.0625, - -45.90625, - 44.90625, - 56.84375, - 25.765625, - 73.625, - 51.8125, - 41.9375, - 25.765625, - 73.625, - 90.3125, - 55.625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 43.84375, - 48.8125, - 25.765625, - 73.625, - 0.9130859375, - -7.69921875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 3, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 2D tensor and 4D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 12, - 2 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 6, - 9, - 7, - 3, - 4, - 7, - 4, - 3, - 7, - 7, - 6, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 90.3125, - 55.625, - -37.6875, - 43.125, - 44.90625, - 56.84375, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - 44.90625, - 56.84375, - 51.8125, - 41.9375, - 43.84375, - 48.8125, - 44.90625, - 56.84375, - 44.90625, - 56.84375, - 90.3125, - 55.625, - -66.0625, - -68.9375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 3, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 3D tensor and 2D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 2, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 4, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 4D tensor and 2D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 8, - 1, - 1, - 3 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 0, - 0, - 7, - 4 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.0625, - -68.9375, - -77, - -66.0625, - -68.9375, - -77, - -7.69921875, - 25.765625, - 73.625, - 90.3125, - 55.625, - 44.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 5D tensor and 1D indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 3, - 2, - 2 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 3D tensor and 1D indices options.axis=1", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 1, - 1, - 2 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - }, - { - "options": { - "axis": 1 - } - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -77, - -26.15625, - -77, - -26.15625, - 89.0625, - -45.90625, - -1.1298828125, - -50.40625, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - -37.6875, - 43.125, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875 - ], - "descriptor": { - "shape": [ - 3, - 3, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 3D tensor and 2D indices options.axis=2", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - }, - { - "options": { - "axis": 2 - } - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.0625, - -66.0625, - -66.0625, - -68.9375, - -77, - -77, - -77, - -26.15625, - 89.0625, - 89.0625, - 89.0625, - -45.90625, - 43.84375, - 43.84375, - 43.84375, - 48.8125, - 51.8125, - 51.8125, - 51.8125, - 41.9375, - -1.1298828125, - -1.1298828125, - -1.1298828125, - -50.40625, - 90.3125, - 90.3125, - 90.3125, - 55.625, - 44.90625, - 44.90625, - 44.90625, - 56.84375, - 10.828125, - 10.828125, - 10.828125, - -19.6875, - -37.6875, - -37.6875, - -37.6875, - 43.125, - 0.9130859375, - 0.9130859375, - 0.9130859375, - -7.69921875, - 25.765625, - 25.765625, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 4D tensor and 2D indices explict options.axis=0", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 8, - 1, - 1, - 3 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 0, - 0, - 7, - 4 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - }, - { - "options": { - "axis": 0 - } - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.0625, - -68.9375, - -77, - -66.0625, - -68.9375, - -77, - -7.69921875, - 25.765625, - 73.625, - 90.3125, - 55.625, - 44.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 5D tensor and 0D scalar indices options.axis=4", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 1, - 1, - 3 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - }, - { - "options": { - "axis": 4 - } - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -68.9375, - 89.0625, - 48.8125, - -1.1298828125, - 55.625, - 10.828125, - 43.125, - 25.765625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "gather float16 2D tensor and int32 0D negative indices default options", - "graph": { - "inputs": { - "gatherInput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625, - 90.3125, - 55.625, - 44.90625, - 56.84375, - 10.828125, - -19.6875, - -37.6875, - 43.125, - 0.9130859375, - -7.69921875, - 25.765625, - 73.625 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float16" - } - }, - "gatherIndices": { - "data": [ - -2 - ], - "descriptor": { - "shape": [], - "dataType": "int32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "gather", - "arguments": [ - { - "input": "gatherInput" - }, - { - "indices": "gatherIndices" - } - ], - "outputs": "gatherOutput" - } - ], - "expectedOutputs": { - "gatherOutput": { - "data": [ - -66.0625, - -68.9375, - -77, - -26.15625, - 89.0625, - -45.90625, - 43.84375, - 48.8125, - 51.8125, - 41.9375, - -1.1298828125, - -50.40625 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/greater.json b/tests/wpt_data/conformance/greater.json deleted file mode 100644 index b45565c..0000000 --- a/tests/wpt_data/conformance/greater.json +++ /dev/null @@ -1,2777 +0,0 @@ -{ - "operation": "greater", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/greater.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "greater float32 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - 3.6851015090942383 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 1.723199725151062 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - -6.155234336853027, - -4.023341178894043, - 5.9525980949401855, - 2.306623697280884, - -2.7692291736602783, - -0.9711201190948486, - 1.222206711769104, - 4.590261459350586, - 9.101232528686523, - -4.997007846832275, - -4.80729341506958, - 8.919360160827637, - 0.9005027413368225, - -2.8414556980133057, - -2.8280413150787354, - 8.47984504699707, - -7.84067964553833, - 9.213960647583008, - 4.982365131378174, - -2.507319211959839, - -4.518013954162598, - 8.351094245910645, - -6.161073207855225, - 0.7364829182624817 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -6.155234336853027, - -4.023341178894043, - 5.9525980949401855, - 2.306623697280884, - -2.7692291736602783, - -0.9711201190948486, - 1.222206711769104, - 4.590261459350586, - 9.101232528686523, - -4.997007846832275, - -4.80729341506958, - 8.919360160827637, - 0.9005027413368225, - -2.8414556980133057, - -2.8280413150787354, - 8.47984504699707, - -7.84067964553833, - 9.213960647583008, - 4.982365131378174, - -2.507319211959839, - -4.518013954162598, - 8.351094245910645, - -6.161073207855225, - 0.7364829182624817 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -6.155234336853027, - -4.023341178894043, - 5.9525980949401855, - 2.306623697280884, - -2.7692291736602783, - -0.9711201190948486, - 1.222206711769104, - 4.590261459350586, - 9.101232528686523, - -4.997007846832275, - -4.80729341506958, - 8.919360160827637, - 0.9005027413368225, - -2.8414556980133057, - -2.8280413150787354, - 8.47984504699707, - -7.84067964553833, - 9.213960647583008, - 4.982365131378174, - -2.507319211959839, - -4.518013954162598, - 8.351094245910645, - -6.161073207855225, - 0.7364829182624817 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -6.155234336853027, - -4.023341178894043, - 5.9525980949401855, - 2.306623697280884, - -2.7692291736602783, - -0.9711201190948486, - 1.222206711769104, - 4.590261459350586, - 9.101232528686523, - -4.997007846832275, - -4.80729341506958, - 8.919360160827637, - 0.9005027413368225, - -2.8414556980133057, - -2.8280413150787354, - 8.47984504699707, - -7.84067964553833, - 9.213960647583008, - 4.982365131378174, - -2.507319211959839, - -4.518013954162598, - 8.351094245910645, - -6.161073207855225, - 0.7364829182624817 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -6.155234336853027, - -4.023341178894043, - 5.9525980949401855, - 2.306623697280884, - -2.7692291736602783, - -0.9711201190948486, - 1.222206711769104, - 4.590261459350586, - 9.101232528686523, - -4.997007846832275, - -4.80729341506958, - 8.919360160827637, - 0.9005027413368225, - -2.8414556980133057, - -2.8280413150787354, - 8.47984504699707, - -7.84067964553833, - 9.213960647583008, - 4.982365131378174, - -2.507319211959839, - -4.518013954162598, - 8.351094245910645, - -6.161073207855225, - 0.7364829182624817 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -6.155234336853027, - -4.023341178894043, - 5.9525980949401855, - 2.306623697280884, - -2.7692291736602783, - -0.9711201190948486, - 1.222206711769104, - 4.590261459350586, - 9.101232528686523, - -4.997007846832275, - -4.80729341506958, - 8.919360160827637, - 0.9005027413368225, - -2.8414556980133057, - -2.8280413150787354, - 8.47984504699707, - -7.84067964553833, - 9.213960647583008, - 4.982365131378174, - -2.507319211959839, - -4.518013954162598, - 8.351094245910645, - -6.161073207855225, - 0.7364829182624817 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 6.2216410636901855 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 6.2216410636901855 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -2.684664487838745, - 6.170023441314697, - 9.487744331359863, - -2.5556411743164062, - -2.0436434745788574, - 8.533930778503418 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -7.099076271057129, - -7.781408309936523, - 8.782817840576172, - -8.948624610900879 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 6.2216410636901855 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -5.394711494445801, - -7.189248561859131, - -3.1081764698028564, - 4.977657318115234, - 5.111654281616211, - -1.5386580228805542, - 1.414366364479065, - -0.9362112283706665, - -6.029961585998535, - -3.0134198665618896, - 0.170855313539505, - 7.395327091217041, - 7.178691864013672, - -4.826237678527832, - -2.020440101623535, - -3.267888069152832, - 8.944384574890137, - -5.932100772857666, - 0.7069857120513916, - 2.7764203548431396, - 0.978833794593811, - -6.254901885986328, - 4.409034729003906, - -6.775286674499512 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - 3.685546875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 1.7236328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - -6.15625, - -4.0234375, - 5.953125, - 2.306640625, - -2.76953125, - -0.97119140625, - 1.22265625, - 4.58984375, - 9.1015625, - -4.99609375, - -4.80859375, - 8.921875, - 0.900390625, - -2.841796875, - -2.828125, - 8.4765625, - -7.83984375, - 9.2109375, - 4.98046875, - -2.5078125, - -4.51953125, - 8.3515625, - -6.16015625, - 0.736328125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -6.15625, - -4.0234375, - 5.953125, - 2.306640625, - -2.76953125, - -0.97119140625, - 1.22265625, - 4.58984375, - 9.1015625, - -4.99609375, - -4.80859375, - 8.921875, - 0.900390625, - -2.841796875, - -2.828125, - 8.4765625, - -7.83984375, - 9.2109375, - 4.98046875, - -2.5078125, - -4.51953125, - 8.3515625, - -6.16015625, - 0.736328125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -6.15625, - -4.0234375, - 5.953125, - 2.306640625, - -2.76953125, - -0.97119140625, - 1.22265625, - 4.58984375, - 9.1015625, - -4.99609375, - -4.80859375, - 8.921875, - 0.900390625, - -2.841796875, - -2.828125, - 8.4765625, - -7.83984375, - 9.2109375, - 4.98046875, - -2.5078125, - -4.51953125, - 8.3515625, - -6.16015625, - 0.736328125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -6.15625, - -4.0234375, - 5.953125, - 2.306640625, - -2.76953125, - -0.97119140625, - 1.22265625, - 4.58984375, - 9.1015625, - -4.99609375, - -4.80859375, - 8.921875, - 0.900390625, - -2.841796875, - -2.828125, - 8.4765625, - -7.83984375, - 9.2109375, - 4.98046875, - -2.5078125, - -4.51953125, - 8.3515625, - -6.16015625, - 0.736328125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -6.15625, - -4.0234375, - 5.953125, - 2.306640625, - -2.76953125, - -0.97119140625, - 1.22265625, - 4.58984375, - 9.1015625, - -4.99609375, - -4.80859375, - 8.921875, - 0.900390625, - -2.841796875, - -2.828125, - 8.4765625, - -7.83984375, - 9.2109375, - 4.98046875, - -2.5078125, - -4.51953125, - 8.3515625, - -6.16015625, - 0.736328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -6.15625, - -4.0234375, - 5.953125, - 2.306640625, - -2.76953125, - -0.97119140625, - 1.22265625, - 4.58984375, - 9.1015625, - -4.99609375, - -4.80859375, - 8.921875, - 0.900390625, - -2.841796875, - -2.828125, - 8.4765625, - -7.83984375, - 9.2109375, - 4.98046875, - -2.5078125, - -4.51953125, - 8.3515625, - -6.16015625, - 0.736328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 6.22265625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 6.22265625 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -2.685546875, - 6.171875, - 9.484375, - -2.5546875, - -2.04296875, - 8.53125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -7.09765625, - -7.78125, - 8.78125, - -8.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greater float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 6.22265625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -5.39453125, - -7.1875, - -3.107421875, - 4.9765625, - 5.11328125, - -1.5390625, - 1.4140625, - -0.93603515625, - -6.03125, - -3.013671875, - 0.1708984375, - 7.39453125, - 7.1796875, - -4.828125, - -2.01953125, - -3.267578125, - 8.9453125, - -5.93359375, - 0.70703125, - 2.77734375, - 0.97900390625, - -6.25390625, - 4.41015625, - -6.7734375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greater", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/greater_or_equal.json b/tests/wpt_data/conformance/greater_or_equal.json deleted file mode 100644 index beeea5f..0000000 --- a/tests/wpt_data/conformance/greater_or_equal.json +++ /dev/null @@ -1,2777 +0,0 @@ -{ - "operation": "greater_or_equal", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/greater_or_equal.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "greaterOrEqual float32 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - 0.2829853594303131 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 6.156983375549316 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - -7.028095245361328, - 1.9109991788864136, - 3.5765292644500732, - 1.7167965173721313, - 2.846137523651123, - -2.311763048171997, - -6.086130142211914, - -3.437926769256592, - -3.476442813873291, - -2.1946563720703125, - 2.9962267875671387, - -5.540947914123535, - 5.098470211029053, - 6.775498867034912, - 2.4505412578582764, - 5.210598945617676, - -9.710094451904297, - -2.4130282402038574, - 8.678308486938477, - -9.449530601501465, - 0.7702168822288513, - -1.5186073780059814, - -9.153943061828613, - -4.991735935211182 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -7.028095245361328, - 1.9109991788864136, - 3.5765292644500732, - 1.7167965173721313, - 2.846137523651123, - -2.311763048171997, - -6.086130142211914, - -3.437926769256592, - -3.476442813873291, - -2.1946563720703125, - 2.9962267875671387, - -5.540947914123535, - 5.098470211029053, - 6.775498867034912, - 2.4505412578582764, - 5.210598945617676, - -9.710094451904297, - -2.4130282402038574, - 8.678308486938477, - -9.449530601501465, - 0.7702168822288513, - -1.5186073780059814, - -9.153943061828613, - -4.991735935211182 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -7.028095245361328, - 1.9109991788864136, - 3.5765292644500732, - 1.7167965173721313, - 2.846137523651123, - -2.311763048171997, - -6.086130142211914, - -3.437926769256592, - -3.476442813873291, - -2.1946563720703125, - 2.9962267875671387, - -5.540947914123535, - 5.098470211029053, - 6.775498867034912, - 2.4505412578582764, - 5.210598945617676, - -9.710094451904297, - -2.4130282402038574, - 8.678308486938477, - -9.449530601501465, - 0.7702168822288513, - -1.5186073780059814, - -9.153943061828613, - -4.991735935211182 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -7.028095245361328, - 1.9109991788864136, - 3.5765292644500732, - 1.7167965173721313, - 2.846137523651123, - -2.311763048171997, - -6.086130142211914, - -3.437926769256592, - -3.476442813873291, - -2.1946563720703125, - 2.9962267875671387, - -5.540947914123535, - 5.098470211029053, - 6.775498867034912, - 2.4505412578582764, - 5.210598945617676, - -9.710094451904297, - -2.4130282402038574, - 8.678308486938477, - -9.449530601501465, - 0.7702168822288513, - -1.5186073780059814, - -9.153943061828613, - -4.991735935211182 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -7.028095245361328, - 1.9109991788864136, - 3.5765292644500732, - 1.7167965173721313, - 2.846137523651123, - -2.311763048171997, - -6.086130142211914, - -3.437926769256592, - -3.476442813873291, - -2.1946563720703125, - 2.9962267875671387, - -5.540947914123535, - 5.098470211029053, - 6.775498867034912, - 2.4505412578582764, - 5.210598945617676, - -9.710094451904297, - -2.4130282402038574, - 8.678308486938477, - -9.449530601501465, - 0.7702168822288513, - -1.5186073780059814, - -9.153943061828613, - -4.991735935211182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -7.028095245361328, - 1.9109991788864136, - 3.5765292644500732, - 1.7167965173721313, - 2.846137523651123, - -2.311763048171997, - -6.086130142211914, - -3.437926769256592, - -3.476442813873291, - -2.1946563720703125, - 2.9962267875671387, - -5.540947914123535, - 5.098470211029053, - 6.775498867034912, - 2.4505412578582764, - 5.210598945617676, - -9.710094451904297, - -2.4130282402038574, - 8.678308486938477, - -9.449530601501465, - 0.7702168822288513, - -1.5186073780059814, - -9.153943061828613, - -4.991735935211182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.0187573432922363 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.0187573432922363 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -4.19451379776001, - 3.8917839527130127, - -3.5139973163604736, - 6.279316425323486, - 0.001788170775398612, - -0.7928582429885864 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -3.2823047637939453, - -1.3975636959075928, - 0.49053606390953064, - -6.882648944854736 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.0187573432922363 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -8.049108505249023, - -5.522611141204834, - -2.097508192062378, - -7.455326557159424, - -5.450376510620117, - 9.802918434143066, - -3.604517936706543, - 4.088084697723389, - -5.068355083465576, - 1.5821936130523682, - 5.675583839416504, - -4.34159517288208, - 1.694622278213501, - 2.926734685897827, - -7.00007438659668, - -2.5270822048187256, - 1.4437267780303955, - 7.862768650054932, - 5.782289028167725, - 1.8712012767791748, - -0.5233999490737915, - 0.43433287739753723, - 8.93836498260498, - 1.6568396091461182 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - 0.282958984375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 6.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - -7.02734375, - 1.9111328125, - 3.576171875, - 1.716796875, - 2.845703125, - -2.3125, - -6.0859375, - -3.4375, - -3.4765625, - -2.1953125, - 2.99609375, - -5.5390625, - 5.09765625, - 6.77734375, - 2.451171875, - 5.2109375, - -9.7109375, - -2.412109375, - 8.6796875, - -9.453125, - 0.77001953125, - -1.5185546875, - -9.15625, - -4.9921875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -7.02734375, - 1.9111328125, - 3.576171875, - 1.716796875, - 2.845703125, - -2.3125, - -6.0859375, - -3.4375, - -3.4765625, - -2.1953125, - 2.99609375, - -5.5390625, - 5.09765625, - 6.77734375, - 2.451171875, - 5.2109375, - -9.7109375, - -2.412109375, - 8.6796875, - -9.453125, - 0.77001953125, - -1.5185546875, - -9.15625, - -4.9921875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -7.02734375, - 1.9111328125, - 3.576171875, - 1.716796875, - 2.845703125, - -2.3125, - -6.0859375, - -3.4375, - -3.4765625, - -2.1953125, - 2.99609375, - -5.5390625, - 5.09765625, - 6.77734375, - 2.451171875, - 5.2109375, - -9.7109375, - -2.412109375, - 8.6796875, - -9.453125, - 0.77001953125, - -1.5185546875, - -9.15625, - -4.9921875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -7.02734375, - 1.9111328125, - 3.576171875, - 1.716796875, - 2.845703125, - -2.3125, - -6.0859375, - -3.4375, - -3.4765625, - -2.1953125, - 2.99609375, - -5.5390625, - 5.09765625, - 6.77734375, - 2.451171875, - 5.2109375, - -9.7109375, - -2.412109375, - 8.6796875, - -9.453125, - 0.77001953125, - -1.5185546875, - -9.15625, - -4.9921875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -7.02734375, - 1.9111328125, - 3.576171875, - 1.716796875, - 2.845703125, - -2.3125, - -6.0859375, - -3.4375, - -3.4765625, - -2.1953125, - 2.99609375, - -5.5390625, - 5.09765625, - 6.77734375, - 2.451171875, - 5.2109375, - -9.7109375, - -2.412109375, - 8.6796875, - -9.453125, - 0.77001953125, - -1.5185546875, - -9.15625, - -4.9921875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -7.02734375, - 1.9111328125, - 3.576171875, - 1.716796875, - 2.845703125, - -2.3125, - -6.0859375, - -3.4375, - -3.4765625, - -2.1953125, - 2.99609375, - -5.5390625, - 5.09765625, - 6.77734375, - 2.451171875, - 5.2109375, - -9.7109375, - -2.412109375, - 8.6796875, - -9.453125, - 0.77001953125, - -1.5185546875, - -9.15625, - -4.9921875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.0185546875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.0185546875 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -4.1953125, - 3.892578125, - -3.513671875, - 6.28125, - 0.0017881393432617188, - -0.79296875 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -3.283203125, - -1.3974609375, - 0.490478515625, - -6.8828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "greaterOrEqual float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.0185546875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -8.046875, - -5.5234375, - -2.09765625, - -7.45703125, - -5.44921875, - 9.8046875, - -3.60546875, - 4.08984375, - -5.06640625, - 1.58203125, - 5.67578125, - -4.33984375, - 1.6943359375, - 2.92578125, - -7, - -2.52734375, - 1.443359375, - 7.86328125, - 5.78125, - 1.87109375, - -0.5234375, - 0.434326171875, - 8.9375, - 1.6572265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "greaterOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 0, - 1, - 0, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/hard_sigmoid.json b/tests/wpt_data/conformance/hard_sigmoid.json deleted file mode 100644 index 995b827..0000000 --- a/tests/wpt_data/conformance/hard_sigmoid.json +++ /dev/null @@ -1,2773 +0,0 @@ -{ - "operation": "hard_sigmoid", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/hard_sigmoid.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "hardSigmoid float32 positive 0D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.5118141174316406 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 1D constant tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.5118141174316406, - 0.6415218114852905, - 0.6045681238174438, - 0.5846202969551086, - 0.6328738331794739, - 0.6900588274002075, - 0.5218378305435181, - 0.5025954246520996, - 0.5951059460639954, - 0.6064510345458984, - 0.6368615627288818, - 0.5932421684265137, - 0.5609799027442932, - 0.6605174541473389, - 0.5497192740440369, - 0.6327379941940308, - 0.6109522581100464, - 0.6108517050743103, - 0.6462276577949524, - 0.5976191759109497, - 0.6553369164466858, - 0.669111430644989, - 0.6110604405403137, - 0.6120688915252686 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 1D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.5118141174316406, - 0.6415218114852905, - 0.6045681238174438, - 0.5846202969551086, - 0.6328738331794739, - 0.6900588274002075, - 0.5218378305435181, - 0.5025954246520996, - 0.5951059460639954, - 0.6064510345458984, - 0.6368615627288818, - 0.5932421684265137, - 0.5609799027442932, - 0.6605174541473389, - 0.5497192740440369, - 0.6327379941940308, - 0.6109522581100464, - 0.6108517050743103, - 0.6462276577949524, - 0.5976191759109497, - 0.6553369164466858, - 0.669111430644989, - 0.6110604405403137, - 0.6120688915252686 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 2D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.5118141174316406, - 0.6415218114852905, - 0.6045681238174438, - 0.5846202969551086, - 0.6328738331794739, - 0.6900588274002075, - 0.5218378305435181, - 0.5025954246520996, - 0.5951059460639954, - 0.6064510345458984, - 0.6368615627288818, - 0.5932421684265137, - 0.5609799027442932, - 0.6605174541473389, - 0.5497192740440369, - 0.6327379941940308, - 0.6109522581100464, - 0.6108517050743103, - 0.6462276577949524, - 0.5976191759109497, - 0.6553369164466858, - 0.669111430644989, - 0.6110604405403137, - 0.6120688915252686 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 3D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.5118141174316406, - 0.6415218114852905, - 0.6045681238174438, - 0.5846202969551086, - 0.6328738331794739, - 0.6900588274002075, - 0.5218378305435181, - 0.5025954246520996, - 0.5951059460639954, - 0.6064510345458984, - 0.6368615627288818, - 0.5932421684265137, - 0.5609799027442932, - 0.6605174541473389, - 0.5497192740440369, - 0.6327379941940308, - 0.6109522581100464, - 0.6108517050743103, - 0.6462276577949524, - 0.5976191759109497, - 0.6553369164466858, - 0.669111430644989, - 0.6110604405403137, - 0.6120688915252686 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 4D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.5118141174316406, - 0.6415218114852905, - 0.6045681238174438, - 0.5846202969551086, - 0.6328738331794739, - 0.6900588274002075, - 0.5218378305435181, - 0.5025954246520996, - 0.5951059460639954, - 0.6064510345458984, - 0.6368615627288818, - 0.5932421684265137, - 0.5609799027442932, - 0.6605174541473389, - 0.5497192740440369, - 0.6327379941940308, - 0.6109522581100464, - 0.6108517050743103, - 0.6462276577949524, - 0.5976191759109497, - 0.6553369164466858, - 0.669111430644989, - 0.6110604405403137, - 0.6120688915252686 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 5D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.5118141174316406, - 0.6415218114852905, - 0.6045681238174438, - 0.5846202969551086, - 0.6328738331794739, - 0.6900588274002075, - 0.5218378305435181, - 0.5025954246520996, - 0.5951059460639954, - 0.6064510345458984, - 0.6368615627288818, - 0.5932421684265137, - 0.5609799027442932, - 0.6605174541473389, - 0.5497192740440369, - 0.6327379941940308, - 0.6109522581100464, - 0.6108517050743103, - 0.6462276577949524, - 0.5976191759109497, - 0.6553369164466858, - 0.669111430644989, - 0.6110604405403137, - 0.6120688915252686 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 4D tensor specified positive options.alpha default options.beta", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": 0.7854232544278235 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.546395480632782, - 1, - 0.9106510877609253, - 0.8323138356208801, - 1, - 1, - 0.5857596397399902, - 0.5101925134658813, - 0.8734921216964722, - 0.9180455803871155, - 1, - 0.8661727905273438, - 0.7394752502441406, - 1, - 0.6952533721923828, - 1, - 0.9357223510742188, - 0.9353274703025818, - 1, - 0.8833619952201843, - 1, - 1, - 0.936147153377533, - 0.9401075839996338 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 negative 4D tensor specified negative options.alpha default options.beta", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - -0.05907066911458969, - -0.7076089382171631, - -0.5228404998779297, - -0.4231015741825104, - -0.6643692851066589, - -0.950294017791748, - -0.10918906331062317, - -0.0129771139472723, - -0.4755297303199768, - -0.5322551727294922, - -0.684307873249054, - -0.4662107527256012, - -0.3048996329307556, - -0.8025872707366943, - -0.2485964000225067, - -0.663689911365509, - -0.5547611713409424, - -0.554258406162262, - -0.7311381697654724, - -0.4880960285663605, - -0.7766845226287842, - -0.8455570340156555, - -0.555302083492279, - -0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": -0.7854232544278235 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.546395480632782, - 1, - 0.9106510877609253, - 0.8323138356208801, - 1, - 1, - 0.5857596397399902, - 0.5101925134658813, - 0.8734921216964722, - 0.9180455803871155, - 1, - 0.8661727905273438, - 0.7394752502441406, - 1, - 0.6952533721923828, - 1, - 0.9357223510742188, - 0.9353274703025818, - 1, - 0.8833619952201843, - 1, - 1, - 0.936147153377533, - 0.9401075839996338 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 4D tensor specified positive options.beta default options.alpha", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "beta": 0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.4480001926422119, - 0.577707827091217, - 0.5407541394233704, - 0.5208063721656799, - 0.5690599083900452, - 0.626244843006134, - 0.4580238461494446, - 0.4387814700603485, - 0.5312919616699219, - 0.5426371097564697, - 0.5730476379394531, - 0.5294281840324402, - 0.4971659779548645, - 0.5967035293579102, - 0.48590531945228577, - 0.5689240097999573, - 0.5471382737159729, - 0.5470377206802368, - 0.5824136734008789, - 0.533805251121521, - 0.5915229320526123, - 0.6052974462509155, - 0.5472464561462402, - 0.5482549667358398 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 negative 4D tensor specified negative options.beta default options.alpha", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - -0.05907066911458969, - -0.7076089382171631, - -0.5228404998779297, - -0.4231015741825104, - -0.6643692851066589, - -0.950294017791748, - -0.10918906331062317, - -0.0129771139472723, - -0.4755297303199768, - -0.5322551727294922, - -0.684307873249054, - -0.4662107527256012, - -0.3048996329307556, - -0.8025872707366943, - -0.2485964000225067, - -0.663689911365509, - -0.5547611713409424, - -0.554258406162262, - -0.7311381697654724, - -0.4880960285663605, - -0.7766845226287842, - -0.8455570340156555, - -0.555302083492279, - -0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "beta": -0.436186041853034 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 4D tensor specified all options (positive options.alpha and positive options.beta)", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": 0.7854232544278235, - "beta": 0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.4825815260410309, - 0.9919585585594177, - 0.8468371629714966, - 0.7684998512268066, - 0.9579971432685852, - 1, - 0.5219456553459167, - 0.44637855887413025, - 0.8096781373023987, - 0.8542316555976868, - 0.9736573696136475, - 0.8023588061332703, - 0.6756613254547119, - 1, - 0.6314394474029541, - 0.9574635624885559, - 0.8719083666801453, - 0.8715134859085083, - 1, - 0.8195480108261108, - 1, - 1, - 0.8723332285881042, - 0.8762935996055603 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 positive 4D tensor specified all options (negative options.alpha and negative options.beta)", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05907066911458969, - 0.7076089382171631, - 0.5228404998779297, - 0.4231015741825104, - 0.6643692851066589, - 0.950294017791748, - 0.10918906331062317, - 0.0129771139472723, - 0.4755297303199768, - 0.5322551727294922, - 0.684307873249054, - 0.4662107527256012, - 0.3048996329307556, - 0.8025872707366943, - 0.2485964000225067, - 0.663689911365509, - 0.5547611713409424, - 0.554258406162262, - 0.7311381697654724, - 0.4880960285663605, - 0.7766845226287842, - 0.8455570340156555, - 0.555302083492279, - 0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": -0.7854232544278235, - "beta": -0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 negative 4D tensor all options (positive options.alpha and negative options.beta)", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - -0.05907066911458969, - -0.7076089382171631, - -0.5228404998779297, - -0.4231015741825104, - -0.6643692851066589, - -0.950294017791748, - -0.10918906331062317, - -0.0129771139472723, - -0.4755297303199768, - -0.5322551727294922, - -0.684307873249054, - -0.4662107527256012, - -0.3048996329307556, - -0.8025872707366943, - -0.2485964000225067, - -0.663689911365509, - -0.5547611713409424, - -0.554258406162262, - -0.7311381697654724, - -0.4880960285663605, - -0.7766845226287842, - -0.8455570340156555, - -0.555302083492279, - -0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": 0.7854232544278235, - "beta": -0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float32 negative 4D tensor specified all options (negative options.alpha and positive options.beta)", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - -0.05907066911458969, - -0.7076089382171631, - -0.5228404998779297, - -0.4231015741825104, - -0.6643692851066589, - -0.950294017791748, - -0.10918906331062317, - -0.0129771139472723, - -0.4755297303199768, - -0.5322551727294922, - -0.684307873249054, - -0.4662107527256012, - -0.3048996329307556, - -0.8025872707366943, - -0.2485964000225067, - -0.663689911365509, - -0.5547611713409424, - -0.554258406162262, - -0.7311381697654724, - -0.4880960285663605, - -0.7766845226287842, - -0.8455570340156555, - -0.555302083492279, - -0.5603444576263428 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": -0.7854232544278235, - "beta": 0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.4825815260410309, - 0.9919585585594177, - 0.8468371629714966, - 0.7684998512268066, - 0.9579971432685852, - 1, - 0.5219456553459167, - 0.44637855887413025, - 0.8096781373023987, - 0.8542316555976868, - 0.9736573696136475, - 0.8023588061332703, - 0.6756613254547119, - 1, - 0.6314394474029541, - 0.9574635624885559, - 0.8719083666801453, - 0.8715134859085083, - 1, - 0.8195480108261108, - 1, - 1, - 0.8723332285881042, - 0.8762935996055603 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 0D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.51171875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 1D constant tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.51171875, - 0.6416015625, - 0.6044921875, - 0.58447265625, - 0.6328125, - 0.68994140625, - 0.52197265625, - 0.50244140625, - 0.59521484375, - 0.6064453125, - 0.63671875, - 0.59326171875, - 0.56103515625, - 0.66064453125, - 0.5498046875, - 0.6328125, - 0.61083984375, - 0.61083984375, - 0.64599609375, - 0.59765625, - 0.6552734375, - 0.6689453125, - 0.61083984375, - 0.6123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 1D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.51171875, - 0.6416015625, - 0.6044921875, - 0.58447265625, - 0.6328125, - 0.68994140625, - 0.52197265625, - 0.50244140625, - 0.59521484375, - 0.6064453125, - 0.63671875, - 0.59326171875, - 0.56103515625, - 0.66064453125, - 0.5498046875, - 0.6328125, - 0.61083984375, - 0.61083984375, - 0.64599609375, - 0.59765625, - 0.6552734375, - 0.6689453125, - 0.61083984375, - 0.6123046875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 2D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.51171875, - 0.6416015625, - 0.6044921875, - 0.58447265625, - 0.6328125, - 0.68994140625, - 0.52197265625, - 0.50244140625, - 0.59521484375, - 0.6064453125, - 0.63671875, - 0.59326171875, - 0.56103515625, - 0.66064453125, - 0.5498046875, - 0.6328125, - 0.61083984375, - 0.61083984375, - 0.64599609375, - 0.59765625, - 0.6552734375, - 0.6689453125, - 0.61083984375, - 0.6123046875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 3D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.51171875, - 0.6416015625, - 0.6044921875, - 0.58447265625, - 0.6328125, - 0.68994140625, - 0.52197265625, - 0.50244140625, - 0.59521484375, - 0.6064453125, - 0.63671875, - 0.59326171875, - 0.56103515625, - 0.66064453125, - 0.5498046875, - 0.6328125, - 0.61083984375, - 0.61083984375, - 0.64599609375, - 0.59765625, - 0.6552734375, - 0.6689453125, - 0.61083984375, - 0.6123046875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 4D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.51171875, - 0.6416015625, - 0.6044921875, - 0.58447265625, - 0.6328125, - 0.68994140625, - 0.52197265625, - 0.50244140625, - 0.59521484375, - 0.6064453125, - 0.63671875, - 0.59326171875, - 0.56103515625, - 0.66064453125, - 0.5498046875, - 0.6328125, - 0.61083984375, - 0.61083984375, - 0.64599609375, - 0.59765625, - 0.6552734375, - 0.6689453125, - 0.61083984375, - 0.6123046875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 5D tensor default options", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.51171875, - 0.6416015625, - 0.6044921875, - 0.58447265625, - 0.6328125, - 0.68994140625, - 0.52197265625, - 0.50244140625, - 0.59521484375, - 0.6064453125, - 0.63671875, - 0.59326171875, - 0.56103515625, - 0.66064453125, - 0.5498046875, - 0.6328125, - 0.61083984375, - 0.61083984375, - 0.64599609375, - 0.59765625, - 0.6552734375, - 0.6689453125, - 0.61083984375, - 0.6123046875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 4D tensor specified positive options.alpha default options.beta", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": 0.7854232544278235 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.54638671875, - 1, - 0.91064453125, - 0.83251953125, - 1, - 1, - 0.5859375, - 0.51025390625, - 0.87353515625, - 0.91796875, - 1, - 0.8662109375, - 0.7392578125, - 1, - 0.6953125, - 1, - 0.935546875, - 0.93505859375, - 1, - 0.88330078125, - 1, - 1, - 0.93603515625, - 0.9404296875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 negative 4D tensor specified negative options.alpha default options.beta", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - -0.05908203125, - -0.70751953125, - -0.52294921875, - -0.423095703125, - -0.66455078125, - -0.9501953125, - -0.10919189453125, - -0.01297760009765625, - -0.4755859375, - -0.5322265625, - -0.68408203125, - -0.46630859375, - -0.304931640625, - -0.802734375, - -0.2486572265625, - -0.66357421875, - -0.5546875, - -0.55419921875, - -0.73095703125, - -0.488037109375, - -0.77685546875, - -0.845703125, - -0.55517578125, - -0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": -0.7854232544278235 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.54638671875, - 1, - 0.91064453125, - 0.83251953125, - 1, - 1, - 0.5859375, - 0.51025390625, - 0.87353515625, - 0.91796875, - 1, - 0.8662109375, - 0.7392578125, - 1, - 0.6953125, - 1, - 0.935546875, - 0.93505859375, - 1, - 0.88330078125, - 1, - 1, - 0.93603515625, - 0.9404296875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 4D tensor specified positive options.beta default options.alpha", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "beta": 0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.447998046875, - 0.57763671875, - 0.541015625, - 0.52099609375, - 0.5693359375, - 0.62646484375, - 0.4580078125, - 0.438720703125, - 0.53125, - 0.54248046875, - 0.5732421875, - 0.529296875, - 0.4970703125, - 0.5966796875, - 0.48583984375, - 0.56884765625, - 0.54736328125, - 0.546875, - 0.58251953125, - 0.53369140625, - 0.591796875, - 0.60546875, - 0.54736328125, - 0.54833984375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 negative 4D tensor specified negative options.beta default options.alpha", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - -0.05908203125, - -0.70751953125, - -0.52294921875, - -0.423095703125, - -0.66455078125, - -0.9501953125, - -0.10919189453125, - -0.01297760009765625, - -0.4755859375, - -0.5322265625, - -0.68408203125, - -0.46630859375, - -0.304931640625, - -0.802734375, - -0.2486572265625, - -0.66357421875, - -0.5546875, - -0.55419921875, - -0.73095703125, - -0.488037109375, - -0.77685546875, - -0.845703125, - -0.55517578125, - -0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "beta": -0.436186041853034 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 4D tensor specified all options (positive options.alpha and positive options.beta)", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": 0.7854232544278235, - "beta": 0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.482666015625, - 0.99169921875, - 0.8466796875, - 0.7685546875, - 0.9580078125, - 1, - 0.52197265625, - 0.4462890625, - 0.8095703125, - 0.85400390625, - 0.9736328125, - 0.80224609375, - 0.67578125, - 1, - 0.63134765625, - 0.95751953125, - 0.8720703125, - 0.87158203125, - 1, - 0.8193359375, - 1, - 1, - 0.8720703125, - 0.87646484375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 positive 4D tensor specified all options (negative options.alpha and negative options.beta)", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - 0.05908203125, - 0.70751953125, - 0.52294921875, - 0.423095703125, - 0.66455078125, - 0.9501953125, - 0.10919189453125, - 0.01297760009765625, - 0.4755859375, - 0.5322265625, - 0.68408203125, - 0.46630859375, - 0.304931640625, - 0.802734375, - 0.2486572265625, - 0.66357421875, - 0.5546875, - 0.55419921875, - 0.73095703125, - 0.488037109375, - 0.77685546875, - 0.845703125, - 0.55517578125, - 0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": -0.7854232544278235, - "beta": -0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 negative 4D tensor all options (positive options.alpha and negative options.beta)", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - -0.05908203125, - -0.70751953125, - -0.52294921875, - -0.423095703125, - -0.66455078125, - -0.9501953125, - -0.10919189453125, - -0.01297760009765625, - -0.4755859375, - -0.5322265625, - -0.68408203125, - -0.46630859375, - -0.304931640625, - -0.802734375, - -0.2486572265625, - -0.66357421875, - -0.5546875, - -0.55419921875, - -0.73095703125, - -0.488037109375, - -0.77685546875, - -0.845703125, - -0.55517578125, - -0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": 0.7854232544278235, - "beta": -0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSigmoid float16 negative 4D tensor specified all options (negative options.alpha and positive options.beta)", - "graph": { - "inputs": { - "hardSigmoidInput": { - "data": [ - -0.05908203125, - -0.70751953125, - -0.52294921875, - -0.423095703125, - -0.66455078125, - -0.9501953125, - -0.10919189453125, - -0.01297760009765625, - -0.4755859375, - -0.5322265625, - -0.68408203125, - -0.46630859375, - -0.304931640625, - -0.802734375, - -0.2486572265625, - -0.66357421875, - -0.5546875, - -0.55419921875, - -0.73095703125, - -0.488037109375, - -0.77685546875, - -0.845703125, - -0.55517578125, - -0.560546875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSigmoid", - "arguments": [ - { - "input": "hardSigmoidInput" - }, - { - "options": { - "alpha": -0.7854232544278235, - "beta": 0.4361860418530341 - } - } - ], - "outputs": "hardSigmoidOutput" - } - ], - "expectedOutputs": { - "hardSigmoidOutput": { - "data": [ - 0.482666015625, - 0.99169921875, - 0.8466796875, - 0.7685546875, - 0.9580078125, - 1, - 0.52197265625, - 0.4462890625, - 0.8095703125, - 0.85400390625, - 0.9736328125, - 0.80224609375, - 0.67578125, - 1, - 0.63134765625, - 0.95751953125, - 0.8720703125, - 0.87158203125, - 1, - 0.8193359375, - 1, - 1, - 0.8720703125, - 0.87646484375 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/hard_swish.json b/tests/wpt_data/conformance/hard_swish.json deleted file mode 100644 index b7b4c82..0000000 --- a/tests/wpt_data/conformance/hard_swish.json +++ /dev/null @@ -1,1183 +0,0 @@ -{ - "operation": "hard_swish", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/hard_swish.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "hardSwish float32 0D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.7341583371162415 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.4569105803966522 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSwish float32 1D constant tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.7341583371162415, - 9.11885929107666, - 3.545238494873047, - 2.621943950653076, - -6.445507526397705, - -1.6835596561431885, - 5.52318000793457, - -5.958856105804443, - -9.169190406799316, - 6.420943737030029, - -3.2930312156677246, - 1.041016697883606, - -7.2463226318359375, - -0.9472730755805969, - -5.7783522605896, - 3.1852290630340576, - -7.261817932128906, - 4.174602508544922, - 3.7802627086639404, - -6.071240425109863, - -9.909919738769531, - -7.744259357452393, - -8.286120414733887, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.4569105803966522, - 9.11885929107666, - 3.545238494873047, - 2.4567370414733887, - 0, - -0.3693843185901642, - 5.52318000793457, - 0, - 0, - 6.420943737030029, - 0, - 0.7011276483535767, - 0, - -0.3240821659564972, - 0, - 3.1852290630340576, - 0, - 4.174602508544922, - 3.7802627086639404, - 0, - 0, - 0, - 0, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSwish float32 1D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.7341583371162415, - 9.11885929107666, - 3.545238494873047, - 2.621943950653076, - -6.445507526397705, - -1.6835596561431885, - 5.52318000793457, - -5.958856105804443, - -9.169190406799316, - 6.420943737030029, - -3.2930312156677246, - 1.041016697883606, - -7.2463226318359375, - -0.9472730755805969, - -5.7783522605896, - 3.1852290630340576, - -7.261817932128906, - 4.174602508544922, - 3.7802627086639404, - -6.071240425109863, - -9.909919738769531, - -7.744259357452393, - -8.286120414733887, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.4569105803966522, - 9.11885929107666, - 3.545238494873047, - 2.4567370414733887, - 0, - -0.3693843185901642, - 5.52318000793457, - 0, - 0, - 6.420943737030029, - 0, - 0.7011276483535767, - 0, - -0.3240821659564972, - 0, - 3.1852290630340576, - 0, - 4.174602508544922, - 3.7802627086639404, - 0, - 0, - 0, - 0, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSwish float32 2D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.7341583371162415, - 9.11885929107666, - 3.545238494873047, - 2.621943950653076, - -6.445507526397705, - -1.6835596561431885, - 5.52318000793457, - -5.958856105804443, - -9.169190406799316, - 6.420943737030029, - -3.2930312156677246, - 1.041016697883606, - -7.2463226318359375, - -0.9472730755805969, - -5.7783522605896, - 3.1852290630340576, - -7.261817932128906, - 4.174602508544922, - 3.7802627086639404, - -6.071240425109863, - -9.909919738769531, - -7.744259357452393, - -8.286120414733887, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.4569105803966522, - 9.11885929107666, - 3.545238494873047, - 2.4567370414733887, - 0, - -0.3693843185901642, - 5.52318000793457, - 0, - 0, - 6.420943737030029, - 0, - 0.7011276483535767, - 0, - -0.3240821659564972, - 0, - 3.1852290630340576, - 0, - 4.174602508544922, - 3.7802627086639404, - 0, - 0, - 0, - 0, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSwish float32 3D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.7341583371162415, - 9.11885929107666, - 3.545238494873047, - 2.621943950653076, - -6.445507526397705, - -1.6835596561431885, - 5.52318000793457, - -5.958856105804443, - -9.169190406799316, - 6.420943737030029, - -3.2930312156677246, - 1.041016697883606, - -7.2463226318359375, - -0.9472730755805969, - -5.7783522605896, - 3.1852290630340576, - -7.261817932128906, - 4.174602508544922, - 3.7802627086639404, - -6.071240425109863, - -9.909919738769531, - -7.744259357452393, - -8.286120414733887, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.4569105803966522, - 9.11885929107666, - 3.545238494873047, - 2.4567370414733887, - 0, - -0.3693843185901642, - 5.52318000793457, - 0, - 0, - 6.420943737030029, - 0, - 0.7011276483535767, - 0, - -0.3240821659564972, - 0, - 3.1852290630340576, - 0, - 4.174602508544922, - 3.7802627086639404, - 0, - 0, - 0, - 0, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSwish float32 4D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.7341583371162415, - 9.11885929107666, - 3.545238494873047, - 2.621943950653076, - -6.445507526397705, - -1.6835596561431885, - 5.52318000793457, - -5.958856105804443, - -9.169190406799316, - 6.420943737030029, - -3.2930312156677246, - 1.041016697883606, - -7.2463226318359375, - -0.9472730755805969, - -5.7783522605896, - 3.1852290630340576, - -7.261817932128906, - 4.174602508544922, - 3.7802627086639404, - -6.071240425109863, - -9.909919738769531, - -7.744259357452393, - -8.286120414733887, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.4569105803966522, - 9.11885929107666, - 3.545238494873047, - 2.4567370414733887, - 0, - -0.3693843185901642, - 5.52318000793457, - 0, - 0, - 6.420943737030029, - 0, - 0.7011276483535767, - 0, - -0.3240821659564972, - 0, - 3.1852290630340576, - 0, - 4.174602508544922, - 3.7802627086639404, - 0, - 0, - 0, - 0, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSwish float32 5D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.7341583371162415, - 9.11885929107666, - 3.545238494873047, - 2.621943950653076, - -6.445507526397705, - -1.6835596561431885, - 5.52318000793457, - -5.958856105804443, - -9.169190406799316, - 6.420943737030029, - -3.2930312156677246, - 1.041016697883606, - -7.2463226318359375, - -0.9472730755805969, - -5.7783522605896, - 3.1852290630340576, - -7.261817932128906, - 4.174602508544922, - 3.7802627086639404, - -6.071240425109863, - -9.909919738769531, - -7.744259357452393, - -8.286120414733887, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.4569105803966522, - 9.11885929107666, - 3.545238494873047, - 2.4567370414733887, - 0, - -0.3693843185901642, - 5.52318000793457, - 0, - 0, - 6.420943737030029, - 0, - 0.7011276483535767, - 0, - -0.3240821659564972, - 0, - 3.1852290630340576, - 0, - 4.174602508544922, - 3.7802627086639404, - 0, - 0, - 0, - 0, - 8.083491325378418 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "hardSwish float16 0D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.734375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.45703125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSwish float16 1D constant tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.734375, - 9.1171875, - 3.544921875, - 2.62109375, - -6.4453125, - -1.68359375, - 5.5234375, - -5.95703125, - -9.171875, - 6.421875, - -3.29296875, - 1.041015625, - -7.24609375, - -0.947265625, - -5.77734375, - 3.185546875, - -7.26171875, - 4.17578125, - 3.779296875, - -6.0703125, - -9.90625, - -7.74609375, - -8.2890625, - 8.0859375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.45703125, - 9.1171875, - 3.544921875, - 2.455078125, - 0, - -0.369384765625, - 5.5234375, - 0, - 0, - 6.421875, - 0, - 0.701171875, - 0, - -0.323974609375, - 0, - 3.185546875, - 0, - 4.17578125, - 3.779296875, - 0, - 0, - 0, - 0, - 8.0859375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSwish float16 1D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.734375, - 9.1171875, - 3.544921875, - 2.62109375, - -6.4453125, - -1.68359375, - 5.5234375, - -5.95703125, - -9.171875, - 6.421875, - -3.29296875, - 1.041015625, - -7.24609375, - -0.947265625, - -5.77734375, - 3.185546875, - -7.26171875, - 4.17578125, - 3.779296875, - -6.0703125, - -9.90625, - -7.74609375, - -8.2890625, - 8.0859375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.45703125, - 9.1171875, - 3.544921875, - 2.455078125, - 0, - -0.369384765625, - 5.5234375, - 0, - 0, - 6.421875, - 0, - 0.701171875, - 0, - -0.323974609375, - 0, - 3.185546875, - 0, - 4.17578125, - 3.779296875, - 0, - 0, - 0, - 0, - 8.0859375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSwish float16 2D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.734375, - 9.1171875, - 3.544921875, - 2.62109375, - -6.4453125, - -1.68359375, - 5.5234375, - -5.95703125, - -9.171875, - 6.421875, - -3.29296875, - 1.041015625, - -7.24609375, - -0.947265625, - -5.77734375, - 3.185546875, - -7.26171875, - 4.17578125, - 3.779296875, - -6.0703125, - -9.90625, - -7.74609375, - -8.2890625, - 8.0859375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.45703125, - 9.1171875, - 3.544921875, - 2.455078125, - 0, - -0.369384765625, - 5.5234375, - 0, - 0, - 6.421875, - 0, - 0.701171875, - 0, - -0.323974609375, - 0, - 3.185546875, - 0, - 4.17578125, - 3.779296875, - 0, - 0, - 0, - 0, - 8.0859375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSwish float16 3D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.734375, - 9.1171875, - 3.544921875, - 2.62109375, - -6.4453125, - -1.68359375, - 5.5234375, - -5.95703125, - -9.171875, - 6.421875, - -3.29296875, - 1.041015625, - -7.24609375, - -0.947265625, - -5.77734375, - 3.185546875, - -7.26171875, - 4.17578125, - 3.779296875, - -6.0703125, - -9.90625, - -7.74609375, - -8.2890625, - 8.0859375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.45703125, - 9.1171875, - 3.544921875, - 2.455078125, - 0, - -0.369384765625, - 5.5234375, - 0, - 0, - 6.421875, - 0, - 0.701171875, - 0, - -0.323974609375, - 0, - 3.185546875, - 0, - 4.17578125, - 3.779296875, - 0, - 0, - 0, - 0, - 8.0859375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSwish float16 4D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.734375, - 9.1171875, - 3.544921875, - 2.62109375, - -6.4453125, - -1.68359375, - 5.5234375, - -5.95703125, - -9.171875, - 6.421875, - -3.29296875, - 1.041015625, - -7.24609375, - -0.947265625, - -5.77734375, - 3.185546875, - -7.26171875, - 4.17578125, - 3.779296875, - -6.0703125, - -9.90625, - -7.74609375, - -8.2890625, - 8.0859375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.45703125, - 9.1171875, - 3.544921875, - 2.455078125, - 0, - -0.369384765625, - 5.5234375, - 0, - 0, - 6.421875, - 0, - 0.701171875, - 0, - -0.323974609375, - 0, - 3.185546875, - 0, - 4.17578125, - 3.779296875, - 0, - 0, - 0, - 0, - 8.0859375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "hardSwish float16 5D tensor", - "graph": { - "inputs": { - "hardSwishInput": { - "data": [ - 0.734375, - 9.1171875, - 3.544921875, - 2.62109375, - -6.4453125, - -1.68359375, - 5.5234375, - -5.95703125, - -9.171875, - 6.421875, - -3.29296875, - 1.041015625, - -7.24609375, - -0.947265625, - -5.77734375, - 3.185546875, - -7.26171875, - 4.17578125, - 3.779296875, - -6.0703125, - -9.90625, - -7.74609375, - -8.2890625, - 8.0859375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "hardSwish", - "arguments": [ - { - "input": "hardSwishInput" - } - ], - "outputs": "hardSwishOutput" - } - ], - "expectedOutputs": { - "hardSwishOutput": { - "data": [ - 0.45703125, - 9.1171875, - 3.544921875, - 2.455078125, - 0, - -0.369384765625, - 5.5234375, - 0, - 0, - 6.421875, - 0, - 0.701171875, - 0, - -0.323974609375, - 0, - 3.185546875, - 0, - 4.17578125, - 3.779296875, - 0, - 0, - 0, - 0, - 8.0859375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/instance_normalization.json b/tests/wpt_data/conformance/instance_normalization.json deleted file mode 100644 index 144f7d9..0000000 --- a/tests/wpt_data/conformance/instance_normalization.json +++ /dev/null @@ -1,1503 +0,0 @@ -{ - "operation": "instance_normalization", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/instance_normalization.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "instanceNormalization float32 4D tensor default options", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.949951171875, - 29.44037628173828, - -73.92131042480469, - -38.11185836791992, - 41.33772659301758, - -59.77853012084961, - -74.66901397705078, - -68.16508483886719, - 35.82481384277344, - -6.948329448699951, - 54.42462158203125, - 47.53074645996094, - 66.93562316894531, - 76.74034881591797, - 5.6758809089660645, - 25.68659210205078, - 37.37651062011719, - 56.252689361572266, - -16.574905395507812, - 42.949893951416016, - 73.8739242553711, - -99.00035095214844, - -33.11322784423828, - -17.380685806274414 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -1.0995290279388428, - 1.5525832176208496, - -0.5992818474769592, - 0.14622758328914642, - 1.72129487991333, - -0.41020718216896057, - -0.7240943908691406, - -0.586993396282196, - 0.13073226809501648, - -1.6633318662643433, - 0.9108771681785583, - 0.6217224597930908, - 0.7947131395339966, - 1.1309205293655396, - -1.3059037923812866, - -0.6197298169136047, - 0.2657700479030609, - 0.9459608793258667, - -1.6783342361450195, - 0.46660327911376953, - 1.5037200450897217, - -1.2981476783752441, - -0.2302791178226471, - 0.024706769734621048 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "instanceNormalization float32 4D tensor options.scale", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.949951171875, - 29.44037628173828, - -73.92131042480469, - -38.11185836791992, - 41.33772659301758, - -59.77853012084961, - -74.66901397705078, - -68.16508483886719, - 35.82481384277344, - -6.948329448699951, - 54.42462158203125, - 47.53074645996094, - 66.93562316894531, - 76.74034881591797, - 5.6758809089660645, - 25.68659210205078, - 37.37651062011719, - 56.252689361572266, - -16.574905395507812, - 42.949893951416016, - 73.8739242553711, - -99.00035095214844, - -33.11322784423828, - -17.380685806274414 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - }, - "instanceNormScale": { - "data": [ - -94.42772674560547, - 66.69620513916016, - -98.56572723388672 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "scale": "instanceNormScale" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - 103.8260269165039, - -146.60690307617188, - 56.58882141113281, - -13.807937622070312, - 114.80384063720703, - -27.359262466430664, - -48.29434585571289, - -39.150230407714844, - -12.885721206665039, - 163.94752502441406, - -89.78126525878906, - -61.2805290222168, - -75.04296112060547, - -106.79025268554688, - 123.31352996826172, - 58.51968002319336, - 17.725852966308594, - 63.09199905395508, - -111.93852233886719, - 31.120668411254883, - -148.2152557373047, - 127.95286560058594, - 22.697628021240234, - -2.4352407455444336 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "instanceNormalization float32 4D tensor options.bias", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.949951171875, - 29.44037628173828, - -73.92131042480469, - -38.11185836791992, - 41.33772659301758, - -59.77853012084961, - -74.66901397705078, - -68.16508483886719, - 35.82481384277344, - -6.948329448699951, - 54.42462158203125, - 47.53074645996094, - 66.93562316894531, - 76.74034881591797, - 5.6758809089660645, - 25.68659210205078, - 37.37651062011719, - 56.252689361572266, - -16.574905395507812, - 42.949893951416016, - 73.8739242553711, - -99.00035095214844, - -33.11322784423828, - -17.380685806274414 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - }, - "instanceNormBias": { - "data": [ - -33.048641204833984, - 4.511423587799072, - -37.93617248535156 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "bias": "instanceNormBias" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -34.148170471191406, - -31.496057510375977, - -33.64792251586914, - -32.90241241455078, - 6.232718467712402, - 4.1012163162231445, - 3.7873291969299316, - 3.9244301319122314, - -37.80543899536133, - -39.59950256347656, - -37.02529525756836, - -37.314449310302734, - -32.253929138183594, - -31.917720794677734, - -34.35454559326172, - -33.66836929321289, - 4.777193546295166, - 5.4573845863342285, - 2.8330893516540527, - 4.978026866912842, - -36.43245315551758, - -39.23432159423828, - -38.16645050048828, - -37.91146469116211 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "instanceNormalization float32 4D tensor options.epsilon", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.949951171875, - 29.44037628173828, - -73.92131042480469, - -38.11185836791992, - 41.33772659301758, - -59.77853012084961, - -74.66901397705078, - -68.16508483886719, - 35.82481384277344, - -6.948329448699951, - 54.42462158203125, - 47.53074645996094, - 66.93562316894531, - 76.74034881591797, - 5.6758809089660645, - 25.68659210205078, - 37.37651062011719, - 56.252689361572266, - -16.574905395507812, - 42.949893951416016, - 73.8739242553711, - -99.00035095214844, - -33.11322784423828, - -17.380685806274414 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "epsilon": 1e-06 - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -1.0995290279388428, - 1.5525832176208496, - -0.5992818474769592, - 0.14622758328914642, - 1.72129487991333, - -0.41020718216896057, - -0.7240943908691406, - -0.586993396282196, - 0.13073226809501648, - -1.6633318662643433, - 0.9108771681785583, - 0.6217224597930908, - 0.7947131991386414, - 1.1309205293655396, - -1.3059037923812866, - -0.6197298765182495, - 0.2657700479030609, - 0.9459608793258667, - -1.6783342361450195, - 0.46660327911376953, - 1.5037200450897217, - -1.2981476783752441, - -0.2302791178226471, - 0.024706769734621048 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "instanceNormalization float32 4D tensor explicit options.layout='nchw'", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.949951171875, - 29.44037628173828, - -73.92131042480469, - -38.11185836791992, - 41.33772659301758, - -59.77853012084961, - -74.66901397705078, - -68.16508483886719, - 35.82481384277344, - -6.948329448699951, - 54.42462158203125, - 47.53074645996094, - 66.93562316894531, - 76.74034881591797, - 5.6758809089660645, - 25.68659210205078, - 37.37651062011719, - 56.252689361572266, - -16.574905395507812, - 42.949893951416016, - 73.8739242553711, - -99.00035095214844, - -33.11322784423828, - -17.380685806274414 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "layout": "nchw" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -1.0995290279388428, - 1.5525832176208496, - -0.5992818474769592, - 0.14622758328914642, - 1.72129487991333, - -0.41020718216896057, - -0.7240943908691406, - -0.586993396282196, - 0.13073226809501648, - -1.6633318662643433, - 0.9108771681785583, - 0.6217224597930908, - 0.7947131395339966, - 1.1309205293655396, - -1.3059037923812866, - -0.6197298169136047, - 0.2657700479030609, - 0.9459608793258667, - -1.6783342361450195, - 0.46660327911376953, - 1.5037200450897217, - -1.2981476783752441, - -0.2302791178226471, - 0.024706769734621048 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "instanceNormalization float32 4D tensor options.layout='nhwc'", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.949951171875, - 41.33772659301758, - 35.82481384277344, - 29.44037628173828, - -59.77853012084961, - -6.948329448699951, - -73.92131042480469, - -74.66901397705078, - 54.42462158203125, - -38.11185836791992, - -68.16508483886719, - 47.53074645996094, - 66.93562316894531, - 37.37651062011719, - 73.8739242553711, - 76.74034881591797, - 56.252689361572266, - -99.00035095214844, - 5.6758809089660645, - -16.574905395507812, - -33.11322784423828, - 25.68659210205078, - 42.949893951416016, - -17.380685806274414 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "layout": "nhwc" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -1.0995290279388428, - 1.72129487991333, - 0.13073226809501648, - 1.5525832176208496, - -0.41020718216896057, - -1.6633318662643433, - -0.5992818474769592, - -0.7240943908691406, - 0.9108771681785583, - 0.14622758328914642, - -0.586993396282196, - 0.6217224597930908, - 0.7947131395339966, - 0.2657700479030609, - 1.5037200450897217, - 1.1309205293655396, - 0.9459608793258667, - -1.2981476783752441, - -1.3059037923812866, - -1.6783342361450195, - -0.2302791178226471, - -0.6197298169136047, - 0.46660327911376953, - 0.024706769734621048 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "instanceNormalization float32 4D tensor all options", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.949951171875, - 41.33772659301758, - 35.82481384277344, - 29.44037628173828, - -59.77853012084961, - -6.948329448699951, - -73.92131042480469, - -74.66901397705078, - 54.42462158203125, - -38.11185836791992, - -68.16508483886719, - 47.53074645996094, - 66.93562316894531, - 37.37651062011719, - 73.8739242553711, - 76.74034881591797, - 56.252689361572266, - -99.00035095214844, - 5.6758809089660645, - -16.574905395507812, - -33.11322784423828, - 25.68659210205078, - 42.949893951416016, - -17.380685806274414 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "instanceNormScale": { - "data": [ - -94.42772674560547, - 66.69620513916016, - -98.56572723388672 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "instanceNormBias": { - "data": [ - -33.048641204833984, - 4.511423587799072, - -37.93617248535156 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "scale": "instanceNormScale", - "bias": "instanceNormBias", - "epsilon": 1e-06, - "layout": "nhwc" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - 70.77738189697266, - 119.31526184082031, - -50.821895599365234, - -179.65554809570312, - -22.847837448120117, - 126.01134490966797, - 23.540178298950195, - -43.782920837402344, - -127.71744537353516, - -46.8565788269043, - -34.6388053894043, - -99.2166976928711, - -108.09159851074219, - 22.237276077270508, - -186.15142822265625, - -139.83889770507812, - 67.60342407226562, - 90.01669311523438, - 90.26488494873047, - -107.4271011352539, - -15.238543510437012, - 25.471038818359375, - 35.6320915222168, - -40.37141418457031 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "instanceNormalization float16 4D tensor default options", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.9375, - 29.4375, - -73.9375, - -38.125, - 41.34375, - -59.78125, - -74.6875, - -68.1875, - 35.8125, - -6.94921875, - 54.4375, - 47.53125, - 66.9375, - 76.75, - 5.67578125, - 25.6875, - 37.375, - 56.25, - -16.578125, - 42.9375, - 73.875, - -99, - -33.125, - -17.375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -1.099609375, - 1.552734375, - -0.599609375, - 0.1461181640625, - 1.7216796875, - -0.409912109375, - -0.72412109375, - -0.5869140625, - 0.1302490234375, - -1.6630859375, - 0.9111328125, - 0.62158203125, - 0.79443359375, - 1.130859375, - -1.3056640625, - -0.61962890625, - 0.265869140625, - 0.9462890625, - -1.6787109375, - 0.46630859375, - 1.50390625, - -1.2978515625, - -0.23046875, - 0.024810791015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "instanceNormalization float16 4D tensor options.scale", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.9375, - 29.4375, - -73.9375, - -38.125, - 41.34375, - -59.78125, - -74.6875, - -68.1875, - 35.8125, - -6.94921875, - 54.4375, - 47.53125, - 66.9375, - 76.75, - 5.67578125, - 25.6875, - 37.375, - 56.25, - -16.578125, - 42.9375, - 73.875, - -99, - -33.125, - -17.375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - }, - "instanceNormScale": { - "data": [ - -94.4375, - 66.6875, - -98.5625 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "scale": "instanceNormScale" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - 103.8125, - -146.625, - 56.625, - -13.796875, - 114.8125, - -27.34375, - -48.28125, - -39.15625, - -12.8359375, - 163.875, - -89.8125, - -61.28125, - -75.0625, - -106.8125, - 123.3125, - 58.53125, - 17.734375, - 63.09375, - -111.9375, - 31.09375, - -148.25, - 127.9375, - 22.71875, - -2.4453125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "instanceNormalization float16 4D tensor options.bias", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.9375, - 29.4375, - -73.9375, - -38.125, - 41.34375, - -59.78125, - -74.6875, - -68.1875, - 35.8125, - -6.94921875, - 54.4375, - 47.53125, - 66.9375, - 76.75, - 5.67578125, - 25.6875, - 37.375, - 56.25, - -16.578125, - 42.9375, - 73.875, - -99, - -33.125, - -17.375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - }, - "instanceNormBias": { - "data": [ - -33.0625, - 4.51171875, - -37.9375 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "bias": "instanceNormBias" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -34.15625, - -31.515625, - -33.65625, - -32.90625, - 6.234375, - 4.1015625, - 3.787109375, - 3.923828125, - -37.8125, - -39.59375, - -37.03125, - -37.3125, - -32.28125, - -31.9375, - -34.375, - -33.6875, - 4.77734375, - 5.45703125, - 2.833984375, - 4.9765625, - -36.4375, - -39.25, - -38.15625, - -37.90625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "instanceNormalization float16 4D tensor options.epsilon", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.9375, - 29.4375, - -73.9375, - -38.125, - 41.34375, - -59.78125, - -74.6875, - -68.1875, - 35.8125, - -6.94921875, - 54.4375, - 47.53125, - 66.9375, - 76.75, - 5.67578125, - 25.6875, - 37.375, - 56.25, - -16.578125, - 42.9375, - 73.875, - -99, - -33.125, - -17.375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "epsilon": 1e-06 - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -1.099609375, - 1.552734375, - -0.599609375, - 0.1461181640625, - 1.7216796875, - -0.409912109375, - -0.72412109375, - -0.5869140625, - 0.1302490234375, - -1.6630859375, - 0.9111328125, - 0.62158203125, - 0.79443359375, - 1.130859375, - -1.3056640625, - -0.61962890625, - 0.265869140625, - 0.9462890625, - -1.6787109375, - 0.46630859375, - 1.50390625, - -1.2978515625, - -0.23046875, - 0.024810791015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "instanceNormalization float16 4D tensor explicit options.layout='nchw'", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.9375, - 29.4375, - -73.9375, - -38.125, - 41.34375, - -59.78125, - -74.6875, - -68.1875, - 35.8125, - -6.94921875, - 54.4375, - 47.53125, - 66.9375, - 76.75, - 5.67578125, - 25.6875, - 37.375, - 56.25, - -16.578125, - 42.9375, - 73.875, - -99, - -33.125, - -17.375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "layout": "nchw" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -1.099609375, - 1.552734375, - -0.599609375, - 0.1461181640625, - 1.7216796875, - -0.409912109375, - -0.72412109375, - -0.5869140625, - 0.1302490234375, - -1.6630859375, - 0.9111328125, - 0.62158203125, - 0.79443359375, - 1.130859375, - -1.3056640625, - -0.61962890625, - 0.265869140625, - 0.9462890625, - -1.6787109375, - 0.46630859375, - 1.50390625, - -1.2978515625, - -0.23046875, - 0.024810791015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "instanceNormalization float16 4D tensor options.layout='nhwc'", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.9375, - 41.34375, - 35.8125, - 29.4375, - -59.78125, - -6.94921875, - -73.9375, - -74.6875, - 54.4375, - -38.125, - -68.1875, - 47.53125, - 66.9375, - 37.375, - 73.875, - 76.75, - 56.25, - -99, - 5.67578125, - -16.578125, - -33.125, - 25.6875, - 42.9375, - -17.375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "layout": "nhwc" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - -1.099609375, - 1.7216796875, - 0.1302490234375, - 1.552734375, - -0.409912109375, - -1.6630859375, - -0.599609375, - -0.72412109375, - 0.9111328125, - 0.1461181640625, - -0.5869140625, - 0.62158203125, - 0.79443359375, - 0.265869140625, - 1.50390625, - 1.130859375, - 0.9462890625, - -1.2978515625, - -1.3056640625, - -1.6787109375, - -0.23046875, - -0.61962890625, - 0.46630859375, - 0.024810791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "instanceNormalization float16 4D tensor all options", - "graph": { - "inputs": { - "instanceNormInput": { - "data": [ - -97.9375, - 41.34375, - 35.8125, - 29.4375, - -59.78125, - -6.94921875, - -73.9375, - -74.6875, - 54.4375, - -38.125, - -68.1875, - 47.53125, - 66.9375, - 37.375, - 73.875, - 76.75, - 56.25, - -99, - 5.67578125, - -16.578125, - -33.125, - 25.6875, - 42.9375, - -17.375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "instanceNormScale": { - "data": [ - -94.4375, - 66.6875, - -98.5625 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "instanceNormBias": { - "data": [ - -33.0625, - 4.51171875, - -37.9375 - ], - "descriptor": { - "shape": [ - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "instanceNormalization", - "arguments": [ - { - "input": "instanceNormInput" - }, - { - "options": { - "scale": "instanceNormScale", - "bias": "instanceNormBias", - "epsilon": 1e-06, - "layout": "nhwc" - } - } - ], - "outputs": "instanceNormOutput" - } - ], - "expectedOutputs": { - "instanceNormOutput": { - "data": [ - 70.75, - 119.3125, - -50.78125, - -179.75, - -22.828125, - 126, - 23.5625, - -43.78125, - -127.75, - -46.84375, - -34.65625, - -99.1875, - -108.125, - 22.25, - -186.125, - -139.875, - 67.625, - 90, - 90.25, - -107.4375, - -15.2265625, - 25.46875, - 35.625, - -40.375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/layer_normalization.json b/tests/wpt_data/conformance/layer_normalization.json deleted file mode 100644 index ea0fb98..0000000 --- a/tests/wpt_data/conformance/layer_normalization.json +++ /dev/null @@ -1,2679 +0,0 @@ -{ - "operation": "layer_normalization", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/layer_normalization.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "layerNormalization float32 0D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - 0 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 2D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -5.712825298309326, - 1.4681644439697266, - 6.143280029296875, - 9.427258491516113, - 2.0522539615631104, - -8.829475402832031, - 9.143593788146973, - -7.643154144287109, - -2.0325264930725098, - 6.063992500305176, - 4.094968318939209, - 0.8910917043685913, - 8.712732315063477, - -0.0006124831270426512, - 5.505736827850342, - -9.155109405517578, - -9.89109992980957, - 1.0480059385299683, - -5.925083637237549, - 7.741676330566406, - 0.700584352016449, - -5.662013530731201, - 1.3204102516174316, - 2.7849292755126953 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.0228718519210815, - 0.11223962903022766, - 0.8512431979179382, - 1.3703473806381226, - 0.20456767082214355, - -1.5155260562896729, - 1.3417094945907593, - -1.705802321434021, - -0.6872337460517883, - 0.7826303243637085, - 0.42516833543777466, - -0.1564721316099167, - 1.3518258333206177, - 0.09107562154531479, - 0.8877996206283569, - -1.2335057258605957, - -1.3399975299835205, - 0.2428021878004074, - -1.273769736289978, - 1.58700692653656, - 0.1131395623087883, - -1.2187029123306274, - 0.2428838163614273, - 0.5494423508644104 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 2D tensor axes=[] and options.bias", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "layerNormBias": { - "data": [ - 7.862982749938965 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "axes": [], - "bias": "layerNormBias" - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965, - 7.862982749938965 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 2D tensor axes=[]", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 3D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.4057259559631348, - 0.5396455526351929, - -0.21643976867198944, - -0.9825550317764282, - 0.7713912725448608, - -0.08366990834474564, - 1.46259605884552, - -0.8138729333877563, - 0.7165266871452332, - -1.6945916414260864, - 1.3408818244934082, - 0.3658137917518616, - -1.5234858989715576, - 0.5162702202796936, - 0.43863821029663086, - 1.0831668376922607, - -1.2419193983078003, - 0.29146093130111694, - -1.7796510457992554, - -0.5852779150009155, - 1.3068104982376099, - 0.10783683508634567, - 1.0319640636444092, - 0.35418668389320374 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 4D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.4057259559631348, - 0.5396455526351929, - -0.21643976867198944, - -0.9825550317764282, - 0.7713912725448608, - -0.08366990834474564, - 1.46259605884552, - -0.8138729333877563, - 0.7165266871452332, - -1.6945916414260864, - 1.3408818244934082, - 0.3658137917518616, - -1.5234858989715576, - 0.5162702202796936, - 0.43863821029663086, - 1.0831668376922607, - -1.2419193983078003, - 0.29146093130111694, - -1.7796510457992554, - -0.5852779150009155, - 1.3068104982376099, - 0.10783683508634567, - 1.0319640636444092, - 0.35418668389320374 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 5D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.4057259559631348, - 0.5396455526351929, - -0.21643976867198944, - -0.9825550317764282, - 0.7713912725448608, - -0.08366990834474564, - 1.46259605884552, - -0.8138729333877563, - 0.7165266871452332, - -1.6945916414260864, - 1.3408818244934082, - 0.3658137917518616, - -1.5234858989715576, - 0.5162702202796936, - 0.43863821029663086, - 1.0831668376922607, - -1.2419193983078003, - 0.29146093130111694, - -1.7796510457992554, - -0.5852779150009155, - 1.3068104982376099, - 0.10783683508634567, - 1.0319640636444092, - 0.35418668389320374 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 4D tensor options.scale", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - }, - "layerNormScale": { - "data": [ - -3.8228423595428467, - -5.452458381652832, - 0.6776165962219238, - -4.027037620544434, - -3.7771618366241455, - -9.327335357666016, - 7.1816911697387695, - 1.5054303407669067, - 3.120894193649292, - 0.5214731693267822, - 2.6719748973846436, - -3.571370840072632 - ], - "descriptor": { - "shape": [ - 1, - 4, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "scale": "layerNormScale" - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - 5.373868465423584, - -2.942394971847534, - -0.14666318893432617, - 3.9567861557006836, - -2.9136698246002197, - 0.780417263507843, - 10.503913879394531, - -1.225229024887085, - 2.236203908920288, - -0.8836840987205505, - 3.5828025341033936, - -1.3064566850662231, - 5.824046611785889, - -2.814941883087158, - 0.29722854495048523, - -4.3619537353515625, - 4.6909308433532715, - -2.7185537815093994, - -12.780903816223145, - -0.8810951709747314, - 4.0784173011779785, - 0.05623401328921318, - 2.7573819160461426, - -1.2649319171905518 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 4D tensor options.bias", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - }, - "layerNormBias": { - "data": [ - 7.862982749938965, - -3.6603047847747803, - -6.955524444580078, - -6.397322654724121, - 3.268958568572998, - -2.7498080730438232, - -4.080942153930664, - -7.137991905212402, - 8.465653419494629, - 2.762545108795166, - 0.8230442404747009, - -3.827561378479004 - ], - "descriptor": { - "shape": [ - 1, - 4, - 3 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "bias": "layerNormBias" - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - 6.45725679397583, - -3.120659112930298, - -7.171964168548584, - -7.37987756729126, - 4.040349960327148, - -2.8334779739379883, - -2.6183459758758545, - -7.951864719390869, - 9.182180404663086, - 1.0679534673690796, - 2.163926124572754, - -3.461747646331787, - 6.339496612548828, - -3.1440346240997314, - -6.516886234283447, - -5.314155578613281, - 2.027039051055908, - -2.4583470821380615, - -5.860593318939209, - -7.723269939422607, - 9.77246379852295, - 2.8703818321228027, - 1.8550082445144653, - -3.473374605178833 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 4D tensor options.axes=[2]", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -0.6012066006660461, - 0.10132180899381638, - -1.112992763519287, - -0.26228588819503784, - 0.3943416476249695, - -0.7543209195137024, - 1.6960537433624268, - -1.6100702285766602, - 1.4073745012283325, - -0.8325613141059875, - 1.114406704902649, - 0.45993921160697937, - -0.8445013165473938, - 0.6554933190345764, - -0.3856155574321747, - 1.3668763637542725, - -1.3111618757247925, - -0.7422532439231873, - -1.0618212223052979, - -0.5766634941101074, - 1.7181260585784912, - 0.539446234703064, - 1.2323321104049683, - -0.5902572274208069 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 4D tensor options.epsilon", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "epsilon": 0.0001 - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.4057258367538452, - 0.5396455526351929, - -0.21643976867198944, - -0.9825550317764282, - 0.7713912725448608, - -0.08366990089416504, - 1.46259605884552, - -0.8138729333877563, - 0.7165266871452332, - -1.6945916414260864, - 1.3408817052841187, - 0.3658137619495392, - -1.5234858989715576, - 0.5162702202796936, - 0.43863821029663086, - 1.0831668376922607, - -1.2419193983078003, - 0.29146093130111694, - -1.7796509265899658, - -0.5852779150009155, - 1.3068104982376099, - 0.10783682763576508, - 1.0319639444351196, - 0.35418668389320374 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 4D tensor options.scale and options.axes=[0, 2]", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - }, - "layerNormScale": { - "data": [ - 8.72657299041748, - -5.388210773468018, - -6.811323165893555, - 4.707905292510986, - -4.705780029296875, - -5.143046855926514, - -1.1115549802780151, - 5.250569820404053 - ], - "descriptor": { - "shape": [ - 2, - 4 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "scale": "layerNormScale", - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -3.3744184970855713, - 5.22746467590332, - -7.580371856689453, - 0.3324689269065857, - -4.414334774017334, - 2.973374605178833, - -12.369945526123047, - 4.680946350097656, - -9.247408866882324, - -2.8648624420166016, - 6.40486478805542, - 2.4516794681549072, - 4.884079456329346, - -0.44672244787216187, - 2.521172285079956, - -6.083702564239502, - 9.044846534729004, - 4.759283065795898, - 1.3962621688842773, - 1.185346245765686, - -1.959165334701538, - 1.8479242324829102, - 3.3530402183532715, - -3.986907958984375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2]", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - }, - "layerNormBias": { - "data": [ - -0.1396923065185547, - -6.156772136688232, - 4.363296031951904, - 8.8598051071167, - 9.772650718688965, - -3.4626545906066895, - 9.744950294494629, - -0.3958968222141266, - -8.497353553771973, - 6.172536849975586, - -2.8930461406707764, - 1.7220044136047363 - ], - "descriptor": { - "shape": [ - 3, - 1, - 4 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "bias": "layerNormBias", - "axes": [ - 3, - 1, - 2 - ] - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.5454182624816895, - 10.312295913696289, - -8.713793754577637, - -7.139327049255371, - -2.691263198852539, - 6.088866710662842, - 5.825891971588135, - 8.931077003479004, - -2.1765193939208984, - 7.165213584899902, - 0.9449849724769592, - 2.087818145751953, - -1.6631782054901123, - 10.288921356201172, - -8.058714866638184, - -5.073605060577393, - -4.704574108123779, - 6.463997840881348, - 2.5836451053619385, - 9.159672737121582, - -1.5862356424331665, - 8.967641830444336, - 0.6360672116279602, - 2.0761911869049072 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float32 4D tensor all options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.51446533203125, - 54.735408782958984, - 19.659019470214844, - -15.882678031921387, - 65.48657989501953, - 25.818492889404297, - 97.55302429199219, - -8.057161331176758, - 62.9412956237793, - -48.91555404663086, - 91.90644073486328, - 46.67098617553711, - -74.85331726074219, - 30.126361846923828, - 26.13089370727539, - 59.30270767211914, - -60.361995697021484, - 18.55615234375, - -88.03730773925781, - -26.5667724609375, - 70.81292724609375, - 9.105611801147461, - 56.66746139526367, - 21.78444480895996 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - }, - "layerNormScale": { - "data": [ - 7.715926647186279, - 1.7371079921722412, - 9.13965129852295, - 5.758823394775391, - -2.8198351860046387, - -0.6866958141326904 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1 - ], - "dataType": "float32" - }, - "constant": true - }, - "layerNormBias": { - "data": [ - -8.710672378540039, - -7.642981052398682, - 4.937538146972656, - -2.1876745223999023, - -4.067612648010254, - -6.836254596710205 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "scale": "layerNormScale", - "bias": "layerNormBias", - "axes": [ - 0, - 3, - 1 - ], - "epsilon": 0.0001 - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -15.487034797668457, - -5.628695964813232, - 8.29687786102295, - -14.294686317443848, - -5.639192581176758, - 7.11608362197876, - 0.7769554257392883, - -8.346451759338379, - 11.279659271240234, - -22.506288528442383, - -5.173816204071045, - 8.506545066833496, - -12.360523223876953, - -5.77052116394043, - -7.18900203704834, - 3.6336634159088135, - 0.8666883707046509, - -6.884884357452393, - -11.648612976074219, - -2.117840528488159, - -7.396423816680908, - -4.869131088256836, - -5.8111701011657715, - -6.714934349060059 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "layerNormalization float16 2D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -5.7109375, - 1.4677734375, - 6.14453125, - 9.4296875, - 2.052734375, - -8.828125, - 9.140625, - -7.64453125, - -2.033203125, - 6.0625, - 4.09375, - 0.89111328125, - 8.7109375, - -0.0006122589111328125, - 5.50390625, - -9.15625, - -9.890625, - 1.0478515625, - -5.92578125, - 7.7421875, - 0.70068359375, - -5.66015625, - 1.3203125, - 2.78515625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.0224609375, - 0.11199951171875, - 0.85107421875, - 1.3701171875, - 0.2044677734375, - -1.515625, - 1.341796875, - -1.7060546875, - -0.68701171875, - 0.78271484375, - 0.42529296875, - -0.15625, - 1.3515625, - 0.0911865234375, - 0.8876953125, - -1.2333984375, - -1.33984375, - 0.242919921875, - -1.2744140625, - 1.5869140625, - 0.11309814453125, - -1.21875, - 0.2427978515625, - 0.54931640625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 3D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.4052734375, - 0.5400390625, - -0.216552734375, - -0.982421875, - 0.771484375, - -0.08392333984375, - 1.462890625, - -0.81396484375, - 0.71630859375, - -1.6943359375, - 1.341796875, - 0.365234375, - -1.5234375, - 0.51611328125, - 0.4384765625, - 1.0830078125, - -1.2421875, - 0.291748046875, - -1.7802734375, - -0.5849609375, - 1.306640625, - 0.10797119140625, - 1.03125, - 0.354248046875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 4D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.4052734375, - 0.5400390625, - -0.216552734375, - -0.982421875, - 0.771484375, - -0.08392333984375, - 1.462890625, - -0.81396484375, - 0.71630859375, - -1.6943359375, - 1.341796875, - 0.365234375, - -1.5234375, - 0.51611328125, - 0.4384765625, - 1.0830078125, - -1.2421875, - 0.291748046875, - -1.7802734375, - -0.5849609375, - 1.306640625, - 0.10797119140625, - 1.03125, - 0.354248046875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 5D tensor default options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.4052734375, - 0.5400390625, - -0.216552734375, - -0.982421875, - 0.771484375, - -0.08392333984375, - 1.462890625, - -0.81396484375, - 0.71630859375, - -1.6943359375, - 1.341796875, - 0.365234375, - -1.5234375, - 0.51611328125, - 0.4384765625, - 1.0830078125, - -1.2421875, - 0.291748046875, - -1.7802734375, - -0.5849609375, - 1.306640625, - 0.10797119140625, - 1.03125, - 0.354248046875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 4D tensor options.scale", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - }, - "layerNormScale": { - "data": [ - -3.822265625, - -5.453125, - 0.677734375, - -4.02734375, - -3.77734375, - -9.328125, - 7.18359375, - 1.505859375, - 3.12109375, - 0.521484375, - 2.671875, - -3.572265625 - ], - "descriptor": { - "shape": [ - 1, - 4, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "scale": "layerNormScale" - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - 5.37109375, - -2.943359375, - -0.1468505859375, - 3.95703125, - -2.9140625, - 0.78271484375, - 10.5078125, - -1.2255859375, - 2.236328125, - -0.8837890625, - 3.583984375, - -1.3046875, - 5.82421875, - -2.814453125, - 0.297119140625, - -4.36328125, - 4.69140625, - -2.720703125, - -12.7890625, - -0.880859375, - 4.078125, - 0.056304931640625, - 2.755859375, - -1.265625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 4D tensor options.bias", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - }, - "layerNormBias": { - "data": [ - 7.86328125, - -3.66015625, - -6.95703125, - -6.3984375, - 3.26953125, - -2.75, - -4.08203125, - -7.13671875, - 8.46875, - 2.76171875, - 0.8232421875, - -3.828125 - ], - "descriptor": { - "shape": [ - 1, - 4, - 3 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "bias": "layerNormBias" - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - 6.45703125, - -3.12109375, - -7.171875, - -7.3828125, - 4.04296875, - -2.833984375, - -2.619140625, - -7.94921875, - 9.1875, - 1.0673828125, - 2.1640625, - -3.462890625, - 6.33984375, - -3.14453125, - -6.51953125, - -5.31640625, - 2.02734375, - -2.458984375, - -5.86328125, - -7.72265625, - 9.7734375, - 2.869140625, - 1.8544921875, - -3.474609375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 4D tensor options.axes=[2]", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -0.60107421875, - 0.10125732421875, - -1.11328125, - -0.262451171875, - 0.394287109375, - -0.75439453125, - 1.6962890625, - -1.6103515625, - 1.4072265625, - -0.83251953125, - 1.1142578125, - 0.45947265625, - -0.8447265625, - 0.65576171875, - -0.3857421875, - 1.3671875, - -1.3115234375, - -0.74169921875, - -1.0615234375, - -0.57666015625, - 1.7177734375, - 0.53955078125, - 1.232421875, - -0.59033203125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 4D tensor options.epsilon", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "epsilon": 0.0001 - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.4052734375, - 0.5400390625, - -0.216552734375, - -0.982421875, - 0.771484375, - -0.08392333984375, - 1.462890625, - -0.81396484375, - 0.71630859375, - -1.6943359375, - 1.341796875, - 0.365234375, - -1.5234375, - 0.51611328125, - 0.4384765625, - 1.0830078125, - -1.2421875, - 0.291748046875, - -1.7802734375, - -0.5849609375, - 1.306640625, - 0.10797119140625, - 1.03125, - 0.354248046875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 4D tensor options.scale and options.axes=[0, 2]", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - }, - "layerNormScale": { - "data": [ - 8.7265625, - -5.38671875, - -6.8125, - 4.70703125, - -4.70703125, - -5.14453125, - -1.111328125, - 5.25 - ], - "descriptor": { - "shape": [ - 2, - 4 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "scale": "layerNormScale", - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -3.37109375, - 5.2265625, - -7.58203125, - 0.332275390625, - -4.4140625, - 2.97265625, - -12.375, - 4.6796875, - -9.25, - -2.86328125, - 6.40625, - 2.44921875, - 4.88671875, - -0.446044921875, - 2.5234375, - -6.0859375, - 9.046875, - 4.7578125, - 1.396484375, - 1.1845703125, - -1.958984375, - 1.84765625, - 3.349609375, - -3.986328125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 4D tensor options.bias and options.axes=[3, 1, 2]", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - }, - "layerNormBias": { - "data": [ - -0.1396484375, - -6.15625, - 4.36328125, - 8.859375, - 9.7734375, - -3.462890625, - 9.7421875, - -0.39599609375, - -8.5, - 6.171875, - -2.892578125, - 1.7216796875 - ], - "descriptor": { - "shape": [ - 3, - 1, - 4 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "bias": "layerNormBias", - "axes": [ - 3, - 1, - 2 - ] - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -1.544921875, - 10.3125, - -8.71875, - -7.140625, - -2.69140625, - 6.08984375, - 5.82421875, - 8.9296875, - -2.17578125, - 7.1640625, - 0.9453125, - 2.087890625, - -1.6630859375, - 10.2890625, - -8.0625, - -5.07421875, - -4.703125, - 6.46484375, - 2.583984375, - 9.15625, - -1.5859375, - 8.96875, - 0.6357421875, - 2.076171875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "layerNormalization float16 4D tensor all options", - "graph": { - "inputs": { - "layerNormInput": { - "data": [ - -35.5, - 54.75, - 19.65625, - -15.8828125, - 65.5, - 25.8125, - 97.5625, - -8.0546875, - 62.9375, - -48.90625, - 91.9375, - 46.65625, - -74.875, - 30.125, - 26.125, - 59.3125, - -60.375, - 18.5625, - -88.0625, - -26.5625, - 70.8125, - 9.109375, - 56.65625, - 21.78125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - }, - "layerNormScale": { - "data": [ - 7.71484375, - 1.7373046875, - 9.140625, - 5.7578125, - -2.8203125, - -0.6865234375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1 - ], - "dataType": "float16" - }, - "constant": true - }, - "layerNormBias": { - "data": [ - -8.7109375, - -7.64453125, - 4.9375, - -2.1875, - -4.06640625, - -6.8359375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "layerNormalization", - "arguments": [ - { - "input": "layerNormInput" - }, - { - "options": { - "scale": "layerNormScale", - "bias": "layerNormBias", - "axes": [ - 0, - 3, - 1 - ], - "epsilon": 0.0001 - } - } - ], - "outputs": "layerNormOutput" - } - ], - "expectedOutputs": { - "layerNormOutput": { - "data": [ - -15.484375, - -5.62890625, - 8.296875, - -14.296875, - -5.640625, - 7.11328125, - 0.775390625, - -8.3515625, - 11.28125, - -22.5, - -5.17578125, - 8.5, - -12.359375, - -5.76953125, - -7.1875, - 3.6328125, - 0.86865234375, - -6.8828125, - -11.6484375, - -2.1171875, - -7.39453125, - -4.8671875, - -5.80859375, - -6.71484375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/leaky_relu.json b/tests/wpt_data/conformance/leaky_relu.json deleted file mode 100644 index 9995bd8..0000000 --- a/tests/wpt_data/conformance/leaky_relu.json +++ /dev/null @@ -1,1761 +0,0 @@ -{ - "operation": "leaky_relu", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/leaky_relu.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "leakyRelu float32 1D constant tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.19053640961647034, - 50.77590560913086, - -0.695496678352356, - -0.8057432770729065, - -0.9040110111236572, - 76.02884674072266, - 66.33873748779297, - -0.8410186767578125, - -0.1719101369380951, - -0.8747624158859253, - -0.0341646634042263, - -0.2277235984802246, - -0.02509489096701145, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -0.33178603649139404, - -0.4603901207447052, - -0.6147925853729248, - 64.26514434814453, - 21.469341278076172, - -0.31514689326286316, - -0.4127694368362427, - -0.6559529304504395 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 0D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.19053640961647034 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 1D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.19053640961647034, - 50.77590560913086, - -0.695496678352356, - -0.8057432770729065, - -0.9040110111236572, - 76.02884674072266, - 66.33873748779297, - -0.8410186767578125, - -0.1719101369380951, - -0.8747624158859253, - -0.0341646634042263, - -0.2277235984802246, - -0.02509489096701145, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -0.33178603649139404, - -0.4603901207447052, - -0.6147925853729248, - 64.26514434814453, - 21.469341278076172, - -0.31514689326286316, - -0.4127694368362427, - -0.6559529304504395 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 2D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.19053640961647034, - 50.77590560913086, - -0.695496678352356, - -0.8057432770729065, - -0.9040110111236572, - 76.02884674072266, - 66.33873748779297, - -0.8410186767578125, - -0.1719101369380951, - -0.8747624158859253, - -0.0341646634042263, - -0.2277235984802246, - -0.02509489096701145, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -0.33178603649139404, - -0.4603901207447052, - -0.6147925853729248, - 64.26514434814453, - 21.469341278076172, - -0.31514689326286316, - -0.4127694368362427, - -0.6559529304504395 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 3D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.19053640961647034, - 50.77590560913086, - -0.695496678352356, - -0.8057432770729065, - -0.9040110111236572, - 76.02884674072266, - 66.33873748779297, - -0.8410186767578125, - -0.1719101369380951, - -0.8747624158859253, - -0.0341646634042263, - -0.2277235984802246, - -0.02509489096701145, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -0.33178603649139404, - -0.4603901207447052, - -0.6147925853729248, - 64.26514434814453, - 21.469341278076172, - -0.31514689326286316, - -0.4127694368362427, - -0.6559529304504395 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 4D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.19053640961647034, - 50.77590560913086, - -0.695496678352356, - -0.8057432770729065, - -0.9040110111236572, - 76.02884674072266, - 66.33873748779297, - -0.8410186767578125, - -0.1719101369380951, - -0.8747624158859253, - -0.0341646634042263, - -0.2277235984802246, - -0.02509489096701145, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -0.33178603649139404, - -0.4603901207447052, - -0.6147925853729248, - 64.26514434814453, - 21.469341278076172, - -0.31514689326286316, - -0.4127694368362427, - -0.6559529304504395 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 5D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.19053640961647034, - 50.77590560913086, - -0.695496678352356, - -0.8057432770729065, - -0.9040110111236572, - 76.02884674072266, - 66.33873748779297, - -0.8410186767578125, - -0.1719101369380951, - -0.8747624158859253, - -0.0341646634042263, - -0.2277235984802246, - -0.02509489096701145, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -0.33178603649139404, - -0.4603901207447052, - -0.6147925853729248, - 64.26514434814453, - 21.469341278076172, - -0.31514689326286316, - -0.4127694368362427, - -0.6559529304504395 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 1D tensor negative options.alpha", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - }, - { - "options": { - "alpha": -97.70109193608776 - } - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - 1861.5615234375, - 50.77590560913086, - 6795.07861328125, - 7872.19970703125, - 8832.2861328125, - 76.02884674072266, - 66.33873748779297, - 8216.8447265625, - 1679.580810546875, - 8546.5244140625, - 333.7925109863281, - 2224.884521484375, - 245.17982482910156, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - 3241.5859375, - 4498.06201171875, - 6006.5908203125, - 64.26514434814453, - 21.469341278076172, - 3079.019775390625, - 4032.802490234375, - 6408.73193359375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 2D tensor positive options.alpha", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - }, - { - "options": { - "alpha": 35.799162942273234 - } - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -682.1043701171875, - 50.77590560913086, - -2489.81982421875, - -2884.493408203125, - -3236.28369140625, - 76.02884674072266, - 66.33873748779297, - -3010.776611328125, - -615.4238891601562, - -3131.576416015625, - -122.306640625, - -815.2314453125, - -89.83760833740234, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -1187.7662353515625, - -1648.158203125, - -2200.906005859375, - 64.26514434814453, - 21.469341278076172, - -1128.1995849609375, - -1477.6800537109375, - -2348.256591796875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float32 5D tensor options.alpha=0.0", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.053640365600586, - 50.77590560913086, - -69.54966735839844, - -80.57432556152344, - -90.4011001586914, - 76.02884674072266, - 66.33873748779297, - -84.10186767578125, - -17.19101333618164, - -87.47624206542969, - -3.416466474533081, - -22.77235984802246, - -2.509489059448242, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - -33.17860412597656, - -46.03901290893555, - -61.47925567626953, - 64.26514434814453, - 21.469341278076172, - -31.514690399169922, - -41.27694320678711, - -65.59529113769531 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - }, - { - "options": { - "alpha": 0 - } - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - 0, - 50.77590560913086, - 0, - 0, - 0, - 76.02884674072266, - 66.33873748779297, - 0, - 0, - 0, - 0, - 0, - 0, - 18.933284759521484, - 98.61402893066406, - 55.3392333984375, - 0, - 0, - 0, - 64.26514434814453, - 21.469341278076172, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "leakyRelu float16 1D constant tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.1904296875, - 50.78125, - -0.69580078125, - -0.8056640625, - -0.90380859375, - 76, - 66.3125, - -0.84130859375, - -0.171875, - -0.875, - -0.034149169921875, - -0.2276611328125, - -0.0251007080078125, - 18.9375, - 98.625, - 55.34375, - -0.331787109375, - -0.460205078125, - -0.61474609375, - 64.25, - 21.46875, - -0.315185546875, - -0.412841796875, - -0.65625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 0D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.1904296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 1D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.1904296875, - 50.78125, - -0.69580078125, - -0.8056640625, - -0.90380859375, - 76, - 66.3125, - -0.84130859375, - -0.171875, - -0.875, - -0.034149169921875, - -0.2276611328125, - -0.0251007080078125, - 18.9375, - 98.625, - 55.34375, - -0.331787109375, - -0.460205078125, - -0.61474609375, - 64.25, - 21.46875, - -0.315185546875, - -0.412841796875, - -0.65625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 2D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.1904296875, - 50.78125, - -0.69580078125, - -0.8056640625, - -0.90380859375, - 76, - 66.3125, - -0.84130859375, - -0.171875, - -0.875, - -0.034149169921875, - -0.2276611328125, - -0.0251007080078125, - 18.9375, - 98.625, - 55.34375, - -0.331787109375, - -0.460205078125, - -0.61474609375, - 64.25, - 21.46875, - -0.315185546875, - -0.412841796875, - -0.65625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 3D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.1904296875, - 50.78125, - -0.69580078125, - -0.8056640625, - -0.90380859375, - 76, - 66.3125, - -0.84130859375, - -0.171875, - -0.875, - -0.034149169921875, - -0.2276611328125, - -0.0251007080078125, - 18.9375, - 98.625, - 55.34375, - -0.331787109375, - -0.460205078125, - -0.61474609375, - 64.25, - 21.46875, - -0.315185546875, - -0.412841796875, - -0.65625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 4D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.1904296875, - 50.78125, - -0.69580078125, - -0.8056640625, - -0.90380859375, - 76, - 66.3125, - -0.84130859375, - -0.171875, - -0.875, - -0.034149169921875, - -0.2276611328125, - -0.0251007080078125, - 18.9375, - 98.625, - 55.34375, - -0.331787109375, - -0.460205078125, - -0.61474609375, - 64.25, - 21.46875, - -0.315185546875, - -0.412841796875, - -0.65625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 5D tensor default options", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -0.1904296875, - 50.78125, - -0.69580078125, - -0.8056640625, - -0.90380859375, - 76, - 66.3125, - -0.84130859375, - -0.171875, - -0.875, - -0.034149169921875, - -0.2276611328125, - -0.0251007080078125, - 18.9375, - 98.625, - 55.34375, - -0.331787109375, - -0.460205078125, - -0.61474609375, - 64.25, - 21.46875, - -0.315185546875, - -0.412841796875, - -0.65625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 1D tensor negative options.alpha", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - }, - { - "options": { - "alpha": -97.70109193608776 - } - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - 1861, - 50.78125, - 6796, - 7872, - 8832, - 76, - 66.3125, - 8216, - 1679, - 8552, - 333.75, - 2224, - 245.25, - 18.9375, - 98.625, - 55.34375, - 3242, - 4496, - 6004, - 64.25, - 21.46875, - 3080, - 4034, - 6412 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 2D tensor positive options.alpha", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - }, - { - "options": { - "alpha": 35.799162942273234 - } - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - -682, - 50.78125, - -2490, - -2884, - -3236, - 76, - 66.3125, - -3012, - -615.5, - -3132, - -122.3125, - -815, - -89.875, - 18.9375, - 98.625, - 55.34375, - -1188, - -1648, - -2200, - 64.25, - 21.46875, - -1128, - -1478, - -2350 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "leakyRelu float16 5D tensor options.alpha=0.0", - "graph": { - "inputs": { - "leakyReluInput": { - "data": [ - -19.046875, - 50.78125, - -69.5625, - -80.5625, - -90.375, - 76, - 66.3125, - -84.125, - -17.1875, - -87.5, - -3.416015625, - -22.765625, - -2.509765625, - 18.9375, - 98.625, - 55.34375, - -33.1875, - -46.03125, - -61.46875, - 64.25, - 21.46875, - -31.515625, - -41.28125, - -65.625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "leakyRelu", - "arguments": [ - { - "input": "leakyReluInput" - }, - { - "options": { - "alpha": 0 - } - } - ], - "outputs": "leakyReluOutput" - } - ], - "expectedOutputs": { - "leakyReluOutput": { - "data": [ - 0, - 50.78125, - 0, - 0, - 0, - 76, - 66.3125, - 0, - 0, - 0, - 0, - 0, - 0, - 18.9375, - 98.625, - 55.34375, - 0, - 0, - 0, - 64.25, - 21.46875, - 0, - 0, - 0 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/lesser.json b/tests/wpt_data/conformance/lesser.json deleted file mode 100644 index 1bff003..0000000 --- a/tests/wpt_data/conformance/lesser.json +++ /dev/null @@ -1,2777 +0,0 @@ -{ - "operation": "lesser", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/lesser.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "lesser float32 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - -0.5228080153465271 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 0.8150388598442078 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - 2.945375680923462, - 3.730471611022949, - 4.0253753662109375, - -4.718355178833008, - 6.7732744216918945, - -2.042813539505005, - -6.526762008666992, - 6.826299667358398, - -9.267172813415527, - 6.118423938751221, - -2.001732349395752, - 1.779831051826477, - 9.660094261169434, - -2.7473158836364746, - -3.4345006942749023, - -4.751097679138184, - -6.092621803283691, - -0.4334806203842163, - -1.4069052934646606, - -0.23742099106311798, - -9.10597038269043, - 6.811779975891113, - -6.768326759338379, - -8.952353477478027 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.945375680923462, - 3.730471611022949, - 4.0253753662109375, - -4.718355178833008, - 6.7732744216918945, - -2.042813539505005, - -6.526762008666992, - 6.826299667358398, - -9.267172813415527, - 6.118423938751221, - -2.001732349395752, - 1.779831051826477, - 9.660094261169434, - -2.7473158836364746, - -3.4345006942749023, - -4.751097679138184, - -6.092621803283691, - -0.4334806203842163, - -1.4069052934646606, - -0.23742099106311798, - -9.10597038269043, - 6.811779975891113, - -6.768326759338379, - -8.952353477478027 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.945375680923462, - 3.730471611022949, - 4.0253753662109375, - -4.718355178833008, - 6.7732744216918945, - -2.042813539505005, - -6.526762008666992, - 6.826299667358398, - -9.267172813415527, - 6.118423938751221, - -2.001732349395752, - 1.779831051826477, - 9.660094261169434, - -2.7473158836364746, - -3.4345006942749023, - -4.751097679138184, - -6.092621803283691, - -0.4334806203842163, - -1.4069052934646606, - -0.23742099106311798, - -9.10597038269043, - 6.811779975891113, - -6.768326759338379, - -8.952353477478027 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.945375680923462, - 3.730471611022949, - 4.0253753662109375, - -4.718355178833008, - 6.7732744216918945, - -2.042813539505005, - -6.526762008666992, - 6.826299667358398, - -9.267172813415527, - 6.118423938751221, - -2.001732349395752, - 1.779831051826477, - 9.660094261169434, - -2.7473158836364746, - -3.4345006942749023, - -4.751097679138184, - -6.092621803283691, - -0.4334806203842163, - -1.4069052934646606, - -0.23742099106311798, - -9.10597038269043, - 6.811779975891113, - -6.768326759338379, - -8.952353477478027 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.945375680923462, - 3.730471611022949, - 4.0253753662109375, - -4.718355178833008, - 6.7732744216918945, - -2.042813539505005, - -6.526762008666992, - 6.826299667358398, - -9.267172813415527, - 6.118423938751221, - -2.001732349395752, - 1.779831051826477, - 9.660094261169434, - -2.7473158836364746, - -3.4345006942749023, - -4.751097679138184, - -6.092621803283691, - -0.4334806203842163, - -1.4069052934646606, - -0.23742099106311798, - -9.10597038269043, - 6.811779975891113, - -6.768326759338379, - -8.952353477478027 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 2.945375680923462, - 3.730471611022949, - 4.0253753662109375, - -4.718355178833008, - 6.7732744216918945, - -2.042813539505005, - -6.526762008666992, - 6.826299667358398, - -9.267172813415527, - 6.118423938751221, - -2.001732349395752, - 1.779831051826477, - 9.660094261169434, - -2.7473158836364746, - -3.4345006942749023, - -4.751097679138184, - -6.092621803283691, - -0.4334806203842163, - -1.4069052934646606, - -0.23742099106311798, - -9.10597038269043, - 6.811779975891113, - -6.768326759338379, - -8.952353477478027 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.678369998931885 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.678369998931885 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 3.5869946479797363, - -2.853332042694092, - -3.684652805328369, - 2.4055018424987793, - -4.358371257781982, - 5.5484747886657715 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -4.439523696899414, - 2.7518322467803955, - 3.635943651199341, - -2.8089921474456787 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.678369998931885 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -1.147218942642212, - -8.409374237060547, - -2.2753310203552246, - -0.5770801305770874, - 8.171789169311523, - -0.907120943069458, - 5.2908453941345215, - -3.9134645462036133, - 9.825095176696777, - -8.931730270385742, - -3.457401752471924, - -7.331232070922852, - 1.232004165649414, - 4.312077045440674, - 1.2715545892715454, - 4.184540748596191, - -6.710920333862305, - 3.0768423080444336, - 1.0030865669250488, - -9.076244354248047, - 8.907161712646484, - 4.232614994049072, - 2.1005890369415283, - -6.201345443725586 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - -0.52294921875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 0.81494140625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - 2.9453125, - 3.73046875, - 4.0234375, - -4.71875, - 6.7734375, - -2.04296875, - -6.52734375, - 6.828125, - -9.265625, - 6.1171875, - -2.001953125, - 1.7802734375, - 9.65625, - -2.748046875, - -3.43359375, - -4.75, - -6.09375, - -0.43359375, - -1.4072265625, - -0.2374267578125, - -9.109375, - 6.8125, - -6.76953125, - -8.953125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.9453125, - 3.73046875, - 4.0234375, - -4.71875, - 6.7734375, - -2.04296875, - -6.52734375, - 6.828125, - -9.265625, - 6.1171875, - -2.001953125, - 1.7802734375, - 9.65625, - -2.748046875, - -3.43359375, - -4.75, - -6.09375, - -0.43359375, - -1.4072265625, - -0.2374267578125, - -9.109375, - 6.8125, - -6.76953125, - -8.953125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.9453125, - 3.73046875, - 4.0234375, - -4.71875, - 6.7734375, - -2.04296875, - -6.52734375, - 6.828125, - -9.265625, - 6.1171875, - -2.001953125, - 1.7802734375, - 9.65625, - -2.748046875, - -3.43359375, - -4.75, - -6.09375, - -0.43359375, - -1.4072265625, - -0.2374267578125, - -9.109375, - 6.8125, - -6.76953125, - -8.953125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.9453125, - 3.73046875, - 4.0234375, - -4.71875, - 6.7734375, - -2.04296875, - -6.52734375, - 6.828125, - -9.265625, - 6.1171875, - -2.001953125, - 1.7802734375, - 9.65625, - -2.748046875, - -3.43359375, - -4.75, - -6.09375, - -0.43359375, - -1.4072265625, - -0.2374267578125, - -9.109375, - 6.8125, - -6.76953125, - -8.953125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.9453125, - 3.73046875, - 4.0234375, - -4.71875, - 6.7734375, - -2.04296875, - -6.52734375, - 6.828125, - -9.265625, - 6.1171875, - -2.001953125, - 1.7802734375, - 9.65625, - -2.748046875, - -3.43359375, - -4.75, - -6.09375, - -0.43359375, - -1.4072265625, - -0.2374267578125, - -9.109375, - 6.8125, - -6.76953125, - -8.953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 2.9453125, - 3.73046875, - 4.0234375, - -4.71875, - 6.7734375, - -2.04296875, - -6.52734375, - 6.828125, - -9.265625, - 6.1171875, - -2.001953125, - 1.7802734375, - 9.65625, - -2.748046875, - -3.43359375, - -4.75, - -6.09375, - -0.43359375, - -1.4072265625, - -0.2374267578125, - -9.109375, - 6.8125, - -6.76953125, - -8.953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 0, - 0, - 1, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.6796875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.6796875 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 3.587890625, - -2.853515625, - -3.685546875, - 2.40625, - -4.359375, - 5.546875 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -4.44140625, - 2.751953125, - 3.63671875, - -2.80859375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesser float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -5.6796875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -1.1474609375, - -8.40625, - -2.275390625, - -0.5771484375, - 8.171875, - -0.9072265625, - 5.2890625, - -3.9140625, - 9.828125, - -8.9296875, - -3.45703125, - -7.33203125, - 1.232421875, - 4.3125, - 1.271484375, - 4.18359375, - -6.7109375, - 3.076171875, - 1.0029296875, - -9.078125, - 8.90625, - 4.234375, - 2.1015625, - -6.203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesser", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/lesser_or_equal.json b/tests/wpt_data/conformance/lesser_or_equal.json deleted file mode 100644 index 2751833..0000000 --- a/tests/wpt_data/conformance/lesser_or_equal.json +++ /dev/null @@ -1,2777 +0,0 @@ -{ - "operation": "lesser_or_equal", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/lesser_or_equal.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "lesserOrEqual float32 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - -6.978766441345215 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 6.613064765930176 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - 5.498841285705566, - 1.766266107559204, - -2.815573215484619, - -6.048312187194824, - 9.497536659240723, - -2.101574659347534, - -4.079037189483643, - 5.314040184020996, - 0.03871455416083336, - -0.30728286504745483, - 4.97542667388916, - 3.462601661682129, - 8.605685234069824, - 1.5140480995178223, - 2.0090959072113037, - -0.3105867803096771, - -4.244836330413818, - -3.5506834983825684, - -2.5953285694122314, - -4.9998064041137695, - 3.118950605392456, - 9.705141067504883, - 9.54673957824707, - -6.189505577087402 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 5.498841285705566, - 1.766266107559204, - -2.815573215484619, - -6.048312187194824, - 9.497536659240723, - -2.101574659347534, - -4.079037189483643, - 5.314040184020996, - 0.03871455416083336, - -0.30728286504745483, - 4.97542667388916, - 3.462601661682129, - 8.605685234069824, - 1.5140480995178223, - 2.0090959072113037, - -0.3105867803096771, - -4.244836330413818, - -3.5506834983825684, - -2.5953285694122314, - -4.9998064041137695, - 3.118950605392456, - 9.705141067504883, - 9.54673957824707, - -6.189505577087402 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 5.498841285705566, - 1.766266107559204, - -2.815573215484619, - -6.048312187194824, - 9.497536659240723, - -2.101574659347534, - -4.079037189483643, - 5.314040184020996, - 0.03871455416083336, - -0.30728286504745483, - 4.97542667388916, - 3.462601661682129, - 8.605685234069824, - 1.5140480995178223, - 2.0090959072113037, - -0.3105867803096771, - -4.244836330413818, - -3.5506834983825684, - -2.5953285694122314, - -4.9998064041137695, - 3.118950605392456, - 9.705141067504883, - 9.54673957824707, - -6.189505577087402 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 5.498841285705566, - 1.766266107559204, - -2.815573215484619, - -6.048312187194824, - 9.497536659240723, - -2.101574659347534, - -4.079037189483643, - 5.314040184020996, - 0.03871455416083336, - -0.30728286504745483, - 4.97542667388916, - 3.462601661682129, - 8.605685234069824, - 1.5140480995178223, - 2.0090959072113037, - -0.3105867803096771, - -4.244836330413818, - -3.5506834983825684, - -2.5953285694122314, - -4.9998064041137695, - 3.118950605392456, - 9.705141067504883, - 9.54673957824707, - -6.189505577087402 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 5.498841285705566, - 1.766266107559204, - -2.815573215484619, - -6.048312187194824, - 9.497536659240723, - -2.101574659347534, - -4.079037189483643, - 5.314040184020996, - 0.03871455416083336, - -0.30728286504745483, - 4.97542667388916, - 3.462601661682129, - 8.605685234069824, - 1.5140480995178223, - 2.0090959072113037, - -0.3105867803096771, - -4.244836330413818, - -3.5506834983825684, - -2.5953285694122314, - -4.9998064041137695, - 3.118950605392456, - 9.705141067504883, - 9.54673957824707, - -6.189505577087402 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 5.498841285705566, - 1.766266107559204, - -2.815573215484619, - -6.048312187194824, - 9.497536659240723, - -2.101574659347534, - -4.079037189483643, - 5.314040184020996, - 0.03871455416083336, - -0.30728286504745483, - 4.97542667388916, - 3.462601661682129, - 8.605685234069824, - 1.5140480995178223, - 2.0090959072113037, - -0.3105867803096771, - -4.244836330413818, - -3.5506834983825684, - -2.5953285694122314, - -4.9998064041137695, - 3.118950605392456, - 9.705141067504883, - 9.54673957824707, - -6.189505577087402 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 4.840610980987549 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 4.840610980987549 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -8.499547004699707, - -8.321310043334961, - -7.182070732116699, - 3.418306350708008, - 5.389469146728516, - 6.904313087463379 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 4.195140838623047, - 7.8286590576171875, - 6.6902031898498535, - 0.9247010350227356 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 4.840610980987549 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -8.284008979797363, - -3.219264507293701, - -6.543179988861084, - -0.540285050868988, - -5.413843631744385, - 5.583743095397949, - 1.50178062915802, - 6.5922441482543945, - -9.92548656463623, - -7.134799957275391, - -4.915772914886475, - -9.137166976928711, - 9.40368366241455, - -9.831502914428711, - -2.0123181343078613, - -6.597689628601074, - -8.26932144165039, - 8.281030654907227, - 1.64528226852417, - -1.4862726926803589, - -4.998753547668457, - -0.920993447303772, - -9.434256553649902, - 9.813238143920898 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 0D scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - -6.98046875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 6.61328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - 5.5, - 1.7666015625, - -2.81640625, - -6.046875, - 9.5, - -2.1015625, - -4.078125, - 5.3125, - 0.038726806640625, - -0.307373046875, - 4.9765625, - 3.462890625, - 8.609375, - 1.513671875, - 2.009765625, - -0.310546875, - -4.24609375, - -3.55078125, - -2.595703125, - -5, - 3.119140625, - 9.703125, - 9.546875, - -6.19140625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 5.5, - 1.7666015625, - -2.81640625, - -6.046875, - 9.5, - -2.1015625, - -4.078125, - 5.3125, - 0.038726806640625, - -0.307373046875, - 4.9765625, - 3.462890625, - 8.609375, - 1.513671875, - 2.009765625, - -0.310546875, - -4.24609375, - -3.55078125, - -2.595703125, - -5, - 3.119140625, - 9.703125, - 9.546875, - -6.19140625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 5.5, - 1.7666015625, - -2.81640625, - -6.046875, - 9.5, - -2.1015625, - -4.078125, - 5.3125, - 0.038726806640625, - -0.307373046875, - 4.9765625, - 3.462890625, - 8.609375, - 1.513671875, - 2.009765625, - -0.310546875, - -4.24609375, - -3.55078125, - -2.595703125, - -5, - 3.119140625, - 9.703125, - 9.546875, - -6.19140625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 5.5, - 1.7666015625, - -2.81640625, - -6.046875, - 9.5, - -2.1015625, - -4.078125, - 5.3125, - 0.038726806640625, - -0.307373046875, - 4.9765625, - 3.462890625, - 8.609375, - 1.513671875, - 2.009765625, - -0.310546875, - -4.24609375, - -3.55078125, - -2.595703125, - -5, - 3.119140625, - 9.703125, - 9.546875, - -6.19140625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 5.5, - 1.7666015625, - -2.81640625, - -6.046875, - 9.5, - -2.1015625, - -4.078125, - 5.3125, - 0.038726806640625, - -0.307373046875, - 4.9765625, - 3.462890625, - 8.609375, - 1.513671875, - 2.009765625, - -0.310546875, - -4.24609375, - -3.55078125, - -2.595703125, - -5, - 3.119140625, - 9.703125, - 9.546875, - -6.19140625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 5.5, - 1.7666015625, - -2.81640625, - -6.046875, - 9.5, - -2.1015625, - -4.078125, - 5.3125, - 0.038726806640625, - -0.307373046875, - 4.9765625, - 3.462890625, - 8.609375, - 1.513671875, - 2.009765625, - -0.310546875, - -4.24609375, - -3.55078125, - -2.595703125, - -5, - 3.119140625, - 9.703125, - 9.546875, - -6.19140625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 0, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 0, - 0, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 broadcast 0D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 4.83984375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 4.83984375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -8.5, - -8.3203125, - -7.18359375, - 3.41796875, - 5.390625, - 6.90625 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 1, - 1, - 1, - 0, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 0, - 1, - 1, - 0, - 0, - 0, - 0, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 4.1953125, - 7.828125, - 6.69140625, - 0.9248046875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 0, - 1, - 1, - 1, - 1, - 1, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "lesserOrEqual float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 4.83984375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -8.28125, - -3.21875, - -6.54296875, - -0.54052734375, - -5.4140625, - 5.58203125, - 1.501953125, - 6.59375, - -9.921875, - -7.13671875, - -4.9140625, - -9.140625, - 9.40625, - -9.828125, - -2.01171875, - -6.59765625, - -8.265625, - 8.28125, - 1.6455078125, - -1.486328125, - -5, - -0.9208984375, - -9.4375, - 9.8125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "lesserOrEqual", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 1 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/linear.json b/tests/wpt_data/conformance/linear.json deleted file mode 100644 index af12522..0000000 --- a/tests/wpt_data/conformance/linear.json +++ /dev/null @@ -1,2377 +0,0 @@ -{ - "operation": "linear", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/linear.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "linear float32 1D constant tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 0D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.12251615524292 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.12251615524292 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 1D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 2D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 3D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 4D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 5D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 4D tensor specified options.alpha and default options.beta", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.12251615524292, - -6.605223178863525, - -1.9555538892745972, - -4.598548412322998, - 4.234208106994629, - 3.0975420475006104, - 3.7465922832489014, - -4.487029552459717, - 6.407402038574219, - -4.354544162750244, - -5.819092750549316, - 3.7214345932006836, - -6.330113887786865, - 8.580595016479492, - -6.764922142028809, - 6.433565616607666, - -9.708685874938965, - 2.6431379318237305, - 5.2140889167785645, - 9.65861701965332, - -8.721749305725098, - -0.4533396363258362, - 9.992619514465332, - -6.469675064086914 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "alpha": 7.398793812746618 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -8.305265426635742, - -48.87068176269531, - -14.46873950958252, - -34.023712158203125, - 31.328031539916992, - 22.918073654174805, - 27.72026252746582, - -33.198604583740234, - 47.407047271728516, - -32.2183723449707, - -43.05426788330078, - 27.53412628173828, - -46.835205078125, - 63.486053466796875, - -50.05226516723633, - 47.600624084472656, - -71.83256530761719, - 19.556032180786133, - 38.57796859741211, - 71.46211242675781, - -64.53042602539062, - -3.3541665077209473, - 73.9333267211914, - -47.86779022216797 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 positive 4D tensor specified positive options.beta and default options.alpha", - "graph": { - "inputs": { - "linearInput": { - "data": [ - 5.098546028137207, - 3.381463050842285, - 8.054762840270996, - 8.074773788452148, - 0.47079092264175415, - 5.243824005126953, - 3.827306032180786, - 5.3697686195373535, - 6.1033172607421875, - 3.7505786418914795, - 0.7479738593101501, - 1.8931976556777954, - 1.9056464433670044, - 7.863316059112549, - 4.58075475692749, - 9.373635292053223, - 6.584214210510254, - 9.344809532165527, - 5.16057825088501, - 0.8060914278030396, - 9.130533218383789, - 3.1937403678894043, - 5.748293399810791, - 4.113487720489502 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "beta": 5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - 11.017641067504883, - 9.300558090209961, - 13.973857879638672, - 13.99386978149414, - 6.389886379241943, - 11.162919998168945, - 9.7464017868042, - 11.288864135742188, - 12.02241325378418, - 9.669673919677734, - 6.667069435119629, - 7.81229305267334, - 7.824741840362549, - 13.782411575317383, - 10.499850273132324, - 15.292730331420898, - 12.50330924987793, - 15.263904571533203, - 11.079673767089844, - 6.725186824798584, - 15.049629211425781, - 9.112835884094238, - 11.667388916015625, - 10.032583236694336 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 negative 4D tensor specified negative options.beta and default options.alpha", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -5.098546028137207, - -3.381463050842285, - -8.054762840270996, - -8.074773788452148, - -0.47079092264175415, - -5.243824005126953, - -3.827306032180786, - -5.3697686195373535, - -6.1033172607421875, - -3.7505786418914795, - -0.7479738593101501, - -1.8931976556777954, - -1.9056464433670044, - -7.863316059112549, - -4.58075475692749, - -9.373635292053223, - -6.584214210510254, - -9.344809532165527, - -5.16057825088501, - -0.8060914278030396, - -9.130533218383789, - -3.1937403678894043, - -5.748293399810791, - -4.113487720489502 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "beta": -5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -11.017641067504883, - -9.300558090209961, - -13.973857879638672, - -13.99386978149414, - -6.389886379241943, - -11.162919998168945, - -9.7464017868042, - -11.288864135742188, - -12.02241325378418, - -9.669673919677734, - -6.667069435119629, - -7.81229305267334, - -7.824741840362549, - -13.782411575317383, - -10.499850273132324, - -15.292730331420898, - -12.50330924987793, - -15.263904571533203, - -11.079673767089844, - -6.725186824798584, - -15.049629211425781, - -9.112835884094238, - -11.667388916015625, - -10.032583236694336 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 positive 4D tensor all options (positive options.alpha and positive options.beta)", - "graph": { - "inputs": { - "linearInput": { - "data": [ - 5.098546028137207, - 3.381463050842285, - 8.054762840270996, - 8.074773788452148, - 0.47079092264175415, - 5.243824005126953, - 3.827306032180786, - 5.3697686195373535, - 6.1033172607421875, - 3.7505786418914795, - 0.7479738593101501, - 1.8931976556777954, - 1.9056464433670044, - 7.863316059112549, - 4.58075475692749, - 9.373635292053223, - 6.584214210510254, - 9.344809532165527, - 5.16057825088501, - 0.8060914278030396, - 9.130533218383789, - 3.1937403678894043, - 5.748293399810791, - 4.113487720489502 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "alpha": 7.398793812746618, - "beta": 5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - 43.64218521118164, - 30.937843322753906, - 65.5146255493164, - 65.66268157958984, - 9.402379989624023, - 44.71706771850586, - 34.236541748046875, - 45.64890670776367, - 51.0762825012207, - 33.668853759765625, - 11.45319938659668, - 19.92647361755371, - 20.018579483032227, - 64.09815216064453, - 39.811153411865234, - 75.27268981933594, - 54.63433837890625, - 75.05941009521484, - 44.10115051269531, - 11.883199691772461, - 73.47402954101562, - 29.548921585083008, - 48.44953155517578, - 36.35394287109375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 positive 4D tensor all options (negative options.alpha and negative options.beta)", - "graph": { - "inputs": { - "linearInput": { - "data": [ - 5.098546028137207, - 3.381463050842285, - 8.054762840270996, - 8.074773788452148, - 0.47079092264175415, - 5.243824005126953, - 3.827306032180786, - 5.3697686195373535, - 6.1033172607421875, - 3.7505786418914795, - 0.7479738593101501, - 1.8931976556777954, - 1.9056464433670044, - 7.863316059112549, - 4.58075475692749, - 9.373635292053223, - 6.584214210510254, - 9.344809532165527, - 5.16057825088501, - 0.8060914278030396, - 9.130533218383789, - 3.1937403678894043, - 5.748293399810791, - 4.113487720489502 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "alpha": -7.398793812746618, - "beta": -5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -43.64218521118164, - -30.937843322753906, - -65.5146255493164, - -65.66268157958984, - -9.402379989624023, - -44.71706771850586, - -34.236541748046875, - -45.64890670776367, - -51.0762825012207, - -33.668853759765625, - -11.45319938659668, - -19.92647361755371, - -20.018579483032227, - -64.09815216064453, - -39.811153411865234, - -75.27268981933594, - -54.63433837890625, - -75.05941009521484, - -44.10115051269531, - -11.883199691772461, - -73.47402954101562, - -29.548921585083008, - -48.44953155517578, - -36.35394287109375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float32 negative 4D tensor all options (positive options.alpha and negative options.beta)", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -5.098546028137207, - -3.381463050842285, - -8.054762840270996, - -8.074773788452148, - -0.47079092264175415, - -5.243824005126953, - -3.827306032180786, - -5.3697686195373535, - -6.1033172607421875, - -3.7505786418914795, - -0.7479738593101501, - -1.8931976556777954, - -1.9056464433670044, - -7.863316059112549, - -4.58075475692749, - -9.373635292053223, - -6.584214210510254, - -9.344809532165527, - -5.16057825088501, - -0.8060914278030396, - -9.130533218383789, - -3.1937403678894043, - -5.748293399810791, - -4.113487720489502 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "alpha": 7.398793812746618, - "beta": -5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -43.64218521118164, - -30.937843322753906, - -65.5146255493164, - -65.66268157958984, - -9.402379989624023, - -44.71706771850586, - -34.236541748046875, - -45.64890670776367, - -51.0762825012207, - -33.668853759765625, - -11.45319938659668, - -19.92647361755371, - -20.018579483032227, - -64.09815216064453, - -39.811153411865234, - -75.27268981933594, - -54.63433837890625, - -75.05941009521484, - -44.10115051269531, - -11.883199691772461, - -73.47402954101562, - -29.548921585083008, - -48.44953155517578, - -36.35394287109375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "linear float16 1D constant tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 0D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.1220703125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.1220703125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 1D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 2D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 3D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 4D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 5D tensor default options", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 4D tensor specified options.alpha and default options.beta", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -1.1220703125, - -6.60546875, - -1.955078125, - -4.59765625, - 4.234375, - 3.09765625, - 3.74609375, - -4.48828125, - 6.40625, - -4.35546875, - -5.8203125, - 3.720703125, - -6.33203125, - 8.578125, - -6.765625, - 6.43359375, - -9.7109375, - 2.642578125, - 5.21484375, - 9.65625, - -8.71875, - -0.453369140625, - 9.9921875, - -6.46875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "alpha": 7.398793812746618 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -8.3046875, - -48.875, - -14.46875, - -34.03125, - 31.328125, - 22.921875, - 27.71875, - -33.21875, - 47.40625, - -32.21875, - -43.0625, - 27.53125, - -46.84375, - 63.46875, - -50.0625, - 47.59375, - -71.875, - 19.546875, - 38.59375, - 71.4375, - -64.5, - -3.353515625, - 73.9375, - -47.875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 positive 4D tensor specified positive options.beta and default options.alpha", - "graph": { - "inputs": { - "linearInput": { - "data": [ - 5.09765625, - 3.380859375, - 8.0546875, - 8.078125, - 0.470703125, - 5.2421875, - 3.828125, - 5.37109375, - 6.1015625, - 3.75, - 0.748046875, - 1.8935546875, - 1.9052734375, - 7.86328125, - 4.58203125, - 9.375, - 6.5859375, - 9.34375, - 5.16015625, - 0.80615234375, - 9.1328125, - 3.193359375, - 5.75, - 4.11328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "beta": 5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - 11.015625, - 9.296875, - 13.9765625, - 14, - 6.390625, - 11.1640625, - 9.75, - 11.2890625, - 12.0234375, - 9.671875, - 6.66796875, - 7.8125, - 7.82421875, - 13.78125, - 10.5, - 15.296875, - 12.5078125, - 15.265625, - 11.078125, - 6.7265625, - 15.0546875, - 9.109375, - 11.671875, - 10.03125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 negative 4D tensor specified negative options.beta and default options.alpha", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -5.09765625, - -3.380859375, - -8.0546875, - -8.078125, - -0.470703125, - -5.2421875, - -3.828125, - -5.37109375, - -6.1015625, - -3.75, - -0.748046875, - -1.8935546875, - -1.9052734375, - -7.86328125, - -4.58203125, - -9.375, - -6.5859375, - -9.34375, - -5.16015625, - -0.80615234375, - -9.1328125, - -3.193359375, - -5.75, - -4.11328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "beta": -5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -11.015625, - -9.296875, - -13.9765625, - -14, - -6.390625, - -11.1640625, - -9.75, - -11.2890625, - -12.0234375, - -9.671875, - -6.66796875, - -7.8125, - -7.82421875, - -13.78125, - -10.5, - -15.296875, - -12.5078125, - -15.265625, - -11.078125, - -6.7265625, - -15.0546875, - -9.109375, - -11.671875, - -10.03125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 positive 4D tensor all options (positive options.alpha and positive options.beta)", - "graph": { - "inputs": { - "linearInput": { - "data": [ - 5.09765625, - 3.380859375, - 8.0546875, - 8.078125, - 0.470703125, - 5.2421875, - 3.828125, - 5.37109375, - 6.1015625, - 3.75, - 0.748046875, - 1.8935546875, - 1.9052734375, - 7.86328125, - 4.58203125, - 9.375, - 6.5859375, - 9.34375, - 5.16015625, - 0.80615234375, - 9.1328125, - 3.193359375, - 5.75, - 4.11328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "alpha": 7.398793812746618, - "beta": 5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - 43.625, - 30.9375, - 65.5, - 65.6875, - 9.3984375, - 44.71875, - 34.25, - 45.65625, - 51.0625, - 33.65625, - 11.453125, - 19.921875, - 20.015625, - 64.125, - 39.8125, - 75.3125, - 54.65625, - 75.0625, - 44.09375, - 11.8828125, - 73.5, - 29.546875, - 48.46875, - 36.34375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 positive 4D tensor all options (negative options.alpha and negative options.beta)", - "graph": { - "inputs": { - "linearInput": { - "data": [ - 5.09765625, - 3.380859375, - 8.0546875, - 8.078125, - 0.470703125, - 5.2421875, - 3.828125, - 5.37109375, - 6.1015625, - 3.75, - 0.748046875, - 1.8935546875, - 1.9052734375, - 7.86328125, - 4.58203125, - 9.375, - 6.5859375, - 9.34375, - 5.16015625, - 0.80615234375, - 9.1328125, - 3.193359375, - 5.75, - 4.11328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "alpha": -7.398793812746618, - "beta": -5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -43.625, - -30.9375, - -65.5, - -65.6875, - -9.3984375, - -44.71875, - -34.25, - -45.65625, - -51.0625, - -33.65625, - -11.453125, - -19.921875, - -20.015625, - -64.125, - -39.8125, - -75.3125, - -54.65625, - -75.0625, - -44.09375, - -11.8828125, - -73.5, - -29.546875, - -48.46875, - -36.34375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "linear float16 negative 4D tensor all options (positive options.alpha and negative options.beta)", - "graph": { - "inputs": { - "linearInput": { - "data": [ - -5.09765625, - -3.380859375, - -8.0546875, - -8.078125, - -0.470703125, - -5.2421875, - -3.828125, - -5.37109375, - -6.1015625, - -3.75, - -0.748046875, - -1.8935546875, - -1.9052734375, - -7.86328125, - -4.58203125, - -9.375, - -6.5859375, - -9.34375, - -5.16015625, - -0.80615234375, - -9.1328125, - -3.193359375, - -5.75, - -4.11328125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "linear", - "arguments": [ - { - "input": "linearInput" - }, - { - "options": { - "alpha": 7.398793812746618, - "beta": -5.919095653700928 - } - } - ], - "outputs": "linearOutput" - } - ], - "expectedOutputs": { - "linearOutput": { - "data": [ - -43.625, - -30.9375, - -65.5, - -65.6875, - -9.3984375, - -44.71875, - -34.25, - -45.65625, - -51.0625, - -33.65625, - -11.453125, - -19.921875, - -20.015625, - -64.125, - -39.8125, - -75.3125, - -54.65625, - -75.0625, - -44.09375, - -11.8828125, - -73.5, - -29.546875, - -48.46875, - -36.34375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/log.json b/tests/wpt_data/conformance/log.json deleted file mode 100644 index 416ece7..0000000 --- a/tests/wpt_data/conformance/log.json +++ /dev/null @@ -1,1183 +0,0 @@ -{ - "operation": "log", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/log.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "log float32 positive 0D scalar", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.82542037963867 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15615177154541 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "log float32 positive 1D constant tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.82542037963867, - 25.317724227905273, - 96.44790649414062, - 40.91856384277344, - 36.579071044921875, - 57.81629943847656, - 10.057244300842285, - 17.836828231811523, - 50.79246520996094, - 83.860595703125, - 12.065509796142578, - 22.702478408813477, - 47.559814453125, - 17.543880462646484, - 32.65243911743164, - 20.353010177612305, - 52.54472351074219, - 45.608802795410156, - 30.385812759399414, - 13.709558486938477, - 10.396759986877441, - 50.840946197509766, - 5.682034492492676, - 94.02275848388672 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15615177154541, - 3.2315046787261963, - 4.569003105163574, - 3.7115838527679443, - 3.5994763374328613, - 4.057270526885986, - 2.308293104171753, - 2.88126540184021, - 3.927747964859009, - 4.4291558265686035, - 2.4903509616851807, - 3.122474193572998, - 3.861988067626953, - 2.8647050857543945, - 3.48591947555542, - 3.0132288932800293, - 3.9616646766662598, - 3.820100784301758, - 3.413975715637207, - 2.618093252182007, - 2.34149432182312, - 3.9287021160125732, - 1.7373093366622925, - 4.54353666305542 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "log float32 positive 1D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.82542037963867, - 25.317724227905273, - 96.44790649414062, - 40.91856384277344, - 36.579071044921875, - 57.81629943847656, - 10.057244300842285, - 17.836828231811523, - 50.79246520996094, - 83.860595703125, - 12.065509796142578, - 22.702478408813477, - 47.559814453125, - 17.543880462646484, - 32.65243911743164, - 20.353010177612305, - 52.54472351074219, - 45.608802795410156, - 30.385812759399414, - 13.709558486938477, - 10.396759986877441, - 50.840946197509766, - 5.682034492492676, - 94.02275848388672 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15615177154541, - 3.2315046787261963, - 4.569003105163574, - 3.7115838527679443, - 3.5994763374328613, - 4.057270526885986, - 2.308293104171753, - 2.88126540184021, - 3.927747964859009, - 4.4291558265686035, - 2.4903509616851807, - 3.122474193572998, - 3.861988067626953, - 2.8647050857543945, - 3.48591947555542, - 3.0132288932800293, - 3.9616646766662598, - 3.820100784301758, - 3.413975715637207, - 2.618093252182007, - 2.34149432182312, - 3.9287021160125732, - 1.7373093366622925, - 4.54353666305542 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "log float32 positive 2D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.82542037963867, - 25.317724227905273, - 96.44790649414062, - 40.91856384277344, - 36.579071044921875, - 57.81629943847656, - 10.057244300842285, - 17.836828231811523, - 50.79246520996094, - 83.860595703125, - 12.065509796142578, - 22.702478408813477, - 47.559814453125, - 17.543880462646484, - 32.65243911743164, - 20.353010177612305, - 52.54472351074219, - 45.608802795410156, - 30.385812759399414, - 13.709558486938477, - 10.396759986877441, - 50.840946197509766, - 5.682034492492676, - 94.02275848388672 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15615177154541, - 3.2315046787261963, - 4.569003105163574, - 3.7115838527679443, - 3.5994763374328613, - 4.057270526885986, - 2.308293104171753, - 2.88126540184021, - 3.927747964859009, - 4.4291558265686035, - 2.4903509616851807, - 3.122474193572998, - 3.861988067626953, - 2.8647050857543945, - 3.48591947555542, - 3.0132288932800293, - 3.9616646766662598, - 3.820100784301758, - 3.413975715637207, - 2.618093252182007, - 2.34149432182312, - 3.9287021160125732, - 1.7373093366622925, - 4.54353666305542 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "log float32 positive 3D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.82542037963867, - 25.317724227905273, - 96.44790649414062, - 40.91856384277344, - 36.579071044921875, - 57.81629943847656, - 10.057244300842285, - 17.836828231811523, - 50.79246520996094, - 83.860595703125, - 12.065509796142578, - 22.702478408813477, - 47.559814453125, - 17.543880462646484, - 32.65243911743164, - 20.353010177612305, - 52.54472351074219, - 45.608802795410156, - 30.385812759399414, - 13.709558486938477, - 10.396759986877441, - 50.840946197509766, - 5.682034492492676, - 94.02275848388672 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15615177154541, - 3.2315046787261963, - 4.569003105163574, - 3.7115838527679443, - 3.5994763374328613, - 4.057270526885986, - 2.308293104171753, - 2.88126540184021, - 3.927747964859009, - 4.4291558265686035, - 2.4903509616851807, - 3.122474193572998, - 3.861988067626953, - 2.8647050857543945, - 3.48591947555542, - 3.0132288932800293, - 3.9616646766662598, - 3.820100784301758, - 3.413975715637207, - 2.618093252182007, - 2.34149432182312, - 3.9287021160125732, - 1.7373093366622925, - 4.54353666305542 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "log float32 positive 4D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.82542037963867, - 25.317724227905273, - 96.44790649414062, - 40.91856384277344, - 36.579071044921875, - 57.81629943847656, - 10.057244300842285, - 17.836828231811523, - 50.79246520996094, - 83.860595703125, - 12.065509796142578, - 22.702478408813477, - 47.559814453125, - 17.543880462646484, - 32.65243911743164, - 20.353010177612305, - 52.54472351074219, - 45.608802795410156, - 30.385812759399414, - 13.709558486938477, - 10.396759986877441, - 50.840946197509766, - 5.682034492492676, - 94.02275848388672 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15615177154541, - 3.2315046787261963, - 4.569003105163574, - 3.7115838527679443, - 3.5994763374328613, - 4.057270526885986, - 2.308293104171753, - 2.88126540184021, - 3.927747964859009, - 4.4291558265686035, - 2.4903509616851807, - 3.122474193572998, - 3.861988067626953, - 2.8647050857543945, - 3.48591947555542, - 3.0132288932800293, - 3.9616646766662598, - 3.820100784301758, - 3.413975715637207, - 2.618093252182007, - 2.34149432182312, - 3.9287021160125732, - 1.7373093366622925, - 4.54353666305542 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "log float32 positive 5D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.82542037963867, - 25.317724227905273, - 96.44790649414062, - 40.91856384277344, - 36.579071044921875, - 57.81629943847656, - 10.057244300842285, - 17.836828231811523, - 50.79246520996094, - 83.860595703125, - 12.065509796142578, - 22.702478408813477, - 47.559814453125, - 17.543880462646484, - 32.65243911743164, - 20.353010177612305, - 52.54472351074219, - 45.608802795410156, - 30.385812759399414, - 13.709558486938477, - 10.396759986877441, - 50.840946197509766, - 5.682034492492676, - 94.02275848388672 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15615177154541, - 3.2315046787261963, - 4.569003105163574, - 3.7115838527679443, - 3.5994763374328613, - 4.057270526885986, - 2.308293104171753, - 2.88126540184021, - 3.927747964859009, - 4.4291558265686035, - 2.4903509616851807, - 3.122474193572998, - 3.861988067626953, - 2.8647050857543945, - 3.48591947555542, - 3.0132288932800293, - 3.9616646766662598, - 3.820100784301758, - 3.413975715637207, - 2.618093252182007, - 2.34149432182312, - 3.9287021160125732, - 1.7373093366622925, - 4.54353666305542 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "log float16 positive 0D scalar", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.8125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "log float16 positive 1D constant tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.8125, - 25.3125, - 96.4375, - 40.90625, - 36.59375, - 57.8125, - 10.0546875, - 17.84375, - 50.78125, - 83.875, - 12.0625, - 22.703125, - 47.5625, - 17.546875, - 32.65625, - 20.359375, - 52.53125, - 45.59375, - 30.390625, - 13.7109375, - 10.3984375, - 50.84375, - 5.68359375, - 94 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15625, - 3.23046875, - 4.5703125, - 3.7109375, - 3.599609375, - 4.05859375, - 2.30859375, - 2.880859375, - 3.927734375, - 4.4296875, - 2.490234375, - 3.123046875, - 3.861328125, - 2.865234375, - 3.486328125, - 3.013671875, - 3.9609375, - 3.8203125, - 3.4140625, - 2.619140625, - 2.341796875, - 3.9296875, - 1.7373046875, - 4.54296875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "log float16 positive 1D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.8125, - 25.3125, - 96.4375, - 40.90625, - 36.59375, - 57.8125, - 10.0546875, - 17.84375, - 50.78125, - 83.875, - 12.0625, - 22.703125, - 47.5625, - 17.546875, - 32.65625, - 20.359375, - 52.53125, - 45.59375, - 30.390625, - 13.7109375, - 10.3984375, - 50.84375, - 5.68359375, - 94 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15625, - 3.23046875, - 4.5703125, - 3.7109375, - 3.599609375, - 4.05859375, - 2.30859375, - 2.880859375, - 3.927734375, - 4.4296875, - 2.490234375, - 3.123046875, - 3.861328125, - 2.865234375, - 3.486328125, - 3.013671875, - 3.9609375, - 3.8203125, - 3.4140625, - 2.619140625, - 2.341796875, - 3.9296875, - 1.7373046875, - 4.54296875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "log float16 positive 2D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.8125, - 25.3125, - 96.4375, - 40.90625, - 36.59375, - 57.8125, - 10.0546875, - 17.84375, - 50.78125, - 83.875, - 12.0625, - 22.703125, - 47.5625, - 17.546875, - 32.65625, - 20.359375, - 52.53125, - 45.59375, - 30.390625, - 13.7109375, - 10.3984375, - 50.84375, - 5.68359375, - 94 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15625, - 3.23046875, - 4.5703125, - 3.7109375, - 3.599609375, - 4.05859375, - 2.30859375, - 2.880859375, - 3.927734375, - 4.4296875, - 2.490234375, - 3.123046875, - 3.861328125, - 2.865234375, - 3.486328125, - 3.013671875, - 3.9609375, - 3.8203125, - 3.4140625, - 2.619140625, - 2.341796875, - 3.9296875, - 1.7373046875, - 4.54296875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "log float16 positive 3D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.8125, - 25.3125, - 96.4375, - 40.90625, - 36.59375, - 57.8125, - 10.0546875, - 17.84375, - 50.78125, - 83.875, - 12.0625, - 22.703125, - 47.5625, - 17.546875, - 32.65625, - 20.359375, - 52.53125, - 45.59375, - 30.390625, - 13.7109375, - 10.3984375, - 50.84375, - 5.68359375, - 94 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15625, - 3.23046875, - 4.5703125, - 3.7109375, - 3.599609375, - 4.05859375, - 2.30859375, - 2.880859375, - 3.927734375, - 4.4296875, - 2.490234375, - 3.123046875, - 3.861328125, - 2.865234375, - 3.486328125, - 3.013671875, - 3.9609375, - 3.8203125, - 3.4140625, - 2.619140625, - 2.341796875, - 3.9296875, - 1.7373046875, - 4.54296875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "log float16 positive 4D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.8125, - 25.3125, - 96.4375, - 40.90625, - 36.59375, - 57.8125, - 10.0546875, - 17.84375, - 50.78125, - 83.875, - 12.0625, - 22.703125, - 47.5625, - 17.546875, - 32.65625, - 20.359375, - 52.53125, - 45.59375, - 30.390625, - 13.7109375, - 10.3984375, - 50.84375, - 5.68359375, - 94 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15625, - 3.23046875, - 4.5703125, - 3.7109375, - 3.599609375, - 4.05859375, - 2.30859375, - 2.880859375, - 3.927734375, - 4.4296875, - 2.490234375, - 3.123046875, - 3.861328125, - 2.865234375, - 3.486328125, - 3.013671875, - 3.9609375, - 3.8203125, - 3.4140625, - 2.619140625, - 2.341796875, - 3.9296875, - 1.7373046875, - 4.54296875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "log float16 positive 5D tensor", - "graph": { - "inputs": { - "logInput": { - "data": [ - 63.8125, - 25.3125, - 96.4375, - 40.90625, - 36.59375, - 57.8125, - 10.0546875, - 17.84375, - 50.78125, - 83.875, - 12.0625, - 22.703125, - 47.5625, - 17.546875, - 32.65625, - 20.359375, - 52.53125, - 45.59375, - 30.390625, - 13.7109375, - 10.3984375, - 50.84375, - 5.68359375, - 94 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "log", - "arguments": [ - { - "input": "logInput" - } - ], - "outputs": "logOutput" - } - ], - "expectedOutputs": { - "logOutput": { - "data": [ - 4.15625, - 3.23046875, - 4.5703125, - 3.7109375, - 3.599609375, - 4.05859375, - 2.30859375, - 2.880859375, - 3.927734375, - 4.4296875, - 2.490234375, - 3.123046875, - 3.861328125, - 2.865234375, - 3.486328125, - 3.013671875, - 3.9609375, - 3.8203125, - 3.4140625, - 2.619140625, - 2.341796875, - 3.9296875, - 1.7373046875, - 4.54296875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/logical_not.json b/tests/wpt_data/conformance/logical_not.json deleted file mode 100644 index 0e5bb9d..0000000 --- a/tests/wpt_data/conformance/logical_not.json +++ /dev/null @@ -1,596 +0,0 @@ -{ - "operation": "logical_not", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/logical_not.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "logicalNot uint8 0D scalar", - "graph": { - "inputs": { - "logicalNotInput": { - "data": [ - 1 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "logicalNot", - "arguments": [ - { - "a": "logicalNotInput" - } - ], - "outputs": "logicalNotOutput" - } - ], - "expectedOutputs": { - "logicalNotOutput": { - "data": [ - 0 - ], - "descriptor": { - "shape": [], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "logicalNot uint8 1D constant tensor", - "graph": { - "inputs": { - "logicalNotInput": { - "data": [ - 204, - 130, - 90, - 0, - 147, - 42, - 10, - 18, - 13, - 235, - 0, - 233, - 53, - 83, - 9, - 254, - 69, - 56, - 219, - 109, - 171, - 0, - 228, - 135 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - }, - "constant": true - } - }, - "operators": [ - { - "name": "logicalNot", - "arguments": [ - { - "a": "logicalNotInput" - } - ], - "outputs": "logicalNotOutput" - } - ], - "expectedOutputs": { - "logicalNotOutput": { - "data": [ - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "logicalNot uint8 1D tensor", - "graph": { - "inputs": { - "logicalNotInput": { - "data": [ - 204, - 130, - 90, - 0, - 147, - 42, - 10, - 18, - 13, - 235, - 0, - 233, - 53, - 83, - 9, - 254, - 69, - 56, - 219, - 109, - 171, - 0, - 228, - 135 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "logicalNot", - "arguments": [ - { - "a": "logicalNotInput" - } - ], - "outputs": "logicalNotOutput" - } - ], - "expectedOutputs": { - "logicalNotOutput": { - "data": [ - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "logicalNot uint8 2D tensor", - "graph": { - "inputs": { - "logicalNotInput": { - "data": [ - 204, - 130, - 90, - 0, - 147, - 42, - 10, - 18, - 13, - 235, - 0, - 233, - 53, - 83, - 9, - 254, - 69, - 56, - 219, - 109, - 171, - 0, - 228, - 135 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "logicalNot", - "arguments": [ - { - "a": "logicalNotInput" - } - ], - "outputs": "logicalNotOutput" - } - ], - "expectedOutputs": { - "logicalNotOutput": { - "data": [ - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "logicalNot uint8 3D tensor", - "graph": { - "inputs": { - "logicalNotInput": { - "data": [ - 204, - 130, - 90, - 0, - 147, - 42, - 10, - 18, - 13, - 235, - 0, - 233, - 53, - 83, - 9, - 254, - 69, - 56, - 219, - 109, - 171, - 0, - 228, - 135 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "logicalNot", - "arguments": [ - { - "a": "logicalNotInput" - } - ], - "outputs": "logicalNotOutput" - } - ], - "expectedOutputs": { - "logicalNotOutput": { - "data": [ - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "logicalNot uint8 4D tensor", - "graph": { - "inputs": { - "logicalNotInput": { - "data": [ - 204, - 130, - 90, - 0, - 147, - 42, - 10, - 18, - 13, - 235, - 0, - 233, - 53, - 83, - 9, - 254, - 69, - 56, - 219, - 109, - 171, - 0, - 228, - 135 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "logicalNot", - "arguments": [ - { - "a": "logicalNotInput" - } - ], - "outputs": "logicalNotOutput" - } - ], - "expectedOutputs": { - "logicalNotOutput": { - "data": [ - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "logicalNot uint8 5D tensor", - "graph": { - "inputs": { - "logicalNotInput": { - "data": [ - 204, - 130, - 90, - 0, - 147, - 42, - 10, - 18, - 13, - 235, - 0, - 233, - 53, - 83, - 9, - 254, - 69, - 56, - 219, - 109, - 171, - 0, - 228, - 135 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "logicalNot", - "arguments": [ - { - "a": "logicalNotInput" - } - ], - "outputs": "logicalNotOutput" - } - ], - "expectedOutputs": { - "logicalNotOutput": { - "data": [ - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 0, - 0 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "uint8" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/matmul.json b/tests/wpt_data/conformance/matmul.json deleted file mode 100644 index d6a0de9..0000000 --- a/tests/wpt_data/conformance/matmul.json +++ /dev/null @@ -1,101636 +0,0 @@ -{ - "operation": "matmul", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/matmul.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "matmul float32 2D and 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 10.43066120147705, - 24.467519760131836, - 55.887577056884766, - 3.2410826683044434, - 87.58891296386719, - 22.40154457092285, - 79.85144805908203, - 99.64449310302734, - 24.740541458129883, - 65.9624252319336, - 38.136077880859375, - 87.11140441894531 - ], - "descriptor": { - "shape": [ - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 88.1700439453125, - 78.4012680053711, - 14.819003105163574, - 3.6923038959503174, - 45.906429290771484, - 43.083919525146484, - 47.199466705322266, - 60.92521667480469, - 8.162760734558105, - 20.333263397216797, - 20.438398361206055, - 27.0194091796875, - 15.601424217224121, - 87.46969604492188, - 65.79554748535156, - 69.31697082519531, - 31.984439849853516, - 12.291812896728516, - 13.304834365844727, - 85.26705169677734 - ], - "descriptor": { - "shape": [ - 4, - 5 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3340.7431640625, - 3586.344482421875, - 2557.025634765625, - 5169.8271484375, - 4929.85009765625, - 17226.955078125, - 13269.03515625, - 5133.4072265625, - 8816.5986328125, - 18226.65234375, - 11841.033203125, - 8869.705078125, - 6051.1396484375, - 5124.5390625, - 12413.8984375 - ], - "descriptor": { - "shape": [ - 3, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 3D and 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 56.46701431274414, - 99.86045837402344, - 71.054931640625, - 32.454383850097656, - 17.310747146606445, - 2.586275100708008, - 92.31499481201172, - 96.9758529663086, - 26.472131729125977, - 77.67031860351562, - 29.278789520263672, - 82.12142181396484, - 89.89308166503906, - 82.49795532226562, - 64.36865997314453, - 23.75928497314453, - 6.670266628265381, - 81.55583190917969, - 16.142963409423828, - 57.45134735107422, - 26.826417922973633, - 85.02970123291016, - 36.1988639831543, - 89.60960388183594 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 70.38780212402344, - 25.48917579650879, - 28.254196166992188, - 84.5148696899414, - 58.873416900634766, - 46.252838134765625, - 24.897335052490234, - 44.0944938659668, - 51.86564636230469, - 1.123237133026123, - 4.187554836273193, - 71.24649810791016, - 16.034526824951172, - 23.677297592163086, - 61.27727508544922, - 65.15946197509766, - 58.39249801635742, - 70.12741088867188, - 9.11972713470459, - 24.179977416992188, - 84.4263687133789, - 78.55551147460938, - 38.48297119140625, - 80.6541519165039, - 57.152122497558594, - 46.109710693359375, - 28.41227912902832, - 90.92566680908203, - 94.66068267822266, - 61.77287673950195, - 60.324859619140625, - 70.97433471679688, - 10.631051063537598, - 55.61628341674805, - 35.052310943603516, - 22.12839126586914, - 38.19757843017578, - 78.17564392089844, - 62.57684326171875, - 88.35256958007812 - ], - "descriptor": { - "shape": [ - 2, - 4, - 5 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 11005.6748046875, - 10883.064453125, - 9414.0009765625, - 11929.9931640625, - 8575.3720703125, - 8043.556640625, - 12745.41015625, - 8884.0341796875, - 4667.3173828125, - 9023.7333984375, - 10929.3818359375, - 9489.8232421875, - 10401.216796875, - 7707.87744140625, - 5425.5654296875, - 15802.0888671875, - 14881.6220703125, - 13502.23828125, - 20126.2890625, - 14589.1806640625, - 6568.7900390625, - 6181.41162109375, - 12335.123046875, - 12751.05078125, - 11060.98046875, - 10352.16015625, - 10515.310546875, - 16153.86328125, - 17833.36328125, - 15971.80859375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 4D and 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 56.46701431274414, - 99.86045837402344, - 71.054931640625, - 32.454383850097656, - 17.310747146606445, - 2.586275100708008, - 92.31499481201172, - 96.9758529663086, - 26.472131729125977, - 77.67031860351562, - 29.278789520263672, - 82.12142181396484, - 89.89308166503906, - 82.49795532226562, - 64.36865997314453, - 23.75928497314453, - 6.670266628265381, - 81.55583190917969, - 16.142963409423828, - 57.45134735107422, - 26.826417922973633, - 85.02970123291016, - 36.1988639831543, - 89.60960388183594 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 70.38780212402344, - 25.48917579650879, - 28.254196166992188, - 84.5148696899414, - 58.873416900634766, - 46.252838134765625, - 24.897335052490234, - 44.0944938659668, - 51.86564636230469, - 1.123237133026123, - 4.187554836273193, - 71.24649810791016, - 16.034526824951172, - 23.677297592163086, - 61.27727508544922, - 65.15946197509766, - 58.39249801635742, - 70.12741088867188, - 9.11972713470459, - 24.179977416992188, - 84.4263687133789, - 78.55551147460938, - 38.48297119140625, - 80.6541519165039, - 57.152122497558594, - 46.109710693359375, - 28.41227912902832, - 90.92566680908203, - 94.66068267822266, - 61.77287673950195, - 60.324859619140625, - 70.97433471679688, - 10.631051063537598, - 55.61628341674805, - 35.052310943603516, - 22.12839126586914, - 38.19757843017578, - 78.17564392089844, - 62.57684326171875, - 88.35256958007812 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 5 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 11005.6748046875, - 10883.064453125, - 9414.0009765625, - 11929.9931640625, - 8575.3720703125, - 8043.556640625, - 12745.41015625, - 8884.0341796875, - 4667.3173828125, - 9023.7333984375, - 10929.3818359375, - 9489.8232421875, - 10401.216796875, - 7707.87744140625, - 5425.5654296875, - 15802.0888671875, - 14881.6220703125, - 13502.23828125, - 20126.2890625, - 14589.1806640625, - 6568.7900390625, - 6181.41162109375, - 12335.123046875, - 12751.05078125, - 11060.98046875, - 10352.16015625, - 10515.310546875, - 16153.86328125, - 17833.36328125, - 15971.80859375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 3D and 3D (broadcast) tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 56.46701431274414, - 99.86045837402344, - 71.054931640625, - 32.454383850097656, - 17.310747146606445, - 2.586275100708008, - 92.31499481201172, - 96.9758529663086, - 26.472131729125977, - 77.67031860351562, - 29.278789520263672, - 82.12142181396484, - 89.89308166503906, - 82.49795532226562, - 64.36865997314453, - 23.75928497314453, - 6.670266628265381, - 81.55583190917969, - 16.142963409423828, - 57.45134735107422, - 26.826417922973633, - 85.02970123291016, - 36.1988639831543, - 89.60960388183594 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 27.829805374145508, - 83.1454849243164, - 34.41289520263672, - 83.20379638671875 - ], - "descriptor": { - "shape": [ - 1, - 4, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 15019.9462890625, - 11942.376953125, - 15035.0322265625, - 13553.013671875, - 12302.328125, - 16517.9765625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 3D and 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 56.46701431274414, - 99.86045837402344, - 71.054931640625, - 32.454383850097656, - 17.310747146606445, - 2.586275100708008, - 92.31499481201172, - 96.9758529663086, - 26.472131729125977, - 77.67031860351562, - 29.278789520263672, - 82.12142181396484, - 89.89308166503906, - 82.49795532226562, - 64.36865997314453, - 23.75928497314453, - 6.670266628265381, - 81.55583190917969, - 16.142963409423828, - 57.45134735107422, - 26.826417922973633, - 85.02970123291016, - 36.1988639831543, - 89.60960388183594 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 27.829805374145508, - 83.1454849243164, - 34.41289520263672, - 83.20379638671875 - ], - "descriptor": { - "shape": [ - 4, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 15019.9462890625, - 11942.376953125, - 15035.0322265625, - 13553.013671875, - 12302.328125, - 16517.9765625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 4D and 4D (broadcast) tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75957107543945, - 97.24552917480469, - 83.7085189819336, - 64.53984069824219, - 29.57938003540039, - 17.19923973083496, - 67.94749450683594, - 97.45838165283203, - 54.449283599853516, - 29.552200317382812, - 51.99970245361328, - 36.03101348876953, - 9.701058387756348, - 27.04842185974121, - 6.020919322967529, - 22.940902709960938, - 53.1243896484375, - 15.292234420776367, - 48.21302795410156, - 87.40799713134766, - 51.34442138671875, - 21.1557559967041, - 27.589487075805664, - 58.412384033203125, - 5.963276386260986, - 84.74938201904297, - 55.45738220214844, - 50.858699798583984, - 23.763574600219727, - 62.330928802490234, - 35.774959564208984, - 17.340242385864258, - 29.16901397705078, - 23.191360473632812, - 27.060928344726562, - 1.2828527688980103, - 8.720425605773926, - 48.45281219482422, - 99.0130386352539, - 65.86412048339844, - 92.69683074951172, - 85.43540954589844, - 37.49127960205078, - 51.397132873535156, - 53.19015121459961, - 38.33119201660156, - 75.20586395263672, - 3.8537938594818115 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 88.1700439453125, - 78.4012680053711, - 14.819003105163574, - 3.6923038959503174, - 45.906429290771484, - 43.083919525146484, - 47.199466705322266, - 60.92521667480469, - 8.162760734558105, - 20.333263397216797, - 20.438398361206055, - 27.0194091796875, - 15.601424217224121, - 87.46969604492188, - 65.79554748535156, - 69.31697082519531, - 31.984439849853516, - 12.291812896728516, - 13.304834365844727, - 85.26705169677734 - ], - "descriptor": { - "shape": [ - 1, - 1, - 4, - 5 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 13350.8759765625, - 11562.755859375, - 8524.271484375, - 9099.0927734375, - 14537.8701171875, - 11493.283203125, - 8083.90869140625, - 3744.22216796875, - 7489.62353515625, - 14488.2314453125, - 9634.3720703125, - 8221.173828125, - 3861.51416015625, - 5470.0556640625, - 9594.072265625, - 3733.946533203125, - 2933.679931640625, - 2167.611083984375, - 1088.48193359375, - 3347.576416015625, - 12387.083984375, - 8985.1884765625, - 3545.52783203125, - 5701.10595703125, - 13374.9169921875, - 10051.3671875, - 7637.7470703125, - 3198.221435546875, - 3552.6796875, - 9583.1220703125, - 8835.94921875, - 7592.7666015625, - 6742.10400390625, - 6241.31396484375, - 9982.404296875, - 6713.85205078125, - 6326.3173828125, - 4920.9609375, - 3956.46875, - 6190.67626953125, - 4213.013671875, - 4153.708984375, - 2283.152099609375, - 2681.085693359375, - 3700.47509765625, - 9445.5869140625, - 7752.5400390625, - 5435.56005859375, - 9964.6591796875, - 13516.18359375, - 16182.931640625, - 13956.9560546875, - 7795.52685546875, - 5002.8349609375, - 12841.802734375, - 8145.45654296875, - 8134.66650390625, - 4344.25, - 7138.79052734375, - 8497.98046875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 4D and 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75957107543945, - 97.24552917480469, - 83.7085189819336, - 64.53984069824219, - 29.57938003540039, - 17.19923973083496, - 67.94749450683594, - 97.45838165283203, - 54.449283599853516, - 29.552200317382812, - 51.99970245361328, - 36.03101348876953, - 9.701058387756348, - 27.04842185974121, - 6.020919322967529, - 22.940902709960938, - 53.1243896484375, - 15.292234420776367, - 48.21302795410156, - 87.40799713134766, - 51.34442138671875, - 21.1557559967041, - 27.589487075805664, - 58.412384033203125, - 5.963276386260986, - 84.74938201904297, - 55.45738220214844, - 50.858699798583984, - 23.763574600219727, - 62.330928802490234, - 35.774959564208984, - 17.340242385864258, - 29.16901397705078, - 23.191360473632812, - 27.060928344726562, - 1.2828527688980103, - 8.720425605773926, - 48.45281219482422, - 99.0130386352539, - 65.86412048339844, - 92.69683074951172, - 85.43540954589844, - 37.49127960205078, - 51.397132873535156, - 53.19015121459961, - 38.33119201660156, - 75.20586395263672, - 3.8537938594818115 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 70.38780212402344, - 25.48917579650879, - 28.254196166992188, - 84.5148696899414, - 58.873416900634766, - 46.252838134765625, - 24.897335052490234, - 44.0944938659668, - 51.86564636230469, - 1.123237133026123, - 4.187554836273193, - 71.24649810791016, - 16.034526824951172, - 23.677297592163086, - 61.27727508544922, - 65.15946197509766, - 58.39249801635742, - 70.12741088867188, - 9.11972713470459, - 24.179977416992188, - 84.4263687133789, - 78.55551147460938, - 38.48297119140625, - 80.6541519165039, - 57.152122497558594, - 46.109710693359375, - 28.41227912902832, - 90.92566680908203, - 94.66068267822266, - 61.77287673950195, - 60.324859619140625, - 70.97433471679688, - 10.631051063537598, - 55.61628341674805, - 35.052310943603516, - 22.12839126586914, - 38.19757843017578, - 78.17564392089844, - 62.57684326171875, - 88.35256958007812 - ], - "descriptor": { - "shape": [ - 2, - 4, - 5 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 11430.05859375, - 13014.2392578125, - 11110.080078125, - 10467.46484375, - 8786.7724609375, - 9512.4111328125, - 11714.0283203125, - 9518.1435546875, - 5889.55419921875, - 8280.9365234375, - 7764.95166015625, - 7932.3759765625, - 6202.0625, - 7694.32373046875, - 7296.4384765625, - 2937.076416015625, - 2834.196533203125, - 4690.14990234375, - 5113.283203125, - 4463.22998046875, - 10032.8623046875, - 11368.3623046875, - 10780.572265625, - 13883.421875, - 13393.5166015625, - 8267.212890625, - 8823.828125, - 8759.2177734375, - 11333.4462890625, - 10369.25390625, - 7885.7978515625, - 9182.943359375, - 8361.2900390625, - 6676.46533203125, - 5074.3115234375, - 5835.33837890625, - 5718.96875, - 5209.5322265625, - 6246.40185546875, - 4080.533935546875, - 3322.71826171875, - 3323.802490234375, - 2370.630615234375, - 4320.47900390625, - 3432.568115234375, - 10400.7939453125, - 11604.9267578125, - 10942.7744140625, - 14918.220703125, - 12781.3603515625, - 15164.451171875, - 14333.4267578125, - 15752.0966796875, - 20865.154296875, - 16430.63671875, - 10880.1533203125, - 10752.34765625, - 6632.99462890625, - 12342.2919921875, - 8384.3896484375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 5D and 5D tensors, broadcast the two leftmost dimensions of inputB", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75957107543945, - 97.24552917480469, - 83.7085189819336, - 64.53984069824219, - 29.57938003540039, - 17.19923973083496, - 67.94749450683594, - 97.45838165283203, - 54.449283599853516, - 29.552200317382812, - 51.99970245361328, - 36.03101348876953, - 9.701058387756348, - 27.04842185974121, - 6.020919322967529, - 22.940902709960938, - 53.1243896484375, - 15.292234420776367, - 48.21302795410156, - 87.40799713134766, - 51.34442138671875, - 21.1557559967041, - 27.589487075805664, - 58.412384033203125, - 5.963276386260986, - 84.74938201904297, - 55.45738220214844, - 50.858699798583984, - 23.763574600219727, - 62.330928802490234, - 35.774959564208984, - 17.340242385864258, - 29.16901397705078, - 23.191360473632812, - 27.060928344726562, - 1.2828527688980103, - 8.720425605773926, - 48.45281219482422, - 99.0130386352539, - 65.86412048339844, - 92.69683074951172, - 85.43540954589844, - 37.49127960205078, - 51.397132873535156, - 53.19015121459961, - 38.33119201660156, - 75.20586395263672, - 3.8537938594818115 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 88.1700439453125, - 78.4012680053711, - 14.819003105163574, - 3.6923038959503174, - 45.906429290771484, - 43.083919525146484, - 47.199466705322266, - 60.92521667480469, - 8.162760734558105, - 20.333263397216797, - 20.438398361206055, - 27.0194091796875, - 15.601424217224121, - 87.46969604492188, - 65.79554748535156, - 69.31697082519531, - 31.984439849853516, - 12.291812896728516, - 13.304834365844727, - 85.26705169677734 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 4, - 5 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 13350.8759765625, - 11562.755859375, - 8524.271484375, - 9099.0927734375, - 14537.8701171875, - 11493.283203125, - 8083.90869140625, - 3744.22216796875, - 7489.62353515625, - 14488.2314453125, - 9634.3720703125, - 8221.173828125, - 3861.51416015625, - 5470.0556640625, - 9594.072265625, - 3733.946533203125, - 2933.679931640625, - 2167.611083984375, - 1088.48193359375, - 3347.576416015625, - 12387.083984375, - 8985.1884765625, - 3545.52783203125, - 5701.10595703125, - 13374.9169921875, - 10051.3671875, - 7637.7470703125, - 3198.221435546875, - 3552.6796875, - 9583.1220703125, - 8835.94921875, - 7592.7666015625, - 6742.10400390625, - 6241.31396484375, - 9982.404296875, - 6713.85205078125, - 6326.3173828125, - 4920.9609375, - 3956.46875, - 6190.67626953125, - 4213.013671875, - 4153.708984375, - 2283.152099609375, - 2681.085693359375, - 3700.47509765625, - 9445.5869140625, - 7752.5400390625, - 5435.56005859375, - 9964.6591796875, - 13516.18359375, - 16182.931640625, - 13956.9560546875, - 7795.52685546875, - 5002.8349609375, - 12841.802734375, - 8145.45654296875, - 8134.66650390625, - 4344.25, - 7138.79052734375, - 8497.98046875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 5D and 5D tensors, broadcast the leftmost dimensions of inputB", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75957107543945, - 97.24552917480469, - 83.7085189819336, - 64.53984069824219, - 29.57938003540039, - 17.19923973083496, - 67.94749450683594, - 97.45838165283203, - 54.449283599853516, - 29.552200317382812, - 51.99970245361328, - 36.03101348876953, - 9.701058387756348, - 27.04842185974121, - 6.020919322967529, - 22.940902709960938, - 53.1243896484375, - 15.292234420776367, - 48.21302795410156, - 87.40799713134766, - 51.34442138671875, - 21.1557559967041, - 27.589487075805664, - 58.412384033203125, - 5.963276386260986, - 84.74938201904297, - 55.45738220214844, - 50.858699798583984, - 23.763574600219727, - 62.330928802490234, - 35.774959564208984, - 17.340242385864258, - 29.16901397705078, - 23.191360473632812, - 27.060928344726562, - 1.2828527688980103, - 8.720425605773926, - 48.45281219482422, - 99.0130386352539, - 65.86412048339844, - 92.69683074951172, - 85.43540954589844, - 37.49127960205078, - 51.397132873535156, - 53.19015121459961, - 38.33119201660156, - 75.20586395263672, - 3.8537938594818115 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 88.1700439453125, - 78.4012680053711, - 14.819003105163574, - 3.6923038959503174, - 45.906429290771484, - 43.083919525146484, - 47.199466705322266, - 60.92521667480469, - 8.162760734558105, - 20.333263397216797, - 20.438398361206055, - 27.0194091796875, - 15.601424217224121, - 87.46969604492188, - 65.79554748535156, - 69.31697082519531, - 31.984439849853516, - 12.291812896728516, - 13.304834365844727, - 85.26705169677734, - 88.1700439453125, - 78.4012680053711, - 14.819003105163574, - 3.6923038959503174, - 45.906429290771484, - 43.083919525146484, - 47.199466705322266, - 60.92521667480469, - 8.162760734558105, - 20.333263397216797, - 20.438398361206055, - 27.0194091796875, - 15.601424217224121, - 87.46969604492188, - 65.79554748535156, - 69.31697082519531, - 31.984439849853516, - 12.291812896728516, - 13.304834365844727, - 85.26705169677734 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 4, - 5 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 13350.8759765625, - 11562.755859375, - 8524.271484375, - 9099.0927734375, - 14537.8701171875, - 11493.283203125, - 8083.90869140625, - 3744.22216796875, - 7489.62353515625, - 14488.2314453125, - 9634.3720703125, - 8221.173828125, - 3861.51416015625, - 5470.0556640625, - 9594.072265625, - 3733.946533203125, - 2933.679931640625, - 2167.611083984375, - 1088.48193359375, - 3347.576416015625, - 12387.083984375, - 8985.1884765625, - 3545.52783203125, - 5701.10595703125, - 13374.9169921875, - 10051.3671875, - 7637.7470703125, - 3198.221435546875, - 3552.6796875, - 9583.1220703125, - 8835.94921875, - 7592.7666015625, - 6742.10400390625, - 6241.31396484375, - 9982.404296875, - 6713.85205078125, - 6326.3173828125, - 4920.9609375, - 3956.46875, - 6190.67626953125, - 4213.013671875, - 4153.708984375, - 2283.152099609375, - 2681.085693359375, - 3700.47509765625, - 9445.5869140625, - 7752.5400390625, - 5435.56005859375, - 9964.6591796875, - 13516.18359375, - 16182.931640625, - 13956.9560546875, - 7795.52685546875, - 5002.8349609375, - 12841.802734375, - 8145.45654296875, - 8134.66650390625, - 4344.25, - 7138.79052734375, - 8497.98046875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 5D and 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75957107543945, - 97.24552917480469, - 83.7085189819336, - 64.53984069824219, - 29.57938003540039, - 17.19923973083496, - 67.94749450683594, - 97.45838165283203, - 54.449283599853516, - 29.552200317382812, - 51.99970245361328, - 36.03101348876953, - 9.701058387756348, - 27.04842185974121, - 6.020919322967529, - 22.940902709960938, - 53.1243896484375, - 15.292234420776367, - 48.21302795410156, - 87.40799713134766, - 51.34442138671875, - 21.1557559967041, - 27.589487075805664, - 58.412384033203125, - 5.963276386260986, - 84.74938201904297, - 55.45738220214844, - 50.858699798583984, - 23.763574600219727, - 62.330928802490234, - 35.774959564208984, - 17.340242385864258, - 29.16901397705078, - 23.191360473632812, - 27.060928344726562, - 1.2828527688980103, - 8.720425605773926, - 48.45281219482422, - 99.0130386352539, - 65.86412048339844, - 92.69683074951172, - 85.43540954589844, - 37.49127960205078, - 51.397132873535156, - 53.19015121459961, - 38.33119201660156, - 75.20586395263672, - 3.8537938594818115 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 88.1700439453125, - 78.4012680053711, - 14.819003105163574, - 3.6923038959503174, - 45.906429290771484, - 43.083919525146484, - 47.199466705322266, - 60.92521667480469, - 8.162760734558105, - 20.333263397216797, - 20.438398361206055, - 27.0194091796875, - 15.601424217224121, - 87.46969604492188, - 65.79554748535156, - 69.31697082519531, - 31.984439849853516, - 12.291812896728516, - 13.304834365844727, - 85.26705169677734 - ], - "descriptor": { - "shape": [ - 4, - 5 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 13350.8759765625, - 11562.755859375, - 8524.271484375, - 9099.0927734375, - 14537.8701171875, - 11493.283203125, - 8083.90869140625, - 3744.22216796875, - 7489.62353515625, - 14488.2314453125, - 9634.3720703125, - 8221.173828125, - 3861.51416015625, - 5470.0556640625, - 9594.072265625, - 3733.946533203125, - 2933.679931640625, - 2167.611083984375, - 1088.48193359375, - 3347.576416015625, - 12387.083984375, - 8985.1884765625, - 3545.52783203125, - 5701.10595703125, - 13374.9169921875, - 10051.3671875, - 7637.7470703125, - 3198.221435546875, - 3552.6796875, - 9583.1220703125, - 8835.94921875, - 7592.7666015625, - 6742.10400390625, - 6241.31396484375, - 9982.404296875, - 6713.85205078125, - 6326.3173828125, - 4920.9609375, - 3956.46875, - 6190.67626953125, - 4213.013671875, - 4153.708984375, - 2283.152099609375, - 2681.085693359375, - 3700.47509765625, - 9445.5869140625, - 7752.5400390625, - 5435.56005859375, - 9964.6591796875, - 13516.18359375, - 16182.931640625, - 13956.9560546875, - 7795.52685546875, - 5002.8349609375, - 12841.802734375, - 8145.45654296875, - 8134.66650390625, - 4344.25, - 7138.79052734375, - 8497.98046875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 5 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float16 2D and 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 10.4296875, - 24.46875, - 55.875, - 3.240234375, - 87.5625, - 22.40625, - 79.875, - 99.625, - 24.734375, - 65.9375, - 38.125, - 87.125 - ], - "descriptor": { - "shape": [ - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 88.1875, - 78.375, - 14.8203125, - 3.69140625, - 45.90625, - 43.09375, - 47.1875, - 60.9375, - 8.1640625, - 20.328125, - 20.4375, - 27.015625, - 15.6015625, - 87.5, - 65.8125, - 69.3125, - 31.984375, - 12.2890625, - 13.3046875, - 85.25 - ], - "descriptor": { - "shape": [ - 4, - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3340, - 3586, - 2558, - 5172, - 4928, - 17232, - 13264, - 5132, - 8824, - 18224, - 11840, - 8864, - 6052, - 5124, - 12416 - ], - "descriptor": { - "shape": [ - 3, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 3D and 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 56.46875, - 99.875, - 71.0625, - 32.46875, - 17.3125, - 2.5859375, - 92.3125, - 97, - 26.46875, - 77.6875, - 29.28125, - 82.125, - 89.875, - 82.5, - 64.375, - 23.765625, - 6.671875, - 81.5625, - 16.140625, - 57.4375, - 26.828125, - 85, - 36.1875, - 89.625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 70.375, - 25.484375, - 28.25, - 84.5, - 58.875, - 46.25, - 24.890625, - 44.09375, - 51.875, - 1.123046875, - 4.1875, - 71.25, - 16.03125, - 23.671875, - 61.28125, - 65.1875, - 58.40625, - 70.125, - 9.1171875, - 24.1875, - 84.4375, - 78.5625, - 38.46875, - 80.625, - 57.15625, - 46.125, - 28.40625, - 90.9375, - 94.6875, - 61.78125, - 60.3125, - 71, - 10.6328125, - 55.625, - 35.0625, - 22.125, - 38.1875, - 78.1875, - 62.5625, - 88.375 - ], - "descriptor": { - "shape": [ - 2, - 4, - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 11008, - 10888, - 9416, - 11928, - 8576, - 8048, - 12752, - 8888, - 4668, - 9024, - 10928, - 9488, - 10400, - 7708, - 5428, - 15800, - 14880, - 13504, - 20128, - 14592, - 6568, - 6180, - 12336, - 12752, - 11064, - 10352, - 10512, - 16152, - 17824, - 15976 - ], - "descriptor": { - "shape": [ - 2, - 3, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 4D and 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 56.46875, - 99.875, - 71.0625, - 32.46875, - 17.3125, - 2.5859375, - 92.3125, - 97, - 26.46875, - 77.6875, - 29.28125, - 82.125, - 89.875, - 82.5, - 64.375, - 23.765625, - 6.671875, - 81.5625, - 16.140625, - 57.4375, - 26.828125, - 85, - 36.1875, - 89.625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 70.375, - 25.484375, - 28.25, - 84.5, - 58.875, - 46.25, - 24.890625, - 44.09375, - 51.875, - 1.123046875, - 4.1875, - 71.25, - 16.03125, - 23.671875, - 61.28125, - 65.1875, - 58.40625, - 70.125, - 9.1171875, - 24.1875, - 84.4375, - 78.5625, - 38.46875, - 80.625, - 57.15625, - 46.125, - 28.40625, - 90.9375, - 94.6875, - 61.78125, - 60.3125, - 71, - 10.6328125, - 55.625, - 35.0625, - 22.125, - 38.1875, - 78.1875, - 62.5625, - 88.375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 11008, - 10888, - 9416, - 11928, - 8576, - 8048, - 12752, - 8888, - 4668, - 9024, - 10928, - 9488, - 10400, - 7708, - 5428, - 15800, - 14880, - 13504, - 20128, - 14592, - 6568, - 6180, - 12336, - 12752, - 11064, - 10352, - 10512, - 16152, - 17824, - 15976 - ], - "descriptor": { - "shape": [ - 2, - 1, - 3, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 3D and 3D (broadcast) tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 56.46875, - 99.875, - 71.0625, - 32.46875, - 17.3125, - 2.5859375, - 92.3125, - 97, - 26.46875, - 77.6875, - 29.28125, - 82.125, - 89.875, - 82.5, - 64.375, - 23.765625, - 6.671875, - 81.5625, - 16.140625, - 57.4375, - 26.828125, - 85, - 36.1875, - 89.625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 27.828125, - 83.125, - 34.40625, - 83.1875 - ], - "descriptor": { - "shape": [ - 1, - 4, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 15016, - 11944, - 15032, - 13552, - 12296, - 16512 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 3D and 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 56.46875, - 99.875, - 71.0625, - 32.46875, - 17.3125, - 2.5859375, - 92.3125, - 97, - 26.46875, - 77.6875, - 29.28125, - 82.125, - 89.875, - 82.5, - 64.375, - 23.765625, - 6.671875, - 81.5625, - 16.140625, - 57.4375, - 26.828125, - 85, - 36.1875, - 89.625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 27.828125, - 83.125, - 34.40625, - 83.1875 - ], - "descriptor": { - "shape": [ - 4, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 15016, - 11944, - 15032, - 13552, - 12296, - 16512 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 4D and 4D (broadcast) tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75, - 97.25, - 83.6875, - 64.5625, - 29.578125, - 17.203125, - 67.9375, - 97.4375, - 54.4375, - 29.546875, - 52, - 36.03125, - 9.703125, - 27.046875, - 6.01953125, - 22.9375, - 53.125, - 15.2890625, - 48.21875, - 87.4375, - 51.34375, - 21.15625, - 27.59375, - 58.40625, - 5.96484375, - 84.75, - 55.46875, - 50.84375, - 23.765625, - 62.34375, - 35.78125, - 17.34375, - 29.171875, - 23.1875, - 27.0625, - 1.283203125, - 8.71875, - 48.4375, - 99, - 65.875, - 92.6875, - 85.4375, - 37.5, - 51.40625, - 53.1875, - 38.34375, - 75.1875, - 3.853515625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 88.1875, - 78.375, - 14.8203125, - 3.69140625, - 45.90625, - 43.09375, - 47.1875, - 60.9375, - 8.1640625, - 20.328125, - 20.4375, - 27.015625, - 15.6015625, - 87.5, - 65.8125, - 69.3125, - 31.984375, - 12.2890625, - 13.3046875, - 85.25 - ], - "descriptor": { - "shape": [ - 1, - 1, - 4, - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 13352, - 11560, - 8528, - 9104, - 14536, - 11488, - 8080, - 3744, - 7492, - 14488, - 9632, - 8216, - 3862, - 5472, - 9592, - 3734, - 2934, - 2168, - 1089, - 3346, - 12392, - 8984, - 3546, - 5704, - 13376, - 10048, - 7636, - 3198, - 3554, - 9584, - 8832, - 7592, - 6744, - 6244, - 9984, - 6716, - 6324, - 4924, - 3958, - 6192, - 4212, - 4152, - 2284, - 2682, - 3700, - 9448, - 7752, - 5436, - 9968, - 13520, - 16184, - 13952, - 7796, - 5004, - 12840, - 8148, - 8132, - 4344, - 7140, - 8496 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 4D and 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75, - 97.25, - 83.6875, - 64.5625, - 29.578125, - 17.203125, - 67.9375, - 97.4375, - 54.4375, - 29.546875, - 52, - 36.03125, - 9.703125, - 27.046875, - 6.01953125, - 22.9375, - 53.125, - 15.2890625, - 48.21875, - 87.4375, - 51.34375, - 21.15625, - 27.59375, - 58.40625, - 5.96484375, - 84.75, - 55.46875, - 50.84375, - 23.765625, - 62.34375, - 35.78125, - 17.34375, - 29.171875, - 23.1875, - 27.0625, - 1.283203125, - 8.71875, - 48.4375, - 99, - 65.875, - 92.6875, - 85.4375, - 37.5, - 51.40625, - 53.1875, - 38.34375, - 75.1875, - 3.853515625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 70.375, - 25.484375, - 28.25, - 84.5, - 58.875, - 46.25, - 24.890625, - 44.09375, - 51.875, - 1.123046875, - 4.1875, - 71.25, - 16.03125, - 23.671875, - 61.28125, - 65.1875, - 58.40625, - 70.125, - 9.1171875, - 24.1875, - 84.4375, - 78.5625, - 38.46875, - 80.625, - 57.15625, - 46.125, - 28.40625, - 90.9375, - 94.6875, - 61.78125, - 60.3125, - 71, - 10.6328125, - 55.625, - 35.0625, - 22.125, - 38.1875, - 78.1875, - 62.5625, - 88.375 - ], - "descriptor": { - "shape": [ - 2, - 4, - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 11432, - 13016, - 11112, - 10464, - 8784, - 9512, - 11712, - 9520, - 5888, - 8280, - 7764, - 7932, - 6200, - 7692, - 7296, - 2938, - 2834, - 4692, - 5112, - 4464, - 10032, - 11368, - 10784, - 13880, - 13400, - 8264, - 8824, - 8760, - 11328, - 10368, - 7888, - 9184, - 8360, - 6676, - 5076, - 5836, - 5720, - 5212, - 6248, - 4082, - 3322, - 3324, - 2370, - 4320, - 3432, - 10400, - 11608, - 10944, - 14920, - 12784, - 15168, - 14336, - 15752, - 20864, - 16432, - 10880, - 10752, - 6632, - 12344, - 8384 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 5D and 5D tensors, broadcast the two leftmost dimensions of inputB", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75, - 97.25, - 83.6875, - 64.5625, - 29.578125, - 17.203125, - 67.9375, - 97.4375, - 54.4375, - 29.546875, - 52, - 36.03125, - 9.703125, - 27.046875, - 6.01953125, - 22.9375, - 53.125, - 15.2890625, - 48.21875, - 87.4375, - 51.34375, - 21.15625, - 27.59375, - 58.40625, - 5.96484375, - 84.75, - 55.46875, - 50.84375, - 23.765625, - 62.34375, - 35.78125, - 17.34375, - 29.171875, - 23.1875, - 27.0625, - 1.283203125, - 8.71875, - 48.4375, - 99, - 65.875, - 92.6875, - 85.4375, - 37.5, - 51.40625, - 53.1875, - 38.34375, - 75.1875, - 3.853515625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 88.1875, - 78.375, - 14.8203125, - 3.69140625, - 45.90625, - 43.09375, - 47.1875, - 60.9375, - 8.1640625, - 20.328125, - 20.4375, - 27.015625, - 15.6015625, - 87.5, - 65.8125, - 69.3125, - 31.984375, - 12.2890625, - 13.3046875, - 85.25 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 4, - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 13352, - 11560, - 8528, - 9104, - 14536, - 11488, - 8080, - 3744, - 7492, - 14488, - 9632, - 8216, - 3862, - 5472, - 9592, - 3734, - 2934, - 2168, - 1089, - 3346, - 12392, - 8984, - 3546, - 5704, - 13376, - 10048, - 7636, - 3198, - 3554, - 9584, - 8832, - 7592, - 6744, - 6244, - 9984, - 6716, - 6324, - 4924, - 3958, - 6192, - 4212, - 4152, - 2284, - 2682, - 3700, - 9448, - 7752, - 5436, - 9968, - 13520, - 16184, - 13952, - 7796, - 5004, - 12840, - 8148, - 8132, - 4344, - 7140, - 8496 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 5D and 5D tensors, broadcast the leftmost dimensions of inputB", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75, - 97.25, - 83.6875, - 64.5625, - 29.578125, - 17.203125, - 67.9375, - 97.4375, - 54.4375, - 29.546875, - 52, - 36.03125, - 9.703125, - 27.046875, - 6.01953125, - 22.9375, - 53.125, - 15.2890625, - 48.21875, - 87.4375, - 51.34375, - 21.15625, - 27.59375, - 58.40625, - 5.96484375, - 84.75, - 55.46875, - 50.84375, - 23.765625, - 62.34375, - 35.78125, - 17.34375, - 29.171875, - 23.1875, - 27.0625, - 1.283203125, - 8.71875, - 48.4375, - 99, - 65.875, - 92.6875, - 85.4375, - 37.5, - 51.40625, - 53.1875, - 38.34375, - 75.1875, - 3.853515625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 88.1875, - 78.375, - 14.8203125, - 3.69140625, - 45.90625, - 43.09375, - 47.1875, - 60.9375, - 8.1640625, - 20.328125, - 20.4375, - 27.015625, - 15.6015625, - 87.5, - 65.8125, - 69.3125, - 31.984375, - 12.2890625, - 13.3046875, - 85.25, - 88.1875, - 78.375, - 14.8203125, - 3.69140625, - 45.90625, - 43.09375, - 47.1875, - 60.9375, - 8.1640625, - 20.328125, - 20.4375, - 27.015625, - 15.6015625, - 87.5, - 65.8125, - 69.3125, - 31.984375, - 12.2890625, - 13.3046875, - 85.25 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 4, - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 13352, - 11560, - 8528, - 9104, - 14536, - 11488, - 8080, - 3744, - 7492, - 14488, - 9632, - 8216, - 3862, - 5472, - 9592, - 3734, - 2934, - 2168, - 1089, - 3346, - 12392, - 8984, - 3546, - 5704, - 13376, - 10048, - 7636, - 3198, - 3554, - 9584, - 8832, - 7592, - 6744, - 6244, - 9984, - 6716, - 6324, - 4924, - 3958, - 6192, - 4212, - 4152, - 2284, - 2682, - 3700, - 9448, - 7752, - 5436, - 9968, - 13520, - 16184, - 13952, - 7796, - 5004, - 12840, - 8148, - 8132, - 4344, - 7140, - 8496 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float16 5D and 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 33.75, - 97.25, - 83.6875, - 64.5625, - 29.578125, - 17.203125, - 67.9375, - 97.4375, - 54.4375, - 29.546875, - 52, - 36.03125, - 9.703125, - 27.046875, - 6.01953125, - 22.9375, - 53.125, - 15.2890625, - 48.21875, - 87.4375, - 51.34375, - 21.15625, - 27.59375, - 58.40625, - 5.96484375, - 84.75, - 55.46875, - 50.84375, - 23.765625, - 62.34375, - 35.78125, - 17.34375, - 29.171875, - 23.1875, - 27.0625, - 1.283203125, - 8.71875, - 48.4375, - 99, - 65.875, - 92.6875, - 85.4375, - 37.5, - 51.40625, - 53.1875, - 38.34375, - 75.1875, - 3.853515625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 88.1875, - 78.375, - 14.8203125, - 3.69140625, - 45.90625, - 43.09375, - 47.1875, - 60.9375, - 8.1640625, - 20.328125, - 20.4375, - 27.015625, - 15.6015625, - 87.5, - 65.8125, - 69.3125, - 31.984375, - 12.2890625, - 13.3046875, - 85.25 - ], - "descriptor": { - "shape": [ - 4, - 5 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 13352, - 11560, - 8528, - 9104, - 14536, - 11488, - 8080, - 3744, - 7492, - 14488, - 9632, - 8216, - 3862, - 5472, - 9592, - 3734, - 2934, - 2168, - 1089, - 3346, - 12392, - 8984, - 3546, - 5704, - 13376, - 10048, - 7636, - 3198, - 3554, - 9584, - 8832, - 7592, - 6744, - 6244, - 9984, - 6716, - 6324, - 4924, - 3958, - 6192, - 4212, - 4152, - 2284, - 2682, - 3700, - 9448, - 7752, - 5436, - 9968, - 13520, - 16184, - 13952, - 7796, - 5004, - 12840, - 8148, - 8132, - 4344, - 7140, - 8496 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 3, - 5 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "matmul float32 2D tensors with K dimension size > 8192", - "graph": { - "inputs": { - "inputA": { - "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, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 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, - 8193 - ], - "dataType": "float32" - } - }, - "inputB": { - "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, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 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": [ - 8193, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 8193, - 8193, - 8193, - 8193 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "matmul float32 3D tensors with K dimension size > 8192", - "graph": { - "inputs": { - "inputA": { - "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, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 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, - 8193 - ], - "dataType": "float32" - } - }, - "inputB": { - "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, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 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, - 8193, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "matmul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 8193, - 8193, - 8193, - 8193, - 8193, - 8193, - 8193, - 8193 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/max.json b/tests/wpt_data/conformance/max.json deleted file mode 100644 index 82a9ff5..0000000 --- a/tests/wpt_data/conformance/max.json +++ /dev/null @@ -1,2465 +0,0 @@ -{ - "operation": "max", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/max.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "max float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - -34.50435256958008, - 85.73471069335938, - 25.818017959594727, - -91.37040710449219, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - -73.76497650146484, - 55.388797760009766, - -58.69169616699219, - -67.62332916259766, - -89.83531188964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - -97.36360168457031, - -59.90718078613281, - 97.15335083007812, - -40.226924896240234, - -61.5142707824707, - 33.363243103027344, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.72909164428711, - 88.1480712890625, - 25.818017959594727, - 11.817361831665039, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - 50.57254409790039, - 55.388797760009766, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - 21.347652435302734, - 79.85667419433594, - 97.15335083007812, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -34.50435256958008, - 85.73471069335938, - 25.818017959594727, - -91.37040710449219, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - -73.76497650146484, - 55.388797760009766, - -58.69169616699219, - -67.62332916259766, - -89.83531188964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - -97.36360168457031, - -59.90718078613281, - 97.15335083007812, - -40.226924896240234, - -61.5142707824707, - 33.363243103027344, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.72909164428711, - 88.1480712890625, - 25.818017959594727, - 11.817361831665039, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - 50.57254409790039, - 55.388797760009766, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - 21.347652435302734, - 79.85667419433594, - 97.15335083007812, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -34.50435256958008, - 85.73471069335938, - 25.818017959594727, - -91.37040710449219, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - -73.76497650146484, - 55.388797760009766, - -58.69169616699219, - -67.62332916259766, - -89.83531188964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - -97.36360168457031, - -59.90718078613281, - 97.15335083007812, - -40.226924896240234, - -61.5142707824707, - 33.363243103027344, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.72909164428711, - 88.1480712890625, - 25.818017959594727, - 11.817361831665039, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - 50.57254409790039, - 55.388797760009766, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - 21.347652435302734, - 79.85667419433594, - 97.15335083007812, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -34.50435256958008, - 85.73471069335938, - 25.818017959594727, - -91.37040710449219, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - -73.76497650146484, - 55.388797760009766, - -58.69169616699219, - -67.62332916259766, - -89.83531188964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - -97.36360168457031, - -59.90718078613281, - 97.15335083007812, - -40.226924896240234, - -61.5142707824707, - 33.363243103027344, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.72909164428711, - 88.1480712890625, - 25.818017959594727, - 11.817361831665039, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - 50.57254409790039, - 55.388797760009766, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - 21.347652435302734, - 79.85667419433594, - 97.15335083007812, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -34.50435256958008, - 85.73471069335938, - 25.818017959594727, - -91.37040710449219, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - -73.76497650146484, - 55.388797760009766, - -58.69169616699219, - -67.62332916259766, - -89.83531188964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - -97.36360168457031, - -59.90718078613281, - 97.15335083007812, - -40.226924896240234, - -61.5142707824707, - 33.363243103027344, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.72909164428711, - 88.1480712890625, - 25.818017959594727, - 11.817361831665039, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - 50.57254409790039, - 55.388797760009766, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - 21.347652435302734, - 79.85667419433594, - 97.15335083007812, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -34.50435256958008, - 85.73471069335938, - 25.818017959594727, - -91.37040710449219, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - -73.76497650146484, - 55.388797760009766, - -58.69169616699219, - -67.62332916259766, - -89.83531188964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - -97.36360168457031, - -59.90718078613281, - 97.15335083007812, - -40.226924896240234, - -61.5142707824707, - 33.363243103027344, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.72909164428711, - 88.1480712890625, - 25.818017959594727, - 11.817361831665039, - 87.01370239257812, - 0.17744044959545135, - 74.8826675415039, - -4.1699137687683105, - 50.57254409790039, - 55.388797760009766, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -8.275739669799805, - 97.59577178955078, - -48.968868255615234, - 95.34497833251953, - 21.347652435302734, - 79.85667419433594, - 97.15335083007812, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - 12.693191528320312 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 48.26115417480469 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 48.26115417480469, - 88.1480712890625, - 48.26115417480469, - 48.26115417480469, - 48.26115417480469, - 48.26115417480469, - 50.771915435791016, - 48.26115417480469, - 50.57254409790039, - 48.26115417480469, - 50.21434020996094, - 48.26115417480469, - 48.26115417480469, - 48.26115417480469, - 57.25886917114258, - 48.26115417480469, - 73.71659851074219, - 48.26115417480469, - 79.85667419433594, - 48.26115417480469, - 48.26115417480469, - 65.67964935302734, - 99.89971160888672, - 48.26115417480469 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 49.523128509521484, - -61.555763244628906, - -6.564808368682861, - 93.32227325439453, - 3.3104186058044434, - -98.31839752197266 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 49.523128509521484, - 88.1480712890625, - -6.564808368682861, - 93.32227325439453, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - 93.32227325439453, - 50.21434020996094, - 20.59501075744629, - 49.523128509521484, - -61.555763244628906, - 57.25886917114258, - 93.32227325439453, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 93.32227325439453, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 39.32178497314453, - 44.523738861083984, - 58.046287536621094, - 84.13702392578125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 39.32178497314453, - 88.1480712890625, - 39.32178497314453, - 44.523738861083984, - 44.523738861083984, - 44.523738861083984, - 58.046287536621094, - 58.046287536621094, - 58.046287536621094, - 84.13702392578125, - 84.13702392578125, - 84.13702392578125, - 39.32178497314453, - 39.32178497314453, - 57.25886917114258, - 44.523738861083984, - 73.71659851074219, - 44.523738861083984, - 79.85667419433594, - 58.046287536621094, - 58.046287536621094, - 84.13702392578125, - 99.89971160888672, - 84.13702392578125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 48.26115417480469 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 17.72909164428711, - 88.1480712890625, - -12.794827461242676, - 11.817361831665039, - 19.51302146911621, - -62.87843704223633, - 50.771915435791016, - -56.91352081298828, - 50.57254409790039, - -96.00484466552734, - 50.21434020996094, - 20.59501075744629, - -60.699546813964844, - -96.84203338623047, - 57.25886917114258, - -56.29146194458008, - 73.71659851074219, - 21.347652435302734, - 79.85667419433594, - -22.918458938598633, - 1.2300019264221191, - 65.67964935302734, - 99.89971160888672, - -62.321685791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 48.26115417480469, - 88.1480712890625, - 48.26115417480469, - 48.26115417480469, - 48.26115417480469, - 48.26115417480469, - 50.771915435791016, - 48.26115417480469, - 50.57254409790039, - 48.26115417480469, - 50.21434020996094, - 48.26115417480469, - 48.26115417480469, - 48.26115417480469, - 57.25886917114258, - 48.26115417480469, - 73.71659851074219, - 48.26115417480469, - 79.85667419433594, - 48.26115417480469, - 48.26115417480469, - 65.67964935302734, - 99.89971160888672, - 48.26115417480469 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "max float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - -34.5, - 85.75, - 25.8125, - -91.375, - 87, - 0.177490234375, - 74.875, - -4.16796875, - -73.75, - 55.375, - -58.6875, - -67.625, - -89.8125, - -8.2734375, - 97.625, - -48.96875, - 95.375, - -97.375, - -59.90625, - 97.125, - -40.21875, - -61.5, - 33.375, - 12.6953125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.734375, - 88.125, - 25.8125, - 11.8203125, - 87, - 0.177490234375, - 74.875, - -4.16796875, - 50.5625, - 55.375, - 50.21875, - 20.59375, - -60.6875, - -8.2734375, - 97.625, - -48.96875, - 95.375, - 21.34375, - 79.875, - 97.125, - 1.23046875, - 65.6875, - 99.875, - 12.6953125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -34.5, - 85.75, - 25.8125, - -91.375, - 87, - 0.177490234375, - 74.875, - -4.16796875, - -73.75, - 55.375, - -58.6875, - -67.625, - -89.8125, - -8.2734375, - 97.625, - -48.96875, - 95.375, - -97.375, - -59.90625, - 97.125, - -40.21875, - -61.5, - 33.375, - 12.6953125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.734375, - 88.125, - 25.8125, - 11.8203125, - 87, - 0.177490234375, - 74.875, - -4.16796875, - 50.5625, - 55.375, - 50.21875, - 20.59375, - -60.6875, - -8.2734375, - 97.625, - -48.96875, - 95.375, - 21.34375, - 79.875, - 97.125, - 1.23046875, - 65.6875, - 99.875, - 12.6953125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -34.5, - 85.75, - 25.8125, - -91.375, - 87, - 0.177490234375, - 74.875, - -4.16796875, - -73.75, - 55.375, - -58.6875, - -67.625, - -89.8125, - -8.2734375, - 97.625, - -48.96875, - 95.375, - -97.375, - -59.90625, - 97.125, - -40.21875, - -61.5, - 33.375, - 12.6953125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.734375, - 88.125, - 25.8125, - 11.8203125, - 87, - 0.177490234375, - 74.875, - -4.16796875, - 50.5625, - 55.375, - 50.21875, - 20.59375, - -60.6875, - -8.2734375, - 97.625, - -48.96875, - 95.375, - 21.34375, - 79.875, - 97.125, - 1.23046875, - 65.6875, - 99.875, - 12.6953125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -34.5, - 85.75, - 25.8125, - -91.375, - 87, - 0.177490234375, - 74.875, - -4.16796875, - -73.75, - 55.375, - -58.6875, - -67.625, - -89.8125, - -8.2734375, - 97.625, - -48.96875, - 95.375, - -97.375, - -59.90625, - 97.125, - -40.21875, - -61.5, - 33.375, - 12.6953125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.734375, - 88.125, - 25.8125, - 11.8203125, - 87, - 0.177490234375, - 74.875, - -4.16796875, - 50.5625, - 55.375, - 50.21875, - 20.59375, - -60.6875, - -8.2734375, - 97.625, - -48.96875, - 95.375, - 21.34375, - 79.875, - 97.125, - 1.23046875, - 65.6875, - 99.875, - 12.6953125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -34.5, - 85.75, - 25.8125, - -91.375, - 87, - 0.177490234375, - 74.875, - -4.16796875, - -73.75, - 55.375, - -58.6875, - -67.625, - -89.8125, - -8.2734375, - 97.625, - -48.96875, - 95.375, - -97.375, - -59.90625, - 97.125, - -40.21875, - -61.5, - 33.375, - 12.6953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.734375, - 88.125, - 25.8125, - 11.8203125, - 87, - 0.177490234375, - 74.875, - -4.16796875, - 50.5625, - 55.375, - 50.21875, - 20.59375, - -60.6875, - -8.2734375, - 97.625, - -48.96875, - 95.375, - 21.34375, - 79.875, - 97.125, - 1.23046875, - 65.6875, - 99.875, - 12.6953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -34.5, - 85.75, - 25.8125, - -91.375, - 87, - 0.177490234375, - 74.875, - -4.16796875, - -73.75, - 55.375, - -58.6875, - -67.625, - -89.8125, - -8.2734375, - 97.625, - -48.96875, - 95.375, - -97.375, - -59.90625, - 97.125, - -40.21875, - -61.5, - 33.375, - 12.6953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.734375, - 88.125, - 25.8125, - 11.8203125, - 87, - 0.177490234375, - 74.875, - -4.16796875, - 50.5625, - 55.375, - 50.21875, - 20.59375, - -60.6875, - -8.2734375, - 97.625, - -48.96875, - 95.375, - 21.34375, - 79.875, - 97.125, - 1.23046875, - 65.6875, - 99.875, - 12.6953125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 48.25 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 48.25, - 88.125, - 48.25, - 48.25, - 48.25, - 48.25, - 50.78125, - 48.25, - 50.5625, - 48.25, - 50.21875, - 48.25, - 48.25, - 48.25, - 57.25, - 48.25, - 73.6875, - 48.25, - 79.875, - 48.25, - 48.25, - 65.6875, - 99.875, - 48.25 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 49.53125, - -61.5625, - -6.56640625, - 93.3125, - 3.310546875, - -98.3125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 49.53125, - 88.125, - -6.56640625, - 93.3125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - 93.3125, - 50.21875, - 20.59375, - 49.53125, - -61.5625, - 57.25, - 93.3125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 93.3125, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 39.3125, - 44.53125, - 58.03125, - 84.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 39.3125, - 88.125, - 39.3125, - 44.53125, - 44.53125, - 44.53125, - 58.03125, - 58.03125, - 58.03125, - 84.125, - 84.125, - 84.125, - 39.3125, - 39.3125, - 57.25, - 44.53125, - 73.6875, - 44.53125, - 79.875, - 58.03125, - 58.03125, - 84.125, - 99.875, - 84.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "max float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 48.25 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 17.734375, - 88.125, - -12.796875, - 11.8203125, - 19.515625, - -62.875, - 50.78125, - -56.90625, - 50.5625, - -96, - 50.21875, - 20.59375, - -60.6875, - -96.8125, - 57.25, - -56.28125, - 73.6875, - 21.34375, - 79.875, - -22.921875, - 1.23046875, - 65.6875, - 99.875, - -62.3125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "max", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 48.25, - 88.125, - 48.25, - 48.25, - 48.25, - 48.25, - 50.78125, - 48.25, - 50.5625, - 48.25, - 50.21875, - 48.25, - 48.25, - 48.25, - 57.25, - 48.25, - 73.6875, - 48.25, - 79.875, - 48.25, - 48.25, - 65.6875, - 99.875, - 48.25 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/max_pool2d.json b/tests/wpt_data/conformance/max_pool2d.json deleted file mode 100644 index 2049abe..0000000 --- a/tests/wpt_data/conformance/max_pool2d.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "max_pool2d", - "wpt_version": "2025-12-13", - "wpt_commit": "555200215767c4460e2e11f663a45f9f11641216", - "source_file": "webnn/conformance_tests/max_pool2d.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/min.json b/tests/wpt_data/conformance/min.json deleted file mode 100644 index 65cf77d..0000000 --- a/tests/wpt_data/conformance/min.json +++ /dev/null @@ -1,2465 +0,0 @@ -{ - "operation": "min", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/min.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "min float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - -40.10139083862305, - 86.25190734863281, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - 80.49571228027344, - 46.6654052734375, - 62.80685806274414, - 49.81534194946289, - -76.52043151855469, - 84.5990982055664, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 46.450077056884766, - -71.25122833251953, - -69.85066223144531, - 40.676490783691406, - -18.700122833251953, - 20.14988136291504, - 41.95068359375, - 23.482912063598633 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.10139083862305, - -38.2254524230957, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - -76.52043151855469, - -40.39130401611328, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -40.10139083862305, - 86.25190734863281, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - 80.49571228027344, - 46.6654052734375, - 62.80685806274414, - 49.81534194946289, - -76.52043151855469, - 84.5990982055664, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 46.450077056884766, - -71.25122833251953, - -69.85066223144531, - 40.676490783691406, - -18.700122833251953, - 20.14988136291504, - 41.95068359375, - 23.482912063598633 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.10139083862305, - -38.2254524230957, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - -76.52043151855469, - -40.39130401611328, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -40.10139083862305, - 86.25190734863281, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - 80.49571228027344, - 46.6654052734375, - 62.80685806274414, - 49.81534194946289, - -76.52043151855469, - 84.5990982055664, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 46.450077056884766, - -71.25122833251953, - -69.85066223144531, - 40.676490783691406, - -18.700122833251953, - 20.14988136291504, - 41.95068359375, - 23.482912063598633 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.10139083862305, - -38.2254524230957, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - -76.52043151855469, - -40.39130401611328, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -40.10139083862305, - 86.25190734863281, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - 80.49571228027344, - 46.6654052734375, - 62.80685806274414, - 49.81534194946289, - -76.52043151855469, - 84.5990982055664, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 46.450077056884766, - -71.25122833251953, - -69.85066223144531, - 40.676490783691406, - -18.700122833251953, - 20.14988136291504, - 41.95068359375, - 23.482912063598633 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.10139083862305, - -38.2254524230957, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - -76.52043151855469, - -40.39130401611328, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -40.10139083862305, - 86.25190734863281, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - 80.49571228027344, - 46.6654052734375, - 62.80685806274414, - 49.81534194946289, - -76.52043151855469, - 84.5990982055664, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 46.450077056884766, - -71.25122833251953, - -69.85066223144531, - 40.676490783691406, - -18.700122833251953, - 20.14988136291504, - 41.95068359375, - 23.482912063598633 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.10139083862305, - -38.2254524230957, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - -76.52043151855469, - -40.39130401611328, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -40.10139083862305, - 86.25190734863281, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - 80.49571228027344, - 46.6654052734375, - 62.80685806274414, - 49.81534194946289, - -76.52043151855469, - 84.5990982055664, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 46.450077056884766, - -71.25122833251953, - -69.85066223144531, - 40.676490783691406, - -18.700122833251953, - 20.14988136291504, - 41.95068359375, - 23.482912063598633 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.10139083862305, - -38.2254524230957, - 51.280174255371094, - -57.64906311035156, - -97.56107330322266, - -28.881731033325195, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - -76.52043151855469, - -40.39130401611328, - 50.47281265258789, - -18.01728630065918, - 5.198459148406982, - -47.82608413696289, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 34.42634582519531 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 34.42634582519531, - -16.610267639160156, - 34.42634582519531, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 34.42634582519531, - -39.096099853515625, - 34.42634582519531, - -40.39130401611328, - 34.42634582519531, - 0.03283197432756424, - 34.42634582519531, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -19.072668075561523, - -78.27516174316406, - -13.436244010925293, - -93.01346588134766, - -72.27899169921875, - 63.14110565185547 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -36.06953048706055, - -78.27516174316406, - -13.436244010925293, - -93.01346588134766, - -72.27899169921875, - -17.77212905883789, - -76.01380920410156, - -78.27516174316406, - -13.436244010925293, - -93.01346588134766, - -72.27899169921875, - -40.39130401611328, - -19.072668075561523, - -78.27516174316406, - -13.436244010925293, - -93.01346588134766, - -72.27899169921875, - -82.3099365234375, - -80.47379302978516, - -78.27516174316406, - -73.2723617553711, - -93.01346588134766, - -72.27899169921875, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 23.231731414794922, - 84.62673950195312, - -83.33529663085938, - -22.82455825805664 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 23.231731414794922, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -83.33529663085938, - -83.33529663085938, - -83.33529663085938, - -39.096099853515625, - -22.82455825805664, - -40.39130401611328, - 23.231731414794922, - 0.03283197432756424, - 23.231731414794922, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -83.33529663085938, - -83.33529663085938, - -83.33529663085938, - -33.74562072753906, - -22.82455825805664, - -22.82455825805664 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 34.42634582519531 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 62.07444381713867, - -16.610267639160156, - 65.99324798583984, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 53.60376739501953, - -39.096099853515625, - 96.94400787353516, - -40.39130401611328, - 74.14437103271484, - 0.03283197432756424, - 38.79835510253906, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -36.06953048706055, - -38.2254524230957, - 34.42634582519531, - -16.610267639160156, - 34.42634582519531, - -17.77212905883789, - -76.01380920410156, - -69.59134674072266, - 34.42634582519531, - -39.096099853515625, - 34.42634582519531, - -40.39130401611328, - 34.42634582519531, - 0.03283197432756424, - 34.42634582519531, - -17.720787048339844, - 17.383201599121094, - -82.3099365234375, - -80.47379302978516, - -31.389848709106445, - -73.2723617553711, - -33.74562072753906, - -21.70152473449707, - 4.945605278015137 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "min float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - -40.09375, - 86.25, - 51.28125, - -57.65625, - -97.5625, - -28.875, - 80.5, - 46.65625, - 62.8125, - 49.8125, - -76.5, - 84.625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 46.4375, - -71.25, - -69.875, - 40.6875, - -18.703125, - 20.15625, - 41.9375, - 23.484375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.09375, - -38.21875, - 51.28125, - -57.65625, - -97.5625, - -28.875, - -76, - -69.5625, - 53.59375, - -39.09375, - -76.5, - -40.40625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -40.09375, - 86.25, - 51.28125, - -57.65625, - -97.5625, - -28.875, - 80.5, - 46.65625, - 62.8125, - 49.8125, - -76.5, - 84.625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 46.4375, - -71.25, - -69.875, - 40.6875, - -18.703125, - 20.15625, - 41.9375, - 23.484375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.09375, - -38.21875, - 51.28125, - -57.65625, - -97.5625, - -28.875, - -76, - -69.5625, - 53.59375, - -39.09375, - -76.5, - -40.40625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -40.09375, - 86.25, - 51.28125, - -57.65625, - -97.5625, - -28.875, - 80.5, - 46.65625, - 62.8125, - 49.8125, - -76.5, - 84.625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 46.4375, - -71.25, - -69.875, - 40.6875, - -18.703125, - 20.15625, - 41.9375, - 23.484375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.09375, - -38.21875, - 51.28125, - -57.65625, - -97.5625, - -28.875, - -76, - -69.5625, - 53.59375, - -39.09375, - -76.5, - -40.40625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -40.09375, - 86.25, - 51.28125, - -57.65625, - -97.5625, - -28.875, - 80.5, - 46.65625, - 62.8125, - 49.8125, - -76.5, - 84.625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 46.4375, - -71.25, - -69.875, - 40.6875, - -18.703125, - 20.15625, - 41.9375, - 23.484375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.09375, - -38.21875, - 51.28125, - -57.65625, - -97.5625, - -28.875, - -76, - -69.5625, - 53.59375, - -39.09375, - -76.5, - -40.40625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -40.09375, - 86.25, - 51.28125, - -57.65625, - -97.5625, - -28.875, - 80.5, - 46.65625, - 62.8125, - 49.8125, - -76.5, - 84.625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 46.4375, - -71.25, - -69.875, - 40.6875, - -18.703125, - 20.15625, - 41.9375, - 23.484375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.09375, - -38.21875, - 51.28125, - -57.65625, - -97.5625, - -28.875, - -76, - -69.5625, - 53.59375, - -39.09375, - -76.5, - -40.40625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -40.09375, - 86.25, - 51.28125, - -57.65625, - -97.5625, - -28.875, - 80.5, - 46.65625, - 62.8125, - 49.8125, - -76.5, - 84.625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 46.4375, - -71.25, - -69.875, - 40.6875, - -18.703125, - 20.15625, - 41.9375, - 23.484375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -40.09375, - -38.21875, - 51.28125, - -57.65625, - -97.5625, - -28.875, - -76, - -69.5625, - 53.59375, - -39.09375, - -76.5, - -40.40625, - 50.46875, - -18.015625, - 5.19921875, - -47.8125, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 34.4375 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -36.0625, - -38.21875, - 34.4375, - -16.609375, - 34.4375, - -17.765625, - -76, - -69.5625, - 34.4375, - -39.09375, - 34.4375, - -40.40625, - 34.4375, - 0.0328369140625, - 34.4375, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -19.078125, - -78.25, - -13.4375, - -93, - -72.25, - 63.15625 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -36.0625, - -78.25, - -13.4375, - -93, - -72.25, - -17.765625, - -76, - -78.25, - -13.4375, - -93, - -72.25, - -40.40625, - -19.078125, - -78.25, - -13.4375, - -93, - -72.25, - -82.3125, - -80.5, - -78.25, - -73.25, - -93, - -72.25, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 23.234375, - 84.625, - -83.3125, - -22.828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -36.0625, - -38.21875, - 23.234375, - -16.609375, - 66, - -17.765625, - -83.3125, - -83.3125, - -83.3125, - -39.09375, - -22.828125, - -40.40625, - 23.234375, - 0.0328369140625, - 23.234375, - -17.71875, - 17.390625, - -82.3125, - -83.3125, - -83.3125, - -83.3125, - -33.75, - -22.828125, - -22.828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "min float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 34.4375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -36.0625, - -38.21875, - 62.0625, - -16.609375, - 66, - -17.765625, - -76, - -69.5625, - 53.59375, - -39.09375, - 96.9375, - -40.40625, - 74.125, - 0.0328369140625, - 38.8125, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "min", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -36.0625, - -38.21875, - 34.4375, - -16.609375, - 34.4375, - -17.765625, - -76, - -69.5625, - 34.4375, - -39.09375, - 34.4375, - -40.40625, - 34.4375, - 0.0328369140625, - 34.4375, - -17.71875, - 17.390625, - -82.3125, - -80.5, - -31.390625, - -73.25, - -33.75, - -21.703125, - 4.9453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/mul.json b/tests/wpt_data/conformance/mul.json deleted file mode 100644 index d050244..0000000 --- a/tests/wpt_data/conformance/mul.json +++ /dev/null @@ -1,2465 +0,0 @@ -{ - "operation": "mul", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/mul.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "mul float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - 74.96137237548828, - -34.53953170776367, - -33.316162109375, - 53.92023849487305, - -83.69075012207031, - 19.785221099853516, - 36.28113555908203, - -34.31147766113281, - 49.10429000854492, - -54.538848876953125, - 70.77384948730469, - -55.18768310546875, - -93.96234130859375, - 60.08298110961914, - -92.7341537475586, - 87.6099853515625, - -8.881865501403809, - 71.79511260986328, - -26.158620834350586, - -18.935443878173828, - 34.6467170715332, - -60.95826721191406, - -11.119653701782227, - 77.50324249267578 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3681.4443359375, - -411.278076171875, - 703.4972534179688, - 3814.802978515625, - 7910.138671875, - -1855.63720703125, - 405.582763671875, - 1125.6197509765625, - 4091.3193359375, - -4969.61962890625, - -7.951977252960205, - -849.7775268554688, - 1264.6595458984375, - -3041.78955078125, - 2891.103759765625, - -579.6376342773438, - -192.98143005371094, - 1581.7545166015625, - 2197.89208984375, - 1781.2109375, - 2037.47900390625, - 3844.01513671875, - -36.79807662963867, - 766.0423583984375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 74.96137237548828, - -34.53953170776367, - -33.316162109375, - 53.92023849487305, - -83.69075012207031, - 19.785221099853516, - 36.28113555908203, - -34.31147766113281, - 49.10429000854492, - -54.538848876953125, - 70.77384948730469, - -55.18768310546875, - -93.96234130859375, - 60.08298110961914, - -92.7341537475586, - 87.6099853515625, - -8.881865501403809, - 71.79511260986328, - -26.158620834350586, - -18.935443878173828, - 34.6467170715332, - -60.95826721191406, - -11.119653701782227, - 77.50324249267578 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3681.4443359375, - -411.278076171875, - 703.4972534179688, - 3814.802978515625, - 7910.138671875, - -1855.63720703125, - 405.582763671875, - 1125.6197509765625, - 4091.3193359375, - -4969.61962890625, - -7.951977252960205, - -849.7775268554688, - 1264.6595458984375, - -3041.78955078125, - 2891.103759765625, - -579.6376342773438, - -192.98143005371094, - 1581.7545166015625, - 2197.89208984375, - 1781.2109375, - 2037.47900390625, - 3844.01513671875, - -36.79807662963867, - 766.0423583984375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 74.96137237548828, - -34.53953170776367, - -33.316162109375, - 53.92023849487305, - -83.69075012207031, - 19.785221099853516, - 36.28113555908203, - -34.31147766113281, - 49.10429000854492, - -54.538848876953125, - 70.77384948730469, - -55.18768310546875, - -93.96234130859375, - 60.08298110961914, - -92.7341537475586, - 87.6099853515625, - -8.881865501403809, - 71.79511260986328, - -26.158620834350586, - -18.935443878173828, - 34.6467170715332, - -60.95826721191406, - -11.119653701782227, - 77.50324249267578 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3681.4443359375, - -411.278076171875, - 703.4972534179688, - 3814.802978515625, - 7910.138671875, - -1855.63720703125, - 405.582763671875, - 1125.6197509765625, - 4091.3193359375, - -4969.61962890625, - -7.951977252960205, - -849.7775268554688, - 1264.6595458984375, - -3041.78955078125, - 2891.103759765625, - -579.6376342773438, - -192.98143005371094, - 1581.7545166015625, - 2197.89208984375, - 1781.2109375, - 2037.47900390625, - 3844.01513671875, - -36.79807662963867, - 766.0423583984375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 74.96137237548828, - -34.53953170776367, - -33.316162109375, - 53.92023849487305, - -83.69075012207031, - 19.785221099853516, - 36.28113555908203, - -34.31147766113281, - 49.10429000854492, - -54.538848876953125, - 70.77384948730469, - -55.18768310546875, - -93.96234130859375, - 60.08298110961914, - -92.7341537475586, - 87.6099853515625, - -8.881865501403809, - 71.79511260986328, - -26.158620834350586, - -18.935443878173828, - 34.6467170715332, - -60.95826721191406, - -11.119653701782227, - 77.50324249267578 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3681.4443359375, - -411.278076171875, - 703.4972534179688, - 3814.802978515625, - 7910.138671875, - -1855.63720703125, - 405.582763671875, - 1125.6197509765625, - 4091.3193359375, - -4969.61962890625, - -7.951977252960205, - -849.7775268554688, - 1264.6595458984375, - -3041.78955078125, - 2891.103759765625, - -579.6376342773438, - -192.98143005371094, - 1581.7545166015625, - 2197.89208984375, - 1781.2109375, - 2037.47900390625, - 3844.01513671875, - -36.79807662963867, - 766.0423583984375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 74.96137237548828, - -34.53953170776367, - -33.316162109375, - 53.92023849487305, - -83.69075012207031, - 19.785221099853516, - 36.28113555908203, - -34.31147766113281, - 49.10429000854492, - -54.538848876953125, - 70.77384948730469, - -55.18768310546875, - -93.96234130859375, - 60.08298110961914, - -92.7341537475586, - 87.6099853515625, - -8.881865501403809, - 71.79511260986328, - -26.158620834350586, - -18.935443878173828, - 34.6467170715332, - -60.95826721191406, - -11.119653701782227, - 77.50324249267578 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3681.4443359375, - -411.278076171875, - 703.4972534179688, - 3814.802978515625, - 7910.138671875, - -1855.63720703125, - 405.582763671875, - 1125.6197509765625, - 4091.3193359375, - -4969.61962890625, - -7.951977252960205, - -849.7775268554688, - 1264.6595458984375, - -3041.78955078125, - 2891.103759765625, - -579.6376342773438, - -192.98143005371094, - 1581.7545166015625, - 2197.89208984375, - 1781.2109375, - 2037.47900390625, - 3844.01513671875, - -36.79807662963867, - 766.0423583984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 74.96137237548828, - -34.53953170776367, - -33.316162109375, - 53.92023849487305, - -83.69075012207031, - 19.785221099853516, - 36.28113555908203, - -34.31147766113281, - 49.10429000854492, - -54.538848876953125, - 70.77384948730469, - -55.18768310546875, - -93.96234130859375, - 60.08298110961914, - -92.7341537475586, - 87.6099853515625, - -8.881865501403809, - 71.79511260986328, - -26.158620834350586, - -18.935443878173828, - 34.6467170715332, - -60.95826721191406, - -11.119653701782227, - 77.50324249267578 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3681.4443359375, - -411.278076171875, - 703.4972534179688, - 3814.802978515625, - 7910.138671875, - -1855.63720703125, - 405.582763671875, - 1125.6197509765625, - 4091.3193359375, - -4969.61962890625, - -7.951977252960205, - -849.7775268554688, - 1264.6595458984375, - -3041.78955078125, - 2891.103759765625, - -579.6376342773438, - -192.98143005371094, - 1581.7545166015625, - 2197.89208984375, - 1781.2109375, - 2037.47900390625, - 3844.01513671875, - -36.79807662963867, - 766.0423583984375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 67.50372314453125 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3315.18994140625, - 803.7978515625, - -1425.394775390625, - 4775.82080078125, - -6380.20068359375, - -6331.1103515625, - 754.6165771484375, - -2214.52197265625, - 5624.34130859375, - 6150.98828125, - -7.5845537185668945, - 1039.4193115234375, - -908.5472412109375, - -3417.4755859375, - -2104.513427734375, - -446.6123352050781, - 1466.6925048828125, - 1487.208740234375, - -5671.7783203125, - -6349.91064453125, - 3969.7099609375, - -4256.77001953125, - 223.388916015625, - 667.20703125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -97.29339599609375, - -81.70872497558594, - -63.859336853027344, - -25.192203521728516, - 94.61557006835938, - -20.381790161132812 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -4778.197265625, - -972.9432983398438, - 1348.440673828125, - -1782.3232421875, - -8942.7119140625, - 1911.5888671875, - -1087.6319580078125, - 2680.5302734375, - -5320.69482421875, - -2295.531982421875, - -10.630775451660156, - -313.8379211425781, - 1309.492919921875, - 4136.625, - 1990.89501953125, - 166.67449951171875, - 2055.767333984375, - -449.04156494140625, - 8174.7578125, - 7686.14013671875, - -3755.3935546875, - 1588.6148681640625, - 313.10968017578125, - -201.4536895751953 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 8.696772575378418, - 48.377689361572266, - 97.7515869140625, - 62.21574783325195 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 427.1091003417969, - 103.55646514892578, - -183.63926696777344, - 3422.673095703125, - -4572.4794921875, - -4537.2978515625, - 1092.7540283203125, - -3206.8310546875, - 8144.5625, - 5669.14404296875, - -6.990409851074219, - 957.995361328125, - -117.05175018310547, - -440.2869567871094, - -271.1328125, - -320.07232666015625, - 1051.130126953125, - 1065.8333740234375, - -8213.255859375, - -9195.2529296875, - 5748.50439453125, - -3923.3115234375, - 205.88949584960938, - 614.940673828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 67.50372314453125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 49.1112174987793, - 11.907459259033203, - -21.115795135498047, - 70.7490005493164, - -94.51628112792969, - -93.78905487060547, - 11.178888320922852, - -32.80592346191406, - 83.31897735595703, - 91.1207275390625, - -0.11235756427049637, - 15.397955894470215, - -13.459217071533203, - -50.6264762878418, - -31.17625617980957, - -6.616114139556885, - 21.72757911682129, - 22.03150749206543, - -84.02171325683594, - -94.06755828857422, - 58.807273864746094, - -63.059783935546875, - 3.3092827796936035, - 9.884003639221191 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3315.18994140625, - 803.7978515625, - -1425.394775390625, - 4775.82080078125, - -6380.20068359375, - -6331.1103515625, - 754.6165771484375, - -2214.52197265625, - 5624.34130859375, - 6150.98828125, - -7.5845537185668945, - 1039.4193115234375, - -908.5472412109375, - -3417.4755859375, - -2104.513427734375, - -446.6123352050781, - 1466.6925048828125, - 1487.208740234375, - -5671.7783203125, - -6349.91064453125, - 3969.7099609375, - -4256.77001953125, - 223.388916015625, - 667.20703125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "mul float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - 74.9375, - -34.53125, - -33.3125, - 53.90625, - -83.6875, - 19.78125, - 36.28125, - -34.3125, - 49.09375, - -54.53125, - 70.75, - -55.1875, - -93.9375, - 60.09375, - -92.75, - 87.625, - -8.8828125, - 71.8125, - -26.15625, - -18.9375, - 34.65625, - -60.96875, - -11.1171875, - 77.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3682, - -411.25, - 703, - 3814, - 7908, - -1856, - 405.5, - 1126, - 4090, - -4968, - -7.94921875, - -850, - 1264, - -3042, - 2892, - -580, - -193, - 1582, - 2198, - 1781, - 2038, - 3844, - -36.78125, - 766 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 74.9375, - -34.53125, - -33.3125, - 53.90625, - -83.6875, - 19.78125, - 36.28125, - -34.3125, - 49.09375, - -54.53125, - 70.75, - -55.1875, - -93.9375, - 60.09375, - -92.75, - 87.625, - -8.8828125, - 71.8125, - -26.15625, - -18.9375, - 34.65625, - -60.96875, - -11.1171875, - 77.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3682, - -411.25, - 703, - 3814, - 7908, - -1856, - 405.5, - 1126, - 4090, - -4968, - -7.94921875, - -850, - 1264, - -3042, - 2892, - -580, - -193, - 1582, - 2198, - 1781, - 2038, - 3844, - -36.78125, - 766 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 74.9375, - -34.53125, - -33.3125, - 53.90625, - -83.6875, - 19.78125, - 36.28125, - -34.3125, - 49.09375, - -54.53125, - 70.75, - -55.1875, - -93.9375, - 60.09375, - -92.75, - 87.625, - -8.8828125, - 71.8125, - -26.15625, - -18.9375, - 34.65625, - -60.96875, - -11.1171875, - 77.5 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3682, - -411.25, - 703, - 3814, - 7908, - -1856, - 405.5, - 1126, - 4090, - -4968, - -7.94921875, - -850, - 1264, - -3042, - 2892, - -580, - -193, - 1582, - 2198, - 1781, - 2038, - 3844, - -36.78125, - 766 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 74.9375, - -34.53125, - -33.3125, - 53.90625, - -83.6875, - 19.78125, - 36.28125, - -34.3125, - 49.09375, - -54.53125, - 70.75, - -55.1875, - -93.9375, - 60.09375, - -92.75, - 87.625, - -8.8828125, - 71.8125, - -26.15625, - -18.9375, - 34.65625, - -60.96875, - -11.1171875, - 77.5 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3682, - -411.25, - 703, - 3814, - 7908, - -1856, - 405.5, - 1126, - 4090, - -4968, - -7.94921875, - -850, - 1264, - -3042, - 2892, - -580, - -193, - 1582, - 2198, - 1781, - 2038, - 3844, - -36.78125, - 766 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 74.9375, - -34.53125, - -33.3125, - 53.90625, - -83.6875, - 19.78125, - 36.28125, - -34.3125, - 49.09375, - -54.53125, - 70.75, - -55.1875, - -93.9375, - 60.09375, - -92.75, - 87.625, - -8.8828125, - 71.8125, - -26.15625, - -18.9375, - 34.65625, - -60.96875, - -11.1171875, - 77.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3682, - -411.25, - 703, - 3814, - 7908, - -1856, - 405.5, - 1126, - 4090, - -4968, - -7.94921875, - -850, - 1264, - -3042, - 2892, - -580, - -193, - 1582, - 2198, - 1781, - 2038, - 3844, - -36.78125, - 766 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 74.9375, - -34.53125, - -33.3125, - 53.90625, - -83.6875, - 19.78125, - 36.28125, - -34.3125, - 49.09375, - -54.53125, - 70.75, - -55.1875, - -93.9375, - 60.09375, - -92.75, - 87.625, - -8.8828125, - 71.8125, - -26.15625, - -18.9375, - 34.65625, - -60.96875, - -11.1171875, - 77.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3682, - -411.25, - 703, - 3814, - 7908, - -1856, - 405.5, - 1126, - 4090, - -4968, - -7.94921875, - -850, - 1264, - -3042, - 2892, - -580, - -193, - 1582, - 2198, - 1781, - 2038, - 3844, - -36.78125, - 766 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 67.5 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3316, - 803.5, - -1425, - 4776, - -6380, - -6332, - 754.5, - -2214, - 5624, - 6152, - -7.5859375, - 1039, - -908.5, - -3418, - -2104, - -446.75, - 1467, - 1487, - -5672, - -6348, - 3970, - -4256, - 223.375, - 667 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -97.3125, - -81.6875, - -63.84375, - -25.1875, - 94.625, - -20.375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -4780, - -972.5, - 1348, - -1782, - -8944, - 1911, - -1088, - 2680, - -5320, - -2296, - -10.6328125, - -313.75, - 1310, - 4136, - 1990, - 166.625, - 2056, - -449, - 8176, - 7684, - -3754, - 1588, - 313, - -201.375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 8.6953125, - 48.375, - 97.75, - 62.21875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 427.25, - 103.5, - -183.5, - 3422, - -4572, - -4540, - 1093, - -3208, - 8144, - 5668, - -6.9921875, - 958, - -117.0625, - -440.25, - -271, - -320, - 1051, - 1066, - -8208, - -9192, - 5748, - -3924, - 205.875, - 615 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "mul float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 67.5 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 49.125, - 11.90625, - -21.109375, - 70.75, - -94.5, - -93.8125, - 11.1796875, - -32.8125, - 83.3125, - 91.125, - -0.11236572265625, - 15.3984375, - -13.4609375, - -50.625, - -31.171875, - -6.6171875, - 21.734375, - 22.03125, - -84, - -94.0625, - 58.8125, - -63.0625, - 3.30859375, - 9.8828125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "mul", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 3316, - 803.5, - -1425, - 4776, - -6380, - -6332, - 754.5, - -2214, - 5624, - 6152, - -7.5859375, - 1039, - -908.5, - -3418, - -2104, - -446.75, - 1467, - 1487, - -5672, - -6348, - 3970, - -4256, - 223.375, - 667 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/neg.json b/tests/wpt_data/conformance/neg.json deleted file mode 100644 index 307fdb3..0000000 --- a/tests/wpt_data/conformance/neg.json +++ /dev/null @@ -1,1423 +0,0 @@ -{ - "operation": "neg", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/neg.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "neg float32 positive 0D scalar", - "graph": { - "inputs": { - "negInput": { - "data": [ - 94.23045349121094 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - -94.23045349121094 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "neg float32 negative 0D scalar", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.334503173828125 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.334503173828125 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "neg float32 1D constant tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.334503173828125, - 94.23045349121094, - -67.69306945800781, - -36.0666389465332, - 17.115114212036133, - 59.2606315612793, - -43.77507781982422, - -14.875581741333008, - 22.50856590270996, - 98.67680358886719, - 2.315542221069336, - -89.86896514892578, - -14.28854751586914, - 16.22245216369629, - -4.688417911529541, - -44.46965026855469, - -52.139259338378906, - 24.165390014648438, - -66.4577865600586, - -11.172324180603027, - -25.024961471557617, - 22.26478385925293, - 35.29130172729492, - -86.18817138671875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.334503173828125, - -94.23045349121094, - 67.69306945800781, - 36.0666389465332, - -17.115114212036133, - -59.2606315612793, - 43.77507781982422, - 14.875581741333008, - -22.50856590270996, - -98.67680358886719, - -2.315542221069336, - 89.86896514892578, - 14.28854751586914, - -16.22245216369629, - 4.688417911529541, - 44.46965026855469, - 52.139259338378906, - -24.165390014648438, - 66.4577865600586, - 11.172324180603027, - 25.024961471557617, - -22.26478385925293, - -35.29130172729492, - 86.18817138671875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "neg float32 1D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.334503173828125, - 94.23045349121094, - -67.69306945800781, - -36.0666389465332, - 17.115114212036133, - 59.2606315612793, - -43.77507781982422, - -14.875581741333008, - 22.50856590270996, - 98.67680358886719, - 2.315542221069336, - -89.86896514892578, - -14.28854751586914, - 16.22245216369629, - -4.688417911529541, - -44.46965026855469, - -52.139259338378906, - 24.165390014648438, - -66.4577865600586, - -11.172324180603027, - -25.024961471557617, - 22.26478385925293, - 35.29130172729492, - -86.18817138671875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.334503173828125, - -94.23045349121094, - 67.69306945800781, - 36.0666389465332, - -17.115114212036133, - -59.2606315612793, - 43.77507781982422, - 14.875581741333008, - -22.50856590270996, - -98.67680358886719, - -2.315542221069336, - 89.86896514892578, - 14.28854751586914, - -16.22245216369629, - 4.688417911529541, - 44.46965026855469, - 52.139259338378906, - -24.165390014648438, - 66.4577865600586, - 11.172324180603027, - 25.024961471557617, - -22.26478385925293, - -35.29130172729492, - 86.18817138671875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "neg float32 2D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.334503173828125, - 94.23045349121094, - -67.69306945800781, - -36.0666389465332, - 17.115114212036133, - 59.2606315612793, - -43.77507781982422, - -14.875581741333008, - 22.50856590270996, - 98.67680358886719, - 2.315542221069336, - -89.86896514892578, - -14.28854751586914, - 16.22245216369629, - -4.688417911529541, - -44.46965026855469, - -52.139259338378906, - 24.165390014648438, - -66.4577865600586, - -11.172324180603027, - -25.024961471557617, - 22.26478385925293, - 35.29130172729492, - -86.18817138671875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.334503173828125, - -94.23045349121094, - 67.69306945800781, - 36.0666389465332, - -17.115114212036133, - -59.2606315612793, - 43.77507781982422, - 14.875581741333008, - -22.50856590270996, - -98.67680358886719, - -2.315542221069336, - 89.86896514892578, - 14.28854751586914, - -16.22245216369629, - 4.688417911529541, - 44.46965026855469, - 52.139259338378906, - -24.165390014648438, - 66.4577865600586, - 11.172324180603027, - 25.024961471557617, - -22.26478385925293, - -35.29130172729492, - 86.18817138671875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "neg float32 3D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.334503173828125, - 94.23045349121094, - -67.69306945800781, - -36.0666389465332, - 17.115114212036133, - 59.2606315612793, - -43.77507781982422, - -14.875581741333008, - 22.50856590270996, - 98.67680358886719, - 2.315542221069336, - -89.86896514892578, - -14.28854751586914, - 16.22245216369629, - -4.688417911529541, - -44.46965026855469, - -52.139259338378906, - 24.165390014648438, - -66.4577865600586, - -11.172324180603027, - -25.024961471557617, - 22.26478385925293, - 35.29130172729492, - -86.18817138671875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.334503173828125, - -94.23045349121094, - 67.69306945800781, - 36.0666389465332, - -17.115114212036133, - -59.2606315612793, - 43.77507781982422, - 14.875581741333008, - -22.50856590270996, - -98.67680358886719, - -2.315542221069336, - 89.86896514892578, - 14.28854751586914, - -16.22245216369629, - 4.688417911529541, - 44.46965026855469, - 52.139259338378906, - -24.165390014648438, - 66.4577865600586, - 11.172324180603027, - 25.024961471557617, - -22.26478385925293, - -35.29130172729492, - 86.18817138671875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "neg float32 4D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.334503173828125, - 94.23045349121094, - -67.69306945800781, - -36.0666389465332, - 17.115114212036133, - 59.2606315612793, - -43.77507781982422, - -14.875581741333008, - 22.50856590270996, - 98.67680358886719, - 2.315542221069336, - -89.86896514892578, - -14.28854751586914, - 16.22245216369629, - -4.688417911529541, - -44.46965026855469, - -52.139259338378906, - 24.165390014648438, - -66.4577865600586, - -11.172324180603027, - -25.024961471557617, - 22.26478385925293, - 35.29130172729492, - -86.18817138671875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.334503173828125, - -94.23045349121094, - 67.69306945800781, - 36.0666389465332, - -17.115114212036133, - -59.2606315612793, - 43.77507781982422, - 14.875581741333008, - -22.50856590270996, - -98.67680358886719, - -2.315542221069336, - 89.86896514892578, - 14.28854751586914, - -16.22245216369629, - 4.688417911529541, - 44.46965026855469, - 52.139259338378906, - -24.165390014648438, - 66.4577865600586, - 11.172324180603027, - 25.024961471557617, - -22.26478385925293, - -35.29130172729492, - 86.18817138671875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "neg float32 5D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.334503173828125, - 94.23045349121094, - -67.69306945800781, - -36.0666389465332, - 17.115114212036133, - 59.2606315612793, - -43.77507781982422, - -14.875581741333008, - 22.50856590270996, - 98.67680358886719, - 2.315542221069336, - -89.86896514892578, - -14.28854751586914, - 16.22245216369629, - -4.688417911529541, - -44.46965026855469, - -52.139259338378906, - 24.165390014648438, - -66.4577865600586, - -11.172324180603027, - -25.024961471557617, - 22.26478385925293, - 35.29130172729492, - -86.18817138671875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.334503173828125, - -94.23045349121094, - 67.69306945800781, - 36.0666389465332, - -17.115114212036133, - -59.2606315612793, - 43.77507781982422, - 14.875581741333008, - -22.50856590270996, - -98.67680358886719, - -2.315542221069336, - 89.86896514892578, - 14.28854751586914, - -16.22245216369629, - 4.688417911529541, - 44.46965026855469, - 52.139259338378906, - -24.165390014648438, - 66.4577865600586, - 11.172324180603027, - 25.024961471557617, - -22.26478385925293, - -35.29130172729492, - 86.18817138671875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "neg float16 positive 0D scalar", - "graph": { - "inputs": { - "negInput": { - "data": [ - 94.25 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - -94.25 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "neg float16 negative 0D scalar", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.34375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.34375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "neg float16 1D constant tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.34375, - 94.25, - -67.6875, - -36.0625, - 17.109375, - 59.25, - -43.78125, - -14.875, - 22.515625, - 98.6875, - 2.31640625, - -89.875, - -14.2890625, - 16.21875, - -4.6875, - -44.46875, - -52.125, - 24.171875, - -66.4375, - -11.171875, - -25.03125, - 22.265625, - 35.28125, - -86.1875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.34375, - -94.25, - 67.6875, - 36.0625, - -17.109375, - -59.25, - 43.78125, - 14.875, - -22.515625, - -98.6875, - -2.31640625, - 89.875, - 14.2890625, - -16.21875, - 4.6875, - 44.46875, - 52.125, - -24.171875, - 66.4375, - 11.171875, - 25.03125, - -22.265625, - -35.28125, - 86.1875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "neg float16 1D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.34375, - 94.25, - -67.6875, - -36.0625, - 17.109375, - 59.25, - -43.78125, - -14.875, - 22.515625, - 98.6875, - 2.31640625, - -89.875, - -14.2890625, - 16.21875, - -4.6875, - -44.46875, - -52.125, - 24.171875, - -66.4375, - -11.171875, - -25.03125, - 22.265625, - 35.28125, - -86.1875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.34375, - -94.25, - 67.6875, - 36.0625, - -17.109375, - -59.25, - 43.78125, - 14.875, - -22.515625, - -98.6875, - -2.31640625, - 89.875, - 14.2890625, - -16.21875, - 4.6875, - 44.46875, - 52.125, - -24.171875, - 66.4375, - 11.171875, - 25.03125, - -22.265625, - -35.28125, - 86.1875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "neg float16 2D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.34375, - 94.25, - -67.6875, - -36.0625, - 17.109375, - 59.25, - -43.78125, - -14.875, - 22.515625, - 98.6875, - 2.31640625, - -89.875, - -14.2890625, - 16.21875, - -4.6875, - -44.46875, - -52.125, - 24.171875, - -66.4375, - -11.171875, - -25.03125, - 22.265625, - 35.28125, - -86.1875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.34375, - -94.25, - 67.6875, - 36.0625, - -17.109375, - -59.25, - 43.78125, - 14.875, - -22.515625, - -98.6875, - -2.31640625, - 89.875, - 14.2890625, - -16.21875, - 4.6875, - 44.46875, - 52.125, - -24.171875, - 66.4375, - 11.171875, - 25.03125, - -22.265625, - -35.28125, - 86.1875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "neg float16 3D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.34375, - 94.25, - -67.6875, - -36.0625, - 17.109375, - 59.25, - -43.78125, - -14.875, - 22.515625, - 98.6875, - 2.31640625, - -89.875, - -14.2890625, - 16.21875, - -4.6875, - -44.46875, - -52.125, - 24.171875, - -66.4375, - -11.171875, - -25.03125, - 22.265625, - 35.28125, - -86.1875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.34375, - -94.25, - 67.6875, - 36.0625, - -17.109375, - -59.25, - 43.78125, - 14.875, - -22.515625, - -98.6875, - -2.31640625, - 89.875, - 14.2890625, - -16.21875, - 4.6875, - 44.46875, - 52.125, - -24.171875, - 66.4375, - 11.171875, - 25.03125, - -22.265625, - -35.28125, - 86.1875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "neg float16 4D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.34375, - 94.25, - -67.6875, - -36.0625, - 17.109375, - 59.25, - -43.78125, - -14.875, - 22.515625, - 98.6875, - 2.31640625, - -89.875, - -14.2890625, - 16.21875, - -4.6875, - -44.46875, - -52.125, - 24.171875, - -66.4375, - -11.171875, - -25.03125, - 22.265625, - 35.28125, - -86.1875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.34375, - -94.25, - 67.6875, - 36.0625, - -17.109375, - -59.25, - 43.78125, - 14.875, - -22.515625, - -98.6875, - -2.31640625, - 89.875, - 14.2890625, - -16.21875, - 4.6875, - 44.46875, - 52.125, - -24.171875, - 66.4375, - 11.171875, - 25.03125, - -22.265625, - -35.28125, - 86.1875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "neg float16 5D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -58.34375, - 94.25, - -67.6875, - -36.0625, - 17.109375, - 59.25, - -43.78125, - -14.875, - 22.515625, - 98.6875, - 2.31640625, - -89.875, - -14.2890625, - 16.21875, - -4.6875, - -44.46875, - -52.125, - 24.171875, - -66.4375, - -11.171875, - -25.03125, - 22.265625, - 35.28125, - -86.1875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 58.34375, - -94.25, - 67.6875, - 36.0625, - -17.109375, - -59.25, - 43.78125, - 14.875, - -22.515625, - -98.6875, - -2.31640625, - 89.875, - 14.2890625, - -16.21875, - 4.6875, - 44.46875, - 52.125, - -24.171875, - 66.4375, - 11.171875, - 25.03125, - -22.265625, - -35.28125, - 86.1875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "neg int8 4D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -127, - 0, - 126, - 127 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 127, - 0, - -126, - -127 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "neg int32 4D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - -2147483647, - 0, - 2147483646, - 2147483647 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - 2147483647, - 0, - -2147483646, - -2147483647 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "neg int64 4D tensor", - "graph": { - "inputs": { - "negInput": { - "data": [ - "-9223372036854775807n", - "-100n", - "0n", - "100n", - "9223372036854775807n" - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 5 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "neg", - "arguments": [ - { - "input": "negInput" - } - ], - "outputs": "negOutput" - } - ], - "expectedOutputs": { - "negOutput": { - "data": [ - "9223372036854775807n", - "100n", - 0, - "-100n", - "-9223372036854775807n" - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 5 - ], - "dataType": "int64" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/pow.json b/tests/wpt_data/conformance/pow.json deleted file mode 100644 index 53ecf4c..0000000 --- a/tests/wpt_data/conformance/pow.json +++ /dev/null @@ -1,2455 +0,0 @@ -{ - "operation": "pow", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/pow.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "pow float32 constant 1D base tensor and 1D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - 1, - 6, - -7, - 7, - -2, - 1, - 4, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 6, - -6, - 7, - -5, - -5, - 7, - -6 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.846010208129883, - 6.316321332633379e-08, - -1.0973203501407625e-07, - 21800822, - 0.0033234376460313797, - 11.862250328063965, - 80273.3359375, - 5.692423656000756e-05, - 0.12908191978931427, - -2.0299064544815337e-06, - 0.005799346603453159, - 3880.540283203125, - 2.7385585465999895e-10, - 8.223764069725803e-08, - 0.06714485585689545, - -0.008288968354463577, - -4.1750155416186985e-11, - 1210.5478515625, - 3.8231124932508465e-08, - -1667.201416015625, - -0.16149713099002838, - -0.00015812950732652098, - 485079424, - 3.584487018315485e-08 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow float32 1D base tensor and 1D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 1, - 6, - -7, - 7, - -2, - 1, - 4, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 6, - -6, - 7, - -5, - -5, - 7, - -6 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.846010208129883, - 6.316321332633379e-08, - -1.0973203501407625e-07, - 21800822, - 0.0033234376460313797, - 11.862250328063965, - 80273.3359375, - 5.692423656000756e-05, - 0.12908191978931427, - -2.0299064544815337e-06, - 0.005799346603453159, - 3880.540283203125, - 2.7385585465999895e-10, - 8.223764069725803e-08, - 0.06714485585689545, - -0.008288968354463577, - -4.1750155416186985e-11, - 1210.5478515625, - 3.8231124932508465e-08, - -1667.201416015625, - -0.16149713099002838, - -0.00015812950732652098, - 485079424, - 3.584487018315485e-08 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow float32 2D base tensor and 2D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 1, - 6, - -7, - 7, - -2, - 1, - 4, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 6, - -6, - 7, - -5, - -5, - 7, - -6 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.846010208129883, - 6.316321332633379e-08, - -1.0973203501407625e-07, - 21800822, - 0.0033234376460313797, - 11.862250328063965, - 80273.3359375, - 5.692423656000756e-05, - 0.12908191978931427, - -2.0299064544815337e-06, - 0.005799346603453159, - 3880.540283203125, - 2.7385585465999895e-10, - 8.223764069725803e-08, - 0.06714485585689545, - -0.008288968354463577, - -4.1750155416186985e-11, - 1210.5478515625, - 3.8231124932508465e-08, - -1667.201416015625, - -0.16149713099002838, - -0.00015812950732652098, - 485079424, - 3.584487018315485e-08 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow float32 3D base tensor and 3D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 1, - 6, - -7, - 7, - -2, - 1, - 4, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 6, - -6, - 7, - -5, - -5, - 7, - -6 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.846010208129883, - 6.316321332633379e-08, - -1.0973203501407625e-07, - 21800822, - 0.0033234376460313797, - 11.862250328063965, - 80273.3359375, - 5.692423656000756e-05, - 0.12908191978931427, - -2.0299064544815337e-06, - 0.005799346603453159, - 3880.540283203125, - 2.7385585465999895e-10, - 8.223764069725803e-08, - 0.06714485585689545, - -0.008288968354463577, - -4.1750155416186985e-11, - 1210.5478515625, - 3.8231124932508465e-08, - -1667.201416015625, - -0.16149713099002838, - -0.00015812950732652098, - 485079424, - 3.584487018315485e-08 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow float32 4D base tensor and 4D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 1, - 6, - -7, - 7, - -2, - 1, - 4, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 6, - -6, - 7, - -5, - -5, - 7, - -6 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.846010208129883, - 6.316321332633379e-08, - -1.0973203501407625e-07, - 21800822, - 0.0033234376460313797, - 11.862250328063965, - 80273.3359375, - 5.692423656000756e-05, - 0.12908191978931427, - -2.0299064544815337e-06, - 0.005799346603453159, - 3880.540283203125, - 2.7385585465999895e-10, - 8.223764069725803e-08, - 0.06714485585689545, - -0.008288968354463577, - -4.1750155416186985e-11, - 1210.5478515625, - 3.8231124932508465e-08, - -1667.201416015625, - -0.16149713099002838, - -0.00015812950732652098, - 485079424, - 3.584487018315485e-08 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow float32 5D base tensor and 5D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 1, - 6, - -7, - 7, - -2, - 1, - 4, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 6, - -6, - 7, - -5, - -5, - 7, - -6 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.846010208129883, - 6.316321332633379e-08, - -1.0973203501407625e-07, - 21800822, - 0.0033234376460313797, - 11.862250328063965, - 80273.3359375, - 5.692423656000756e-05, - 0.12908191978931427, - -2.0299064544815337e-06, - 0.005799346603453159, - 3880.540283203125, - 2.7385585465999895e-10, - 8.223764069725803e-08, - 0.06714485585689545, - -0.008288968354463577, - -4.1750155416186985e-11, - 1210.5478515625, - 3.8231124932508465e-08, - -1667.201416015625, - -0.16149713099002838, - -0.00015812950732652098, - 485079424, - 3.584487018315485e-08 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow (square) float32 4D base tensor and broadcastable 0D integer exponent scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - 2 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 318.4800720214844, - 0.00398249039426446, - 97.38143157958984, - 124.94144439697266, - 300.8932800292969, - 140.71298217773438, - 283.32550048828125, - 7.062208652496338, - 7.747018814086914, - 189.23854064941406, - 172.43321228027344, - 0.19152326881885529, - 245.8212890625, - 105.74638366699219, - 221.806640625, - 24.41554069519043, - 202.5444793701172, - 10.657630920410156, - 296.84356689453125, - 8.328523635864258, - 2.073643445968628, - 33.14323043823242, - 303.1522521972656, - 303.2897033691406 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow (sqrt) float32 4D positive base tensor and broadcastable 0D integer exponent scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - 1.418652057647705, - 19.384845733642578, - 12.983916282653809, - 2.4603159427642822, - 7.818154811859131, - 6.94444465637207, - 12.183951377868652, - 17.912473678588867, - 11.356568336486816, - 8.924248695373535, - 17.636823654174805, - 11.49622917175293, - 18.516279220581055, - 2.2580490112304688, - 2.231948137283325, - 13.629855155944824, - 17.54841423034668, - 0.5390734076499939, - 5.891367435455322, - 0.12803149223327637, - 19.654495239257812, - 3.4122724533081055, - 4.945034980773926, - 4.437101364135742 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - 0.5 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1.19107186794281, - 4.402822494506836, - 3.6033201217651367, - 1.5685393810272217, - 2.7960963249206543, - 2.6352314949035645, - 3.490551710128784, - 4.23231315612793, - 3.369950771331787, - 2.9873480796813965, - 4.199621677398682, - 3.3906090259552, - 4.3030548095703125, - 1.5026806592941284, - 1.4939706325531006, - 3.6918632984161377, - 4.189082622528076, - 0.7342162132263184, - 2.4272139072418213, - 0.35781487822532654, - 4.4333391189575195, - 1.847233772277832, - 2.223743438720703, - 2.106442928314209 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow float32 4D base tensor and broadcastable 2D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 5, - -10, - -10, - 7, - -7, - -9 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1810113, - 998220038144, - 1.1418765932802444e-10, - 21800822, - -2.11619832768406e-09, - 2.1502860603206386e-10, - -1351182.875, - 5.692423656000756e-05, - 3.5836616007145494e-05, - -93225256, - 1.4853429597394552e-08, - -1698.2552490234375, - -947433.5, - 7.562621362477984e-11, - 1.8626330946375225e-12, - -71917.1015625, - -8.45626324519344e-09, - 2.374253199377563e-05, - 1518165.5, - 2.495513399480842e-05, - 0.026081321761012077, - -209595.46875, - 2.0615180673644318e-09, - 6.786416914539295e-12 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow float32 4D base tensor and broadcastable 3D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.846010208129883, - -0.0631069764494896, - -9.868203163146973, - 11.17772102355957, - -17.346275329589844, - 11.862250328063965, - -16.832275390625, - 2.6574816703796387, - -2.783346652984619, - -13.756400108337402, - 13.131382942199707, - -0.4376337230205536, - -15.678689002990723, - 10.283306121826172, - 14.893174171447754, - -4.941208362579346, - -14.231812477111816, - 3.2646026611328125, - 17.229148864746094, - -2.885918140411377, - -1.4400150775909424, - -5.757015705108643, - 17.41126823425293, - 17.41521453857422 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -5, - -10, - 9, - -6 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 5.524516950572433e-07, - -999109.625, - -1.0685862434911542e-05, - 3.284485530774539e-11, - 4.0545030440680696e-13, - 1.81271334748212e-11, - -108463955968, - 6610.47265625, - -10025.4921875, - 1.4756086841316574e-07, - 1.9504606996179064e-07, - 142.34274291992188, - -1.0554830396358739e-06, - 8.696333679836243e-06, - 1.3647832020069472e-06, - 1.1525726506533829e-07, - 2.9335795945217846e-12, - 7.272717084561009e-06, - 133774827520, - -13885.326171875, - -26.625843048095703, - 2.7467271138448268e-05, - 3.5893645389251105e-08, - 3.584487018315485e-08 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "pow float16 constant 1D base tensor and 1D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - 1, - 3, - -7, - 2, - -2, - 1, - 2, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 2, - -6, - 3, - -5, - -5, - 2, - -6 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.84375, - -0.0002512931823730469, - -1.1920928955078125e-07, - 125, - 0.0033245086669921875, - 11.859375, - 283.25, - 5.6743621826171875e-05, - 0.129150390625, - -2.0265579223632812e-06, - 0.00579833984375, - 3870, - 0, - 5.960464477539063e-08, - 0.067138671875, - -0.0082855224609375, - 0, - 10.6484375, - 5.960464477539063e-08, - -24.0625, - -0.1612548828125, - -0.00015807151794433594, - 303, - 5.960464477539063e-08 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow float16 1D base tensor and 1D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 1, - 3, - -7, - 2, - -2, - 1, - 2, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 2, - -6, - 3, - -5, - -5, - 2, - -6 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.84375, - -0.0002512931823730469, - -1.1920928955078125e-07, - 125, - 0.0033245086669921875, - 11.859375, - 283.25, - 5.6743621826171875e-05, - 0.129150390625, - -2.0265579223632812e-06, - 0.00579833984375, - 3870, - 0, - 5.960464477539063e-08, - 0.067138671875, - -0.0082855224609375, - 0, - 10.6484375, - 5.960464477539063e-08, - -24.0625, - -0.1612548828125, - -0.00015807151794433594, - 303, - 5.960464477539063e-08 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow float16 2D base tensor and 2D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 1, - 3, - -7, - 2, - -2, - 1, - 2, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 2, - -6, - 3, - -5, - -5, - 2, - -6 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.84375, - -0.0002512931823730469, - -1.1920928955078125e-07, - 125, - 0.0033245086669921875, - 11.859375, - 283.25, - 5.6743621826171875e-05, - 0.129150390625, - -2.0265579223632812e-06, - 0.00579833984375, - 3870, - 0, - 5.960464477539063e-08, - 0.067138671875, - -0.0082855224609375, - 0, - 10.6484375, - 5.960464477539063e-08, - -24.0625, - -0.1612548828125, - -0.00015807151794433594, - 303, - 5.960464477539063e-08 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow float16 3D base tensor and 3D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 1, - 3, - -7, - 2, - -2, - 1, - 2, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 2, - -6, - 3, - -5, - -5, - 2, - -6 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.84375, - -0.0002512931823730469, - -1.1920928955078125e-07, - 125, - 0.0033245086669921875, - 11.859375, - 283.25, - 5.6743621826171875e-05, - 0.129150390625, - -2.0265579223632812e-06, - 0.00579833984375, - 3870, - 0, - 5.960464477539063e-08, - 0.067138671875, - -0.0082855224609375, - 0, - 10.6484375, - 5.960464477539063e-08, - -24.0625, - -0.1612548828125, - -0.00015807151794433594, - 303, - 5.960464477539063e-08 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow float16 4D base tensor and 4D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 1, - 3, - -7, - 2, - -2, - 1, - 2, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 2, - -6, - 3, - -5, - -5, - 2, - -6 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.84375, - -0.0002512931823730469, - -1.1920928955078125e-07, - 125, - 0.0033245086669921875, - 11.859375, - 283.25, - 5.6743621826171875e-05, - 0.129150390625, - -2.0265579223632812e-06, - 0.00579833984375, - 3870, - 0, - 5.960464477539063e-08, - 0.067138671875, - -0.0082855224609375, - 0, - 10.6484375, - 5.960464477539063e-08, - -24.0625, - -0.1612548828125, - -0.00015807151794433594, - 303, - 5.960464477539063e-08 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow float16 5D base tensor and 5D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 1, - 3, - -7, - 2, - -2, - 1, - 2, - -10, - -2, - -5, - -2, - -10, - -8, - -7, - -1, - -3, - -9, - 2, - -6, - 3, - -5, - -5, - 2, - -6 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 17.84375, - -0.0002512931823730469, - -1.1920928955078125e-07, - 125, - 0.0033245086669921875, - 11.859375, - 283.25, - 5.6743621826171875e-05, - 0.129150390625, - -2.0265579223632812e-06, - 0.00579833984375, - 3870, - 0, - 5.960464477539063e-08, - 0.067138671875, - -0.0082855224609375, - 0, - 10.6484375, - 5.960464477539063e-08, - -24.0625, - -0.1612548828125, - -0.00015807151794433594, - 303, - 5.960464477539063e-08 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow (square) float16 4D base tensor and broadcastable 0D integer exponent scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - 2 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 318.5, - 0.0039825439453125, - 97.375, - 125, - 300.75, - 140.625, - 283.25, - 7.06640625, - 7.74609375, - 189.25, - 172.5, - 0.191650390625, - 245.875, - 105.6875, - 221.75, - 24.421875, - 202.625, - 10.6484375, - 297, - 8.3359375, - 2.07421875, - 33.15625, - 303, - 303.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow (sqrt) float16 4D positive base tensor and broadcastable 0D integer exponent scalar", - "graph": { - "inputs": { - "inputA": { - "data": [ - 1.4189453125, - 19.390625, - 12.984375, - 2.4609375, - 7.81640625, - 6.9453125, - 12.1875, - 17.90625, - 11.359375, - 8.921875, - 17.640625, - 11.5, - 18.515625, - 2.2578125, - 2.232421875, - 13.6328125, - 17.546875, - 0.5390625, - 5.890625, - 0.1280517578125, - 19.65625, - 3.412109375, - 4.9453125, - 4.4375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - 0.5 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 1.19140625, - 4.40234375, - 3.603515625, - 1.568359375, - 2.794921875, - 2.634765625, - 3.490234375, - 4.23046875, - 3.37109375, - 2.986328125, - 4.19921875, - 3.390625, - 4.3046875, - 1.5029296875, - 1.494140625, - 3.69140625, - 4.1875, - 0.734375, - 2.427734375, - 0.35791015625, - 4.43359375, - 1.84765625, - 2.224609375, - 2.107421875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow float16 4D base tensor and broadcastable 2D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 3, - -2, - -1, - 2, - -7, - -5 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 5680, - 251.125, - -0.101318359375, - 125, - 0, - 4.291534423828125e-06, - -4764, - 0.1414794921875, - -0.359375, - 189.25, - 0, - -62.21875, - -3854, - 0.00946044921875, - 0.067138671875, - 24.421875, - 0, - 0.0027008056640625, - 5120, - 0.1199951171875, - -0.6943359375, - 33.15625, - 0, - 5.960464477539062e-07 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "pow float16 4D base tensor and broadcastable 3D integer exponent tensor", - "graph": { - "inputs": { - "inputA": { - "data": [ - 17.84375, - -0.0631103515625, - -9.8671875, - 11.1796875, - -17.34375, - 11.859375, - -16.828125, - 2.658203125, - -2.783203125, - -13.7578125, - 13.1328125, - -0.437744140625, - -15.6796875, - 10.28125, - 14.890625, - -4.94140625, - -14.234375, - 3.263671875, - 17.234375, - -2.88671875, - -1.4404296875, - -5.7578125, - 17.40625, - 17.421875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -1, - 1, - 3, - -2 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "pow", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0.0560302734375, - -15.84375, - -0.101318359375, - 11.1796875, - -17.34375, - 11.859375, - -4764, - 18.78125, - -21.5625, - 0.005283355712890625, - 0.00579833984375, - 5.21875, - -0.06378173828125, - 0.0972900390625, - 0.067138671875, - -4.94140625, - -14.234375, - 3.263671875, - 5120, - -24.0625, - -2.98828125, - 0.0301666259765625, - 0.003299713134765625, - 0.0032939910888671875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_l1.json b/tests/wpt_data/conformance/reduce_l1.json deleted file mode 100644 index e8d4363..0000000 --- a/tests/wpt_data/conformance/reduce_l1.json +++ /dev/null @@ -1,2917 +0,0 @@ -{ - "operation": "reduce_l1", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_l1.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceL1 float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 5.50882625579834, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 0D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 5.50882625579834, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 5.50882625579834, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 5.50882625579834, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - -5.50882625579834, - 5.50882625579833 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 5.50882625579834, - 5.50882625579833 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1092.72021484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1092.72021484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - -98.83928680419922, - -57.66743850708008, - -57.101200103759766, - -6.693042278289795, - -45.30584716796875, - -86.68338775634766, - -74.71875, - -76.46739959716797, - -75.37677001953125, - -18.22093963623047, - -54.64426803588867, - -36.45240020751953, - -18.322681427001953, - -47.94379425048828, - -40.19978332519531, - -15.830483436584473, - -48.883358001708984, - -41.600242614746094, - -20.6556339263916, - -92.2993392944336, - -46.28858184814453, - -80.57186126708984, - -25.49472999572754, - -48.96730041503906 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1215.228515625, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 18, - 29, - 35, - 36, - 4, - 76, - 41, - 18, - 53, - 29, - 25, - 94, - 26, - 1, - 3, - 68, - 39, - 25, - 87, - 30, - 39, - 75, - 76, - 66 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 993, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - -92, - -52, - -88, - -78, - -20, - -73, - -42, - -57, - -39, - -75, - -17, - -36, - -81, - -24, - -88, - -91, - -76, - -5, - -44, - -66, - -96, - -8, - -69, - -27 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1344, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 2D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1092.72021484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 3D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1092.72021484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 4D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1092.72021484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 5D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1092.72021484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 142.01541137695312, - 106.62430572509766, - 175.39280700683594, - 286.7269592285156, - 169.36322021484375, - 212.59750366210938 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 258.57110595703125, - 174.42807006835938, - 102.19830322265625, - 134.52191162109375, - 207.92910766601562, - 215.07168579101562 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1092.72021484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1092.72021484375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": 1092.72021484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1092.72021484375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 108.43173217773438, - 315.6007995605469, - 359.5506591796875, - 309.13702392578125 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.50882625579834, - 50.61575698852539, - 1.6773051023483276, - 84.2135238647461, - 15.664374351501465, - 52.89714813232422, - 9.125157356262207, - 28.937623977661133, - 12.567061424255371, - 11.39999008178711, - 86.91246032714844, - 64.51329803466797, - 71.2834243774414, - 76.34410858154297, - 41.53409194946289, - 97.5653305053711, - 31.803831100463867, - 6.089754581451416, - 61.70843505859375, - 69.76119232177734, - 38.919403076171875, - 52.288333892822266, - 22.31783676147461, - 99.0719223022461 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 108.43173217773438, - 315.6007995605469, - 359.5506591796875, - 309.13702392578125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL1 float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 5.5078125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 0D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 5.5078125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 5.5078125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 5.5078125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - -98.8125, - -57.65625, - -57.09375, - -6.69140625, - -45.3125, - -86.6875, - -74.75, - -76.4375, - -75.375, - -18.21875, - -54.65625, - -36.4375, - -18.328125, - -47.9375, - -40.1875, - -15.828125, - -48.875, - -41.59375, - -20.65625, - -92.3125, - -46.28125, - -80.5625, - -25.5, - -48.96875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1215 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 18, - 29, - 35, - 36, - 4, - 76, - 41, - 18, - 53, - 29, - 25, - 94, - 26, - 1, - 3, - 68, - 39, - 25, - 87, - 30, - 39, - 75, - 76, - 66 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 993 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - -92, - -52, - -88, - -78, - -20, - -73, - -42, - -57, - -39, - -75, - -17, - -36, - -81, - -24, - -88, - -91, - -76, - -5, - -44, - -66, - -96, - -8, - -69, - -27 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1344 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 2D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 3D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 4D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 5D tensor default options", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 142, - 106.625, - 175.375, - 286.75, - 169.375, - 212.5 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 258.5, - 174.5, - 102.1875, - 134.5, - 208, - 215 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 1093 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 108.4375, - 315.5, - 359.5, - 309 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5.5078125, - 50.625, - 1.677734375, - 84.1875, - 15.6640625, - 52.90625, - 9.125, - 28.9375, - 12.5703125, - 11.3984375, - 86.9375, - 64.5, - 71.3125, - 76.375, - 41.53125, - 97.5625, - 31.796875, - 6.08984375, - 61.71875, - 69.75, - 38.90625, - 52.28125, - 22.3125, - 99.0625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 108.4375, - 315.5, - 359.5, - 309 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL1 int32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5, - 50, - 1, - 84, - 15, - 52, - 9, - 28, - 12, - 11, - 86, - 64, - 71, - 76, - 41, - 97, - 31, - 6, - 61, - 69, - 38, - 52, - 22, - 99 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 105, - 312, - 356, - 307 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "reduceL1 uint32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL1Input": { - "data": [ - 5, - 50, - 1, - 84, - 15, - 52, - 9, - 28, - 12, - 11, - 86, - 64, - 71, - 76, - 41, - 97, - 31, - 6, - 61, - 69, - 38, - 52, - 22, - 99 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "reduceL1", - "arguments": [ - { - "input": "reduceL1Input" - }, - { - "options": { - "axes": [ - 0, - 2 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceL1Output" - } - ], - "expectedOutputs": { - "reduceL1Output": { - "data": [ - 257, - 172, - 100, - 133, - 205, - 213 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "uint32" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_l2.json b/tests/wpt_data/conformance/reduce_l2.json deleted file mode 100644 index f1058c6..0000000 --- a/tests/wpt_data/conformance/reduce_l2.json +++ /dev/null @@ -1,2751 +0,0 @@ -{ - "operation": "reduce_l2", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_l2.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceL2 float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 4.860228061676025, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 0D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 4.860228061676025, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 4.860228061676025, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 4.860228061676025, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - -4.860228061676025, - 4.860228061676024 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 4.860228061676025, - 4.860228061676024 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 272.0996398925781, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 272.0996398925781, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - -66.80043029785156, - -53.00004959106445, - -59.58587646484375, - -46.14392852783203, - -49.60614013671875, - -12.832738876342773, - -88.05061340332031, - -75.56246185302734, - -50.76777648925781, - -36.96630096435547, - -26.344043731689453, - -58.90546417236328, - -94.28752899169922, - -22.7802791595459, - -84.3487777709961, - -60.47734451293945, - -41.455806732177734, - -92.84781646728516, - -85.05448913574219, - -30.235260009765625, - -47.33808135986328, - -25.268428802490234, - -78.11959075927734, - -28.330944061279297 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 292.57574462890625, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4, - 29, - 8, - 56, - 42, - 78, - 89, - 64, - 56, - 81, - 85, - 18, - 6, - 39, - 35, - 63, - 87, - 50, - 81, - 89, - 5, - 8, - 37, - 37 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 274.4029846191406, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - -70, - -78, - -65, - -77, - -25, - -47, - -63, - -67, - -66, - -15, - -28, - -75, - -88, - -54, - -13, - -27, - -5, - -18, - -68, - -71, - -50, - -56, - -99, - -99 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 300.3830871582031, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 2D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 272.0996398925781, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 3D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 272.0996398925781, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 4D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 272.0996398925781, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 5D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 272.0996398925781, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 122.352783203125, - 124.8213119506836, - 128.20062255859375, - 128.14801025390625, - 87.18083953857422, - 55.043975830078125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 114.44775390625, - 110.26422882080078, - 133.47344970703125, - 64.96752166748047, - 128.0914764404297, - 101.677734375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 272.0996398925781, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272.0996398925781 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": 272.0996398925781, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272.0996398925781 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 138.580078125, - 166.67791748046875, - 149.91552734375, - 67.6578598022461 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.860228061676025, - 88.23184204101562, - 54.489688873291016, - 64.75027465820312, - 6.855991363525391, - 91.39871215820312, - 41.88857650756836, - 73.65444946289062, - 35.31573486328125, - 48.345428466796875, - 82.39190673828125, - 77.86200714111328, - 93.31141662597656, - 62.48688507080078, - 60.29290008544922, - 13.230599403381348, - 20.535987854003906, - 53.45161819458008, - 11.320085525512695, - 64.75763702392578, - 43.6589469909668, - 0.8374307155609131, - 0.6848266124725342, - 33.504703521728516 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 138.580078125, - 166.67791748046875, - 149.91552734375, - 67.6578598022461 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceL2 float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 4.859375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 0D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 4.859375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 4.859375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 4.859375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - -66.8125, - -53, - -59.59375, - -46.15625, - -49.59375, - -12.8359375, - -88.0625, - -75.5625, - -50.78125, - -36.96875, - -26.34375, - -58.90625, - -94.3125, - -22.78125, - -84.375, - -60.46875, - -41.46875, - -92.875, - -85.0625, - -30.234375, - -47.34375, - -25.265625, - -78.125, - -28.328125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 292.5 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4, - 29, - 8, - 56, - 42, - 78, - 89, - 64, - 56, - 81, - 85, - 18, - 6, - 39, - 35, - 63, - 87, - 50, - 81, - 89, - 5, - 8, - 37, - 37 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 274.5 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - -70, - -78, - -65, - -77, - -25, - -47, - -63, - -67, - -66, - -15, - -28, - -75, - -88, - -54, - -13, - -27, - -5, - -18, - -68, - -71, - -50, - -56, - -99, - -99 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 300.5 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 2D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 3D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 4D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 5D tensor default options", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 122.375, - 124.8125, - 128.25, - 128.125, - 87.1875, - 55.03125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 114.4375, - 110.3125, - 133.5, - 64.9375, - 128, - 101.6875 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 272 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 138.625, - 166.625, - 149.875, - 67.625 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceL2 float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceL2Input": { - "data": [ - 4.859375, - 88.25, - 54.5, - 64.75, - 6.85546875, - 91.375, - 41.875, - 73.625, - 35.3125, - 48.34375, - 82.375, - 77.875, - 93.3125, - 62.5, - 60.28125, - 13.234375, - 20.53125, - 53.4375, - 11.3203125, - 64.75, - 43.65625, - 0.83740234375, - 0.68505859375, - 33.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceL2", - "arguments": [ - { - "input": "reduceL2Input" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceL2Output" - } - ], - "expectedOutputs": { - "reduceL2Output": { - "data": [ - 138.625, - 166.625, - 149.875, - 67.625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_log_sum.json b/tests/wpt_data/conformance/reduce_log_sum.json deleted file mode 100644 index 78a873a..0000000 --- a/tests/wpt_data/conformance/reduce_log_sum.json +++ /dev/null @@ -1,2503 +0,0 @@ -{ - "operation": "reduce_log_sum", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_log_sum.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceLogSum float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 4.167413234710693, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 0D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 4.167413234710693, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 4.167413234710693, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 4.167413234710693, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 64.54827117919922 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 4.167413234710693, - 4.167413234710693 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 1D constant tensor all non-negative default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.039101600646973, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 1D tensor all non-negative default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.039101600646973, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 1D tensor all non-negative integers default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 63, - 82, - 49, - 23, - 98, - 67, - 15, - 9, - 89, - 7, - 69, - 61, - 47, - 50, - 41, - 39, - 58, - 52, - 35, - 83, - 81, - 7, - 34, - 9 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.063048362731934, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 2D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.039101600646973, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 3D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.039101600646973, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 4D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.039101600646973, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 5D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.039101600646973, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 5.593751907348633, - 4.773046016693115, - 5.3115739822387695, - 5.2497639656066895, - 4.973392486572266, - 5.373587131500244 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 5.410027980804443, - 5.367736339569092, - 5.399682998657227, - 4.652334213256836, - 4.744638442993164, - 5.565346717834473 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.039101600646973, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.039101600646973 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": 7.039101600646973, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.039101600646973 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 5.7273993492126465, - 5.64375114440918, - 5.453810214996338, - 5.758983135223389 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.54827117919922, - 97.87423706054688, - 26.529027938842773, - 79.79046630859375, - 50.394989013671875, - 14.578407287597656, - 20.866817474365234, - 32.43873596191406, - 64.91233825683594, - 71.54029846191406, - 11.137068748474121, - 55.079307556152344, - 43.791351318359375, - 13.831947326660156, - 97.39019775390625, - 35.507755279541016, - 52.27586364746094, - 82.83865356445312, - 8.568099021911621, - 0.8337112069129944, - 69.23146057128906, - 3.8541641235351562, - 70.5567398071289, - 71.99264526367188 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 5.7273993492126465, - 5.64375114440918, - 5.453810214996338, - 5.758983135223389 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSum float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 4.16796875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 0D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 4.16796875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 4.16796875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 4.16796875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 1D constant tensor all non-negative default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 1D tensor all non-negative default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 1D tensor all non-negative integers default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 63, - 82, - 49, - 23, - 98, - 67, - 15, - 9, - 89, - 7, - 69, - 61, - 47, - 50, - 41, - 39, - 58, - 52, - 35, - 83, - 81, - 7, - 34, - 9 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 2D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 3D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 4D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 5D tensor default options", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 5.59375, - 4.7734375, - 5.3125, - 5.25, - 4.97265625, - 5.375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 5.41015625, - 5.3671875, - 5.3984375, - 4.65234375, - 4.74609375, - 5.56640625 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 7.0390625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 5.7265625, - 5.64453125, - 5.453125, - 5.7578125 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSum float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumInput": { - "data": [ - 64.5625, - 97.875, - 26.53125, - 79.8125, - 50.40625, - 14.578125, - 20.859375, - 32.4375, - 64.9375, - 71.5625, - 11.140625, - 55.09375, - 43.78125, - 13.828125, - 97.375, - 35.5, - 52.28125, - 82.8125, - 8.5703125, - 0.83349609375, - 69.25, - 3.853515625, - 70.5625, - 72 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSum", - "arguments": [ - { - "input": "reduceLogSumInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumOutput" - } - ], - "expectedOutputs": { - "reduceLogSumOutput": { - "data": [ - 5.7265625, - 5.64453125, - 5.453125, - 5.7578125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_log_sum_exp.json b/tests/wpt_data/conformance/reduce_log_sum_exp.json deleted file mode 100644 index 7801e87..0000000 --- a/tests/wpt_data/conformance/reduce_log_sum_exp.json +++ /dev/null @@ -1,2749 +0,0 @@ -{ - "operation": "reduce_log_sum_exp", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_log_sum_exp.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceLogSumExp float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 0.7974132895469666, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 0D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 0.7974132895469666, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 0.7974132895469666, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 0.7974132895469666, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 0.7974132895469666 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 0.7974132895469666, - 0.7974132895469666 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 10.39477825164795, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 10.39477825164795, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - -4.025670051574707, - -9.444348335266113, - -3.1193981170654297, - -5.943697929382324, - -0.3701804578304291, - -4.397126197814941, - -6.605968475341797, - -5.534277439117432, - -7.361471176147461, - -1.9987547397613525, - -9.093968391418457, - -8.693618774414062, - -8.416788101196289, - -1.010741114616394, - -9.814584732055664, - -9.725259780883789, - -9.157071113586426, - -0.001698818989098072, - -9.963415145874023, - -5.991659641265869, - -6.180599689483643, - -1.2336505651474, - -0.44234341382980347, - -6.990072250366211 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 1.1666961908340454, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 1, - 5, - 7, - 5, - 7, - 5, - 4, - 2, - 1, - 5, - 8, - 2, - 4, - 1, - 4, - 5, - 4, - 8, - 6, - 2, - 7, - 7, - 8, - 5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 9.607237815856934, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - -6, - -3, - -5, - -1, - -9, - -5, - -1, - -2, - -10, - -1, - -5, - -7, - -7, - -3, - -10, - -10, - -8, - -6, - -2, - -6, - -1, - -9, - -5, - -2 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 0.7001367211341858, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 2D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 10.39477825164795, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 3D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 10.39477825164795, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 4D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 10.39477825164795, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 5D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 10.39477825164795, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 8.55212688446045, - 3.985233783721924, - 5.52872896194458, - 9.081488609313965, - 6.996237754821777, - 9.759706497192383 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 4.66951847076416, - 9.08117961883545, - 8.533217430114746, - 9.270560264587402, - 6.450263977050781, - 8.917200088500977 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 10.39477825164795, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.39477825164795 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": 10.39477825164795, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.39477825164795 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 8.563796997070312, - 5.500619411468506, - 9.753945350646973, - 9.20864486694336 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.7974132895469666, - 5.046889781951904, - 8.520371437072754, - 1.4063042402267456, - 0.11882661283016205, - 0.2858544886112213, - 1.9325640201568604, - 3.7939958572387695, - 2.6040232181549072, - 4.937509536743164, - 4.571482181549072, - 0.786512017250061, - 0.21018670499324799, - 9.063042640686035, - 4.099809646606445, - 4.596248626708984, - 0.2549232244491577, - 1.159480094909668, - 6.802876949310303, - 5.234325408935547, - 8.914905548095703, - 9.166799545288086, - 5.717507362365723, - 0.3255050778388977 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 8.563796997070312, - 5.500619411468506, - 9.753945350646973, - 9.20864486694336 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 0.79736328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 0D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 0.79736328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 0.79736328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 0.79736328125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - -4.02734375, - -9.4453125, - -3.119140625, - -5.9453125, - -0.3701171875, - -4.3984375, - -6.60546875, - -5.53515625, - -7.36328125, - -1.9990234375, - -9.09375, - -8.6953125, - -8.4140625, - -1.0107421875, - -9.8125, - -9.7265625, - -9.15625, - -0.0016984939575195312, - -9.9609375, - -5.9921875, - -6.1796875, - -1.2333984375, - -0.4423828125, - -6.98828125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 1.1669921875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 1, - 5, - 7, - 5, - 7, - 5, - 4, - 2, - 1, - 5, - 8, - 2, - 4, - 1, - 4, - 5, - 4, - 8, - 6, - 2, - 7, - 7, - 8, - 5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 9.609375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - -6, - -3, - -5, - -1, - -9, - -5, - -1, - -2, - -10, - -1, - -5, - -7, - -7, - -3, - -10, - -10, - -8, - -6, - -2, - -6, - -1, - -9, - -5, - -2 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 0.7001953125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 2D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 3D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 4D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 5D tensor default options", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 8.5546875, - 3.986328125, - 5.52734375, - 9.078125, - 6.99609375, - 9.7578125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 4.671875, - 9.078125, - 8.5390625, - 9.265625, - 6.44921875, - 8.9140625 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 10.390625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 8.5703125, - 5.5, - 9.75, - 9.203125 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceLogSumExp float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceLogSumExpInput": { - "data": [ - 0.79736328125, - 5.046875, - 8.5234375, - 1.40625, - 0.11883544921875, - 0.285888671875, - 1.9326171875, - 3.794921875, - 2.603515625, - 4.9375, - 4.5703125, - 0.78662109375, - 0.210205078125, - 9.0625, - 4.1015625, - 4.59765625, - 0.2548828125, - 1.1591796875, - 6.8046875, - 5.234375, - 8.9140625, - 9.1640625, - 5.71875, - 0.325439453125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceLogSumExp", - "arguments": [ - { - "input": "reduceLogSumExpInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceLogSumExpOutput" - } - ], - "expectedOutputs": { - "reduceLogSumExpOutput": { - "data": [ - 8.5703125, - 5.5, - 9.75, - 9.203125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_max.json b/tests/wpt_data/conformance/reduce_max.json deleted file mode 100644 index 0188c5e..0000000 --- a/tests/wpt_data/conformance/reduce_max.json +++ /dev/null @@ -1,2379 +0,0 @@ -{ - "operation": "reduce_max", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_max.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceMax float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 32.16658401489258, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 0D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 32.16658401489258, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 32.16658401489258, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 32.16658401489258, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 32.16658401489257 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 32.16658401489258, - 32.16658401489257 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 1D constant tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 99.77313232421875, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 1D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 99.77313232421875, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 2D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 99.77313232421875, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 3D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 99.77313232421875, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 4D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 99.77313232421875, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 5D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 99.77313232421875, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 90.42288208007812, - 75.90379333496094, - 94.99645233154297, - 96.55397033691406, - 99.77313232421875, - 20.253753662109375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 62.504642486572266, - 96.55397033691406, - 99.77313232421875, - -21.557384490966797, - 94.99645233154297, - 37.28493118286133 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 99.77313232421875, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.77313232421875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": 99.77313232421875, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.77313232421875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 90.42288208007812, - 94.99645233154297, - 96.55397033691406, - 99.77313232421875 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.16658401489258, - 90.42288208007812, - -26.341794967651367, - -7.147959232330322, - 75.90379333496094, - -48.2042121887207, - -53.09425354003906, - 66.66099548339844, - -96.16854095458984, - -88.30545043945312, - 94.99645233154297, - 37.28493118286133, - -42.209861755371094, - 96.55397033691406, - 0.8807229995727539, - 62.504642486572266, - 36.650634765625, - 99.77313232421875, - -72.86485290527344, - -46.03200912475586, - 20.253753662109375, - -21.557384490966797, - -51.28727340698242, - -42.58832931518555 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 90.42288208007812, - 94.99645233154297, - 96.55397033691406, - 99.77313232421875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMax float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 32.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 0D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 32.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 32.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 32.15625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 1D constant tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 1D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 2D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 3D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 4D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 5D tensor default options", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 90.4375, - 75.875, - 95, - 96.5625, - 99.75, - 20.25 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 62.5, - 96.5625, - 99.75, - -21.5625, - 95, - 37.28125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 99.75 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 90.4375, - 95, - 96.5625, - 99.75 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMax float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMaxInput": { - "data": [ - 32.15625, - 90.4375, - -26.34375, - -7.1484375, - 75.875, - -48.21875, - -53.09375, - 66.6875, - -96.1875, - -88.3125, - 95, - 37.28125, - -42.21875, - 96.5625, - 0.880859375, - 62.5, - 36.65625, - 99.75, - -72.875, - -46.03125, - 20.25, - -21.5625, - -51.28125, - -42.59375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMax", - "arguments": [ - { - "input": "reduceMaxInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceMaxOutput" - } - ], - "expectedOutputs": { - "reduceMaxOutput": { - "data": [ - 90.4375, - 95, - 96.5625, - 99.75 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_mean.json b/tests/wpt_data/conformance/reduce_mean.json deleted file mode 100644 index d3f11cd..0000000 --- a/tests/wpt_data/conformance/reduce_mean.json +++ /dev/null @@ -1,2751 +0,0 @@ -{ - "operation": "reduce_mean", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_mean.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceMean float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 95.84498596191406, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 0D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 95.84498596191406, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 95.84498596191406, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 95.84498596191406, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - -95.84498596191406, - 95.84498596191405 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - -95.84498596191406, - 95.84498596191405 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 40.31047439575195, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 40.31047439575195, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - -37.14686965942383, - -44.500423431396484, - -6.1265482902526855, - -6.321793079376221, - -76.53897857666016, - -4.137692928314209, - -20.76356315612793, - -38.749176025390625, - -36.81039810180664, - -26.274377822875977, - -12.566819190979004, - -55.28200912475586, - -20.69756507873535, - -34.19586181640625, - -45.36003112792969, - -34.996192932128906, - -67.84308624267578, - -0.7434244155883789, - -21.981258392333984, - -61.31269454956055, - -58.598960876464844, - -76.02980041503906, - -23.91740608215332, - -22.94187355041504 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": -34.74319839477539, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 42, - 24, - 44, - 38, - 82, - 93, - 64, - 40, - 48, - 78, - 81, - 59, - 45, - 18, - 3, - 77, - 60, - 19, - 66, - 8, - 21, - 19, - 62, - 71 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 48.41666793823242, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - -73, - -8, - -55, - -73, - -61, - -54, - -5, - -39, - -66, - -53, - -57, - -39, - -62, - -98, - -36, - -1, - -75, - -8, - -71, - -72, - -67, - -16, - -21, - -31 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": -47.54166793823242, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 2D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 40.31047439575195, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 3D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 40.31047439575195, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 4D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 40.31047439575195, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 5D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 40.31047439575195, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 45.46687316894531, - 49.670711517333984, - 50.94768142700195, - 44.734745025634766, - 27.777833938598633, - 23.264999389648438 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 54.82453536987305, - 40.251548767089844, - 22.060470581054688, - 48.58541488647461, - 51.343353271484375, - 24.797523498535156 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 40.31047439575195, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.31047439575195 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": 40.31047439575195, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.31047439575195 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 52.287559509277344, - 45.10261917114258, - 47.640018463134766, - 16.211700439453125 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.84498596191406, - 75.6937026977539, - 1.5417721271514893, - 8.787034034729004, - 70.08280181884766, - 13.784331321716309, - 20.006067276000977, - 94.80963897705078, - 25.82918930053711, - 94.13260650634766, - 67.72958374023438, - 16.09935188293457, - 92.1943359375, - 11.567352294921875, - 52.70549774169922, - 22.471792221069336, - 3.662332534790039, - 20.210277557373047, - 58.56523132324219, - 28.673492431640625, - 42.13419723510742, - 21.63775062561035, - 14.160697937011719, - 15.127351760864258 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 52.287559509277344, - 45.10261917114258, - 47.640018463134766, - 16.211700439453125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMean float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 95.875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 0D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 95.875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 95.875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 95.875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - -37.15625, - -44.5, - -6.125, - -6.3203125, - -76.5625, - -4.13671875, - -20.765625, - -38.75, - -36.8125, - -26.28125, - -12.5703125, - -55.28125, - -20.703125, - -34.1875, - -45.375, - -35, - -67.8125, - -0.74365234375, - -21.984375, - -61.3125, - -58.59375, - -76, - -23.921875, - -22.9375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - -34.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 42, - 24, - 44, - 38, - 82, - 93, - 64, - 40, - 48, - 78, - 81, - 59, - 45, - 18, - 3, - 77, - 60, - 19, - 66, - 8, - 21, - 19, - 62, - 71 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 48.40625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - -73, - -8, - -55, - -73, - -61, - -54, - -5, - -39, - -66, - -53, - -57, - -39, - -62, - -98, - -36, - -1, - -75, - -8, - -71, - -72, - -67, - -16, - -21, - -31 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - -47.53125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 2D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 3D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 4D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 5D tensor default options", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 45.46875, - 49.65625, - 50.9375, - 44.75, - 27.78125, - 23.265625 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 54.84375, - 40.25, - 22.0625, - 48.59375, - 51.34375, - 24.796875 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 40.3125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 52.28125, - 45.09375, - 47.625, - 16.203125 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMean float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMeanInput": { - "data": [ - 95.875, - 75.6875, - 1.5419921875, - 8.7890625, - 70.0625, - 13.78125, - 20, - 94.8125, - 25.828125, - 94.125, - 67.75, - 16.09375, - 92.1875, - 11.5703125, - 52.71875, - 22.46875, - 3.662109375, - 20.203125, - 58.5625, - 28.671875, - 42.125, - 21.640625, - 14.1640625, - 15.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMean", - "arguments": [ - { - "input": "reduceMeanInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceMeanOutput" - } - ], - "expectedOutputs": { - "reduceMeanOutput": { - "data": [ - 52.28125, - 45.09375, - 47.625, - 16.203125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_min.json b/tests/wpt_data/conformance/reduce_min.json deleted file mode 100644 index 4b4b72d..0000000 --- a/tests/wpt_data/conformance/reduce_min.json +++ /dev/null @@ -1,2379 +0,0 @@ -{ - "operation": "reduce_min", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_min.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceMin float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -58.76195526123047, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 0D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -58.76195526123047, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -58.76195526123047, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -58.76195526123047, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - 58.76195526123047 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -58.76195526123047, - 58.76195526123047 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 1D constant tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -87.9623031616211, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 1D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -87.9623031616211, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 2D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -87.9623031616211, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 3D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -87.9623031616211, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 4D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -87.9623031616211, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 5D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -87.9623031616211, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9623031616211, - -39.50931167602539, - -53.747413635253906, - -31.713542938232422, - -84.4076919555664, - -55.97655487060547 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -59.40851974487305, - -84.4076919555664, - -53.747413635253906 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -87.9623031616211, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9623031616211 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": -87.9623031616211, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9623031616211 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9623031616211, - -53.747413635253906, - -84.4076919555664, - -55.97655487060547 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.76195526123047, - -87.9623031616211, - -70.13690185546875, - -53.61766815185547, - -39.50931167602539, - 76.48815155029297, - -18.705087661743164, - 44.78261947631836, - 30.70233917236328, - 61.46361541748047, - 77.84043884277344, - -53.747413635253906, - -31.713542938232422, - -9.735438346862793, - 77.9365234375, - 99.01705932617188, - 73.39929962158203, - 92.0845947265625, - -59.40851974487305, - -84.4076919555664, - 75.88834381103516, - 96.02651977539062, - -55.97655487060547, - -1.7911018133163452 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9623031616211, - -53.747413635253906, - -84.4076919555664, - -55.97655487060547 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceMin float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -58.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 0D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -58.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -58.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -58.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 1D constant tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 1D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 2D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 3D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 4D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 5D tensor default options", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375, - -39.5, - -53.75, - -31.71875, - -84.4375, - -55.96875 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -59.40625, - -84.4375, - -53.75 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375, - -53.75, - -84.4375, - -55.96875 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceMin float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceMinInput": { - "data": [ - -58.75, - -87.9375, - -70.125, - -53.625, - -39.5, - 76.5, - -18.703125, - 44.78125, - 30.703125, - 61.46875, - 77.8125, - -53.75, - -31.71875, - -9.734375, - 77.9375, - 99, - 73.375, - 92.0625, - -59.40625, - -84.4375, - 75.875, - 96, - -55.96875, - -1.791015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceMin", - "arguments": [ - { - "input": "reduceMinInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceMinOutput" - } - ], - "expectedOutputs": { - "reduceMinOutput": { - "data": [ - -87.9375, - -53.75, - -84.4375, - -55.96875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_product.json b/tests/wpt_data/conformance/reduce_product.json deleted file mode 100644 index ba42f9d..0000000 --- a/tests/wpt_data/conformance/reduce_product.json +++ /dev/null @@ -1,2379 +0,0 @@ -{ - "operation": "reduce_product", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_product.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceProduct float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": -68.75911712646484, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 0D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": -68.75911712646484, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": -68.75911712646484, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": -68.75911712646484, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - -68.75911712646483 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -68.75911712646484, - -68.75911712646483 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 1D constant tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": 1.5855958784642327e+37, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 1D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": 1.5855958784642327e+37, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 2D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": 1.5855958784642327e+37, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 3D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": 1.5855958784642327e+37, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 4D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": 1.5855958784642327e+37, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 5D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": 1.5855958784642327e+37, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - 7519895, - -1292816.375, - 2441721.75, - -110637.7734375, - -7380313.5, - -818030.5 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - 4227263.5, - -446960.5625, - 3811296.75, - 1280298.5, - -1343475.375, - 1280118.75 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": 1.5855958784642327e+37, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - 1.5855958784642327e+37 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": 1.5855958784642327e+37, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - 1.5855958784642327e+37 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -3638925568, - 6523364352, - -414643360, - 1610916352 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75911712646484, - 99.44961547851562, - 24.86055564880371, - -44.23515319824219, - -22.699743270874023, - 79.97555541992188, - 14.4650239944458, - 49.23109436035156, - 30.058706283569336, - 69.45106506347656, - -20.15709686279297, - -58.0255126953125, - 51.896610260009766, - -2.020799160003662, - 39.392974853515625, - 26.78073501586914, - -97.97651672363281, - 48.66154479980469, - -85.19523620605469, - -18.16986083984375, - 64.83759307861328, - -14.95883846282959, - -74.50932312011719, - -11.319679260253906 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -3638925568, - 6523364352, - -414643360, - 1610916352 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceProduct float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -68.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 0D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -68.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -68.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - -68.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -68.75 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 1D constant tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 1D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 2D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 3D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 4D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 5D tensor default options", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.3759765625, - -4.9140625, - -0.332763671875, - -3.849609375, - -0.53759765625, - 0.0980224609375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - 1.2744140625, - 1.6640625, - -1.1962890625, - -1.95703125, - -0.0312042236328125, - 0.80615234375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - -0.1248779296875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - 1.666015625, - -0.369384765625, - 3.64453125, - 0.0556640625 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceProduct float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceProductInput": { - "data": [ - 1.578125, - 0.8291015625, - 0.81640625, - -0.35205078125, - -1.390625, - -1.892578125, - -1.466796875, - 1.2734375, - -0.8349609375, - -1.912109375, - 0.5244140625, - -0.3974609375, - -1.90625, - 1.4794921875, - 1.134765625, - 1.203125, - -0.9755859375, - 0.68212890625, - -0.6015625, - -1.3427734375, - -1.41015625, - 1.16015625, - 0.0347900390625, - -1.72265625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceProduct", - "arguments": [ - { - "input": "reduceProductInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceProductOutput" - } - ], - "expectedOutputs": { - "reduceProductOutput": { - "data": [ - 1.666015625, - -0.369384765625, - 3.64453125, - 0.0556640625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_sum.json b/tests/wpt_data/conformance/reduce_sum.json deleted file mode 100644 index d6224a8..0000000 --- a/tests/wpt_data/conformance/reduce_sum.json +++ /dev/null @@ -1,2751 +0,0 @@ -{ - "operation": "reduce_sum", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_sum.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceSum float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 69.6038589477539, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 0D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 69.6038589477539, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 69.6038589477539, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 69.6038589477539, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 1D constant tensor empty axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 69.6038589477538 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 69.6038589477539, - 69.6038589477538 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1313.87939453125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1313.87939453125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - -51.77016830444336, - -34.46467971801758, - -40.98350524902344, - -83.34922790527344, - -67.67525482177734, - -18.7031192779541, - -20.28106117248535, - -20.12305450439453, - -83.63451385498047, - -23.651084899902344, - -10.208438873291016, - -36.2129020690918, - -76.26201629638672, - -9.094745635986328, - -53.889339447021484, - -67.52340698242188, - -71.14580535888672, - -82.04484558105469, - -96.29924774169922, - -68.46700286865234, - -26.107192993164062, - -68.0182113647461, - -4.8330769538879395, - -48.900699615478516 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": -1163.642578125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 56, - 90, - 67, - 33, - 20, - 58, - 22, - 15, - 86, - 79, - 59, - 99, - 16, - 95, - 67, - 11, - 60, - 89, - 50, - 57, - 77, - 89, - 10, - 2 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1307, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - -55, - -36, - -74, - -17, - -67, - -95, - -3, - -67, - -95, - -13, - -45, - -9, - -33, - -98, - -86, - -11, - -70, - -44, - -31, - -68, - -79, - -24, - -60, - -36 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": -1216, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 2D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1313.87939453125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 3D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1313.87939453125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 4D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1313.87939453125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 5D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1313.87939453125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 210.44241333007812, - 104.54179382324219, - 226.2177734375, - 239.025390625, - 260.405029296875, - 273.2470397949219 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 179.63900756835938, - 260.37457275390625, - 219.3611297607422, - 246.83712768554688, - 157.4895782470703, - 250.1780242919922 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1313.87939453125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1313.87939453125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": 1313.87939453125, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1313.87939453125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 355.21942138671875, - 185.98255920410156, - 362.3598937988281, - 410.3175354003906 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.6038589477539, - 99.17485809326172, - 32.78234100341797, - 8.881362915039062, - 16.094295501708984, - 11.80689525604248, - 32.64223861694336, - 43.99836349487305, - 77.01776885986328, - 79.79425811767578, - 45.00794982910156, - 24.397796630859375, - 57.502685546875, - 57.60173034667969, - 80.26985931396484, - 43.65110778808594, - 87.5036849975586, - 94.50203704833984, - 35.54289627075195, - 42.856414794921875, - 88.58631896972656, - 98.85772705078125, - 25.626853942871094, - 60.1761360168457 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 355.21942138671875, - 185.98255920410156, - 362.3598937988281, - 410.3175354003906 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSum float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 69.625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 0D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 69.625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 69.625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 69.625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - -51.78125, - -34.46875, - -40.96875, - -83.375, - -67.6875, - -18.703125, - -20.28125, - -20.125, - -83.625, - -23.65625, - -10.2109375, - -36.21875, - -76.25, - -9.09375, - -53.875, - -67.5, - -71.125, - -82.0625, - -96.3125, - -68.4375, - -26.109375, - -68, - -4.83203125, - -48.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - -1164 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 56, - 90, - 67, - 33, - 20, - 58, - 22, - 15, - 86, - 79, - 59, - 99, - 16, - 95, - 67, - 11, - 60, - 89, - 50, - 57, - 77, - 89, - 10, - 2 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1307 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - -55, - -36, - -74, - -17, - -67, - -95, - -3, - -67, - -95, - -13, - -45, - -9, - -33, - -98, - -86, - -11, - -70, - -44, - -31, - -68, - -79, - -24, - -60, - -36 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - -1216 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 2D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 3D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 4D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 5D tensor default options", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 210.5, - 104.5625, - 226.25, - 239, - 260.5, - 273.25 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 179.625, - 260.5, - 219.375, - 246.875, - 157.5, - 250.125 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 1314 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 355.25, - 186, - 362.25, - 410.25 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSum float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumInput": { - "data": [ - 69.625, - 99.1875, - 32.78125, - 8.8828125, - 16.09375, - 11.8046875, - 32.65625, - 44, - 77, - 79.8125, - 45, - 24.390625, - 57.5, - 57.59375, - 80.25, - 43.65625, - 87.5, - 94.5, - 35.53125, - 42.84375, - 88.5625, - 98.875, - 25.625, - 60.1875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSum", - "arguments": [ - { - "input": "reduceSumInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceSumOutput" - } - ], - "expectedOutputs": { - "reduceSumOutput": { - "data": [ - 355.25, - 186, - 362.25, - 410.25 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reduce_sum_square.json b/tests/wpt_data/conformance/reduce_sum_square.json deleted file mode 100644 index 1e80365..0000000 --- a/tests/wpt_data/conformance/reduce_sum_square.json +++ /dev/null @@ -1,2799 +0,0 @@ -{ - "operation": "reduce_sum_square", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reduce_sum_square.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reduceSumSquare float32 0D constant tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 2762.71484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 0D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 2762.71484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 2762.71484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 0D tensor empty axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 2762.71484375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73275.859375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73275.859375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - -21.45201301574707, - -57.30725860595703, - -72.8390121459961, - -0.059761520475149155, - -71.73678588867188, - -44.61909103393555, - -43.12002182006836, - -91.3373794555664, - -33.17243957519531, - -48.555931091308594, - -95.6286392211914, - -20.876630783081055, - -16.690837860107422, - -39.52110290527344, - -7.5107855796813965, - -90.59027099609375, - -42.21683120727539, - -76.74274444580078, - -98.22420501708984, - -60.272953033447266, - -74.73202514648438, - -8.543684005737305, - -59.888736724853516, - -17.99894142150879 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 80052.015625, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52, - 48, - 2, - 66, - 30, - 39, - 14, - 23, - 81, - 94, - 78, - 64, - 38, - 16, - 63, - 11, - 46, - 95, - 17, - 47, - 40, - 53, - 87, - 43 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 71347, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - -10, - -60, - -69, - -88, - -35, - -84, - -74, - -42, - -93, - -26, - -40, - -55, - -92, - -26, - -39, - -30, - -61, - -16, - -16, - -36, - -9, - -89, - -45, - -29 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73634, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 1D tensor with empty axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 2, - 3 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 4, - 9 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 2D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73275.859375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 3D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73275.859375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 4D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73275.859375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 5D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73275.859375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 3D tensor options.axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 9709.013671875, - 10817.7685546875, - 14548.470703125, - 16385.8515625, - 9287.357421875, - 12527.3974609375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 4D tensor options.axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 8585.87109375, - 7700.654296875, - 19889.1796875, - 7113.0439453125, - 16775.708984375, - 13211.3994140625 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73275.859375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 73275.859375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": 73275.859375, - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 73275.859375 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 12302.474609375, - 22772.77734375, - 26919.09765625, - 11281.5068359375 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float32 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5615348815918, - 2.6261062622070312, - 82.04877471923828, - 14.401411056518555, - 33.96051788330078, - 83.9383773803711, - 47.445045471191406, - 19.177289962768555, - 13.493006706237793, - 44.152381896972656, - 86.53118133544922, - 70.20919799804688, - 25.67262840270996, - 79.73770141601562, - 66.42284393310547, - 70.40363311767578, - 13.503327369689941, - 41.225399017333984, - 6.654552936553955, - 85.79743957519531, - 89.91349029541016, - 53.55647277832031, - 39.48537063598633, - 3.9460408687591553 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 12302.474609375, - 22772.77734375, - 26919.09765625, - 11281.5068359375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 0D constant tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 2762 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 0D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 2762 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 0D constant tensor empty axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 2762 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 0D tensor empty axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 52.5625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - }, - "constant": false - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 2762 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 1D constant tensor all positive default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 1D tensor all positive default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 1D tensor all negative default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - -1.646484375, - -1.2998046875, - -0.57763671875, - -0.5869140625, - -1.740234375, - -0.2020263671875, - -1.28125, - -1.92578125, - -0.63671875, - -0.5068359375, - -1.9462890625, - -1.5078125, - -1.212890625, - -0.6669921875, - -1.1337890625, - -0.450439453125, - -0.7978515625, - -0.2196044921875, - -0.221923828125, - -0.1463623046875, - -0.75537109375, - -1.0830078125, - -1.3740234375, - -0.059600830078125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 28.015625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 1D tensor all positive integers default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 2, - 4, - 2, - 6, - 3, - 9, - 1, - 2, - 1, - 4, - 7, - 6, - 3, - 1, - 3, - 1, - 6, - 5, - 1, - 4, - 4, - 3, - 8, - 3 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 453 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 1D tensor all negative integers default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - -10, - -6, - -9, - -8, - -3, - -4, - -4, - -2, - -3, - -2, - -4, - -5, - -2, - -2, - -3, - -3, - -1, - -6, - -1, - -3, - -9, - -8, - -5, - -2 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 627 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 1D tensor with empty axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 2, - 3 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 4, - 9 - ], - "descriptor": { - "shape": [ - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 2D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 3D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 4D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 5D tensor default options", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 3D tensor options.axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [ - 2 - ] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 4.94140625, - 4.30859375, - 1.4765625, - 3.458984375, - 11.359375, - 4.97265625 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 4D tensor options.axes", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [ - 0, - 2 - ] - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 3.72265625, - 5.4453125, - 5.75, - 5.00390625, - 8.6796875, - 1.9130859375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 3D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 3D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 4D tensor options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "keepDimensions": false - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 4D tensor options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "keepDimensions": true - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 30.515625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 4D tensor options.axes with options.keepDimensions=false", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": false - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 8.828125, - 1.8974609375, - 9.625, - 10.1640625 - ], - "descriptor": { - "shape": [ - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reduceSumSquare float16 4D tensor options.axes with options.keepDimensions=true", - "graph": { - "inputs": { - "reduceSumSquareInput": { - "data": [ - 1.3935546875, - 1.20703125, - 1.18359375, - 0.3759765625, - 0.69677734375, - 0.75244140625, - 1.068359375, - 1.455078125, - 0.87890625, - 0.2149658203125, - 0.7998046875, - 0.135986328125, - 1.099609375, - 0.77685546875, - 1.1025390625, - 0.65625, - 1.703125, - 1.6025390625, - 1.5185546875, - 1.892578125, - 0.8408203125, - 1.2294921875, - 1.529296875, - 0.64404296875 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reduceSumSquare", - "arguments": [ - { - "input": "reduceSumSquareInput" - }, - { - "options": { - "axes": [ - 1, - 3 - ], - "keepDimensions": true - } - } - ], - "outputs": "reduceSumSquareOutput" - } - ], - "expectedOutputs": { - "reduceSumSquareOutput": { - "data": [ - 8.828125, - 1.8974609375, - 9.625, - 10.1640625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/relu.json b/tests/wpt_data/conformance/relu.json deleted file mode 100644 index 5a223f6..0000000 --- a/tests/wpt_data/conformance/relu.json +++ /dev/null @@ -1,1347 +0,0 @@ -{ - "operation": "relu", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/relu.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "relu float32 1D constant tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - -71.0915756225586, - -82.74703216552734, - -26.81442642211914, - -99.16788482666016, - -35.71083450317383, - 18.361658096313477, - -37.36091613769531, - -52.8386116027832, - -10.408374786376953, - 60.6029167175293, - -13.64419937133789, - -76.5425033569336, - -8.132338523864746, - 51.51447296142578, - -51.63370132446289, - -64.56800079345703, - -5.093302249908447, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - 0, - 0, - 0, - 0, - 0, - 18.361658096313477, - 0, - 0, - 0, - 60.6029167175293, - 0, - 0, - 0, - 51.51447296142578, - 0, - 0, - 0, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "relu float32 0D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.04724884033203 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.04724884033203 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "relu float32 1D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - -71.0915756225586, - -82.74703216552734, - -26.81442642211914, - -99.16788482666016, - -35.71083450317383, - 18.361658096313477, - -37.36091613769531, - -52.8386116027832, - -10.408374786376953, - 60.6029167175293, - -13.64419937133789, - -76.5425033569336, - -8.132338523864746, - 51.51447296142578, - -51.63370132446289, - -64.56800079345703, - -5.093302249908447, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - 0, - 0, - 0, - 0, - 0, - 18.361658096313477, - 0, - 0, - 0, - 60.6029167175293, - 0, - 0, - 0, - 51.51447296142578, - 0, - 0, - 0, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "relu float32 2D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - -71.0915756225586, - -82.74703216552734, - -26.81442642211914, - -99.16788482666016, - -35.71083450317383, - 18.361658096313477, - -37.36091613769531, - -52.8386116027832, - -10.408374786376953, - 60.6029167175293, - -13.64419937133789, - -76.5425033569336, - -8.132338523864746, - 51.51447296142578, - -51.63370132446289, - -64.56800079345703, - -5.093302249908447, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - 0, - 0, - 0, - 0, - 0, - 18.361658096313477, - 0, - 0, - 0, - 60.6029167175293, - 0, - 0, - 0, - 51.51447296142578, - 0, - 0, - 0, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "relu float32 3D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - -71.0915756225586, - -82.74703216552734, - -26.81442642211914, - -99.16788482666016, - -35.71083450317383, - 18.361658096313477, - -37.36091613769531, - -52.8386116027832, - -10.408374786376953, - 60.6029167175293, - -13.64419937133789, - -76.5425033569336, - -8.132338523864746, - 51.51447296142578, - -51.63370132446289, - -64.56800079345703, - -5.093302249908447, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - 0, - 0, - 0, - 0, - 0, - 18.361658096313477, - 0, - 0, - 0, - 60.6029167175293, - 0, - 0, - 0, - 51.51447296142578, - 0, - 0, - 0, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "relu float32 4D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - -71.0915756225586, - -82.74703216552734, - -26.81442642211914, - -99.16788482666016, - -35.71083450317383, - 18.361658096313477, - -37.36091613769531, - -52.8386116027832, - -10.408374786376953, - 60.6029167175293, - -13.64419937133789, - -76.5425033569336, - -8.132338523864746, - 51.51447296142578, - -51.63370132446289, - -64.56800079345703, - -5.093302249908447, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - 0, - 0, - 0, - 0, - 0, - 18.361658096313477, - 0, - 0, - 0, - 60.6029167175293, - 0, - 0, - 0, - 51.51447296142578, - 0, - 0, - 0, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "relu float32 5D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - -71.0915756225586, - -82.74703216552734, - -26.81442642211914, - -99.16788482666016, - -35.71083450317383, - 18.361658096313477, - -37.36091613769531, - -52.8386116027832, - -10.408374786376953, - 60.6029167175293, - -13.64419937133789, - -76.5425033569336, - -8.132338523864746, - 51.51447296142578, - -51.63370132446289, - -64.56800079345703, - -5.093302249908447, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.04724884033203, - 2.2503609657287598, - 80.73938751220703, - 63.9039192199707, - 77.67340850830078, - 0, - 0, - 0, - 0, - 0, - 18.361658096313477, - 0, - 0, - 0, - 60.6029167175293, - 0, - 0, - 0, - 51.51447296142578, - 0, - 0, - 0, - 15.354103088378906, - 90.03858947753906 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "relu float16 1D constant tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - -71.0625, - -82.75, - -26.8125, - -99.1875, - -35.71875, - 18.359375, - -37.375, - -52.84375, - -10.40625, - 60.59375, - -13.640625, - -76.5625, - -8.1328125, - 51.5, - -51.625, - -64.5625, - -5.09375, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - 0, - 0, - 0, - 0, - 0, - 18.359375, - 0, - 0, - 0, - 60.59375, - 0, - 0, - 0, - 51.5, - 0, - 0, - 0, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "relu float16 0D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.0625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.0625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "relu float16 1D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - -71.0625, - -82.75, - -26.8125, - -99.1875, - -35.71875, - 18.359375, - -37.375, - -52.84375, - -10.40625, - 60.59375, - -13.640625, - -76.5625, - -8.1328125, - 51.5, - -51.625, - -64.5625, - -5.09375, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - 0, - 0, - 0, - 0, - 0, - 18.359375, - 0, - 0, - 0, - 60.59375, - 0, - 0, - 0, - 51.5, - 0, - 0, - 0, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "relu float16 2D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - -71.0625, - -82.75, - -26.8125, - -99.1875, - -35.71875, - 18.359375, - -37.375, - -52.84375, - -10.40625, - 60.59375, - -13.640625, - -76.5625, - -8.1328125, - 51.5, - -51.625, - -64.5625, - -5.09375, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - 0, - 0, - 0, - 0, - 0, - 18.359375, - 0, - 0, - 0, - 60.59375, - 0, - 0, - 0, - 51.5, - 0, - 0, - 0, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "relu float16 3D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - -71.0625, - -82.75, - -26.8125, - -99.1875, - -35.71875, - 18.359375, - -37.375, - -52.84375, - -10.40625, - 60.59375, - -13.640625, - -76.5625, - -8.1328125, - 51.5, - -51.625, - -64.5625, - -5.09375, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - 0, - 0, - 0, - 0, - 0, - 18.359375, - 0, - 0, - 0, - 60.59375, - 0, - 0, - 0, - 51.5, - 0, - 0, - 0, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "relu float16 4D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - -71.0625, - -82.75, - -26.8125, - -99.1875, - -35.71875, - 18.359375, - -37.375, - -52.84375, - -10.40625, - 60.59375, - -13.640625, - -76.5625, - -8.1328125, - 51.5, - -51.625, - -64.5625, - -5.09375, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - 0, - 0, - 0, - 0, - 0, - 18.359375, - 0, - 0, - 0, - 60.59375, - 0, - 0, - 0, - 51.5, - 0, - 0, - 0, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "relu float16 5D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - -71.0625, - -82.75, - -26.8125, - -99.1875, - -35.71875, - 18.359375, - -37.375, - -52.84375, - -10.40625, - 60.59375, - -13.640625, - -76.5625, - -8.1328125, - 51.5, - -51.625, - -64.5625, - -5.09375, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 79.0625, - 2.25, - 80.75, - 63.90625, - 77.6875, - 0, - 0, - 0, - 0, - 0, - 18.359375, - 0, - 0, - 0, - 60.59375, - 0, - 0, - 0, - 51.5, - 0, - 0, - 0, - 15.3515625, - 90.0625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "relu int8 4D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - -128, - 0, - 126, - 127 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 0, - 0, - 126, - 127 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "relu int32 4D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - -2147483648, - 0, - 2147483646, - 2147483647 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - 0, - 0, - 2147483646, - 2147483647 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "relu int64 4D tensor", - "graph": { - "inputs": { - "reluInput": { - "data": [ - "-9223372036854775807n", - "-100n", - "0n", - "100n", - "9223372036854775807n" - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 5 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "relu", - "arguments": [ - { - "input": "reluInput" - } - ], - "outputs": "reluOutput" - } - ], - "expectedOutputs": { - "reluOutput": { - "data": [ - "0n", - "0n", - "0n", - "100n", - "9223372036854775807n" - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 5 - ], - "dataType": "int64" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/reshape.json b/tests/wpt_data/conformance/reshape.json deleted file mode 100644 index a551d8a..0000000 --- a/tests/wpt_data/conformance/reshape.json +++ /dev/null @@ -1,6323 +0,0 @@ -{ - "operation": "reshape", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/reshape.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "reshape float32 tensor to a new shape (reorder all dimensions)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 2, - 3 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape float32 constant tensor to a new shape (reorder all dimensions)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 2, - 3 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape float32 tensor to a new shape (reduce dimensions)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 1, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 1, - 1, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape float32 tensor to a new shape (extend dimensions)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 2, - 2, - 3, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape float32 tensor to a new shape (4D to 4D)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 2, - 3, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 2, - 3, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape float32 tensor to 1D tensor", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 2D tensor by eliminating one dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 3D tensor by eliminating one dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 1, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 3D tensor by eliminating two dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 24, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 4D tensor by eliminating two dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 4, - 1, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 4D tensor by eliminating all dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -33.82555389404297 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -33.82555389404297 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 5D tensor by eliminating four dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 24, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 2D tensor by eliminating 1st dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 3D tensor by eliminating 2nd and 3rd dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24, - 1, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 4D tensor by eliminating 1st and 4th dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 4, - 6, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 5D tensor by eliminating 2nd and 3rd dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 12, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 12, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 12, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (squeeze) float32 5D tensor by eliminating 1st, 2nd and 5th dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 24, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 0D tensor to 4D", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -33.82555389404297 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 1, - 1, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -33.82555389404297 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 1D tensor by adding one dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 1D tensor by adding two dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 24, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 1D tensor to 5D", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 1, - 1, - 24, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 24, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 1D tensor by adding 2nd and 3rd dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24, - 1, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 2D tensor by adding one dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 1, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 1, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 2D tensor by adding two dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 4, - 1, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 4, - 1, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 2D tensor by adding 1st dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 2D tensor by adding 1st and 4th dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 4, - 6, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 4, - 6, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 3D tensor by adding 2nd and 3rd dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 12, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 1, - 1, - 12, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 12, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 4D tensor by adding 2nd dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 1, - 2, - 2, - 3 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float32 5D tensor by adding 4th dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 1, - 4, - 1, - 3, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (flatten) float32 3D tensor to 2D", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 12 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (flatten) float32 4D to 2D", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (flatten) float32 4D to 2D exclusive 1st dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape (flatten) float32 4D to 2D exclusive 4th dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0561466217041, - 99.56941986083984, - 88.04620361328125, - -91.87507629394531, - -23.7972354888916, - -91.28665161132812, - -63.15204620361328, - 12.0669527053833, - -96.1172866821289, - -44.77365493774414, - -80.08650970458984, - -64.43756866455078, - 27.64195442199707, - -96.86306762695312, - 83.6834716796875, - 50.599483489990234, - -20.18765640258789, - -1.3904608488082886, - -96.93603515625, - 65.34143829345703, - 34.835994720458984, - 62.01485824584961, - -2.8698415756225586, - 27.903749465942383 - ], - "descriptor": { - "shape": [ - 24, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "reshape float16 tensor to a new shape (reorder all dimensions)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 2, - 3 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape float16 constant tensor to a new shape (reorder all dimensions)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 2, - 3 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape float16 tensor to a new shape (reduce dimensions)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 1, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 1, - 1, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape float16 tensor to a new shape (extend dimensions)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 2, - 2, - 3, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape float16 tensor to a new shape (4D to 4D)", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 2, - 3, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 2, - 3, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape float16 tensor to 1D tensor", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 3, - 2, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 2D tensor by eliminating one dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 3D tensor by eliminating one dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 1, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 3D tensor by eliminating two dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 24, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 4D tensor by eliminating two dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 4, - 1, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 4D tensor by eliminating all dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -33.8125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -33.8125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 5D tensor by eliminating four dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 24, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 2D tensor by eliminating 1st dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 3D tensor by eliminating 2nd and 3rd dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24, - 1, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 4D tensor by eliminating 1st and 4th dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 4, - 6, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 5D tensor by eliminating 2nd and 3rd dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 12, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 12, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 12, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (squeeze) float16 5D tensor by eliminating 1st, 2nd and 5th dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 24, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 0D tensor to 4D", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -33.8125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 1, - 1, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -33.8125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 1D tensor by adding one dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 1D tensor by adding two dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 24, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 1D tensor to 5D", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 1, - 1, - 24, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 24, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 1D tensor by adding 2nd and 3rd dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24, - 1, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 2D tensor by adding one dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 1, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 1, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 2D tensor by adding two dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 4, - 1, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 4, - 1, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 2D tensor by adding 1st dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 2D tensor by adding 1st and 4th dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 4, - 6, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 4, - 6, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 3D tensor by adding 2nd and 3rd dimensions", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 12, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 1, - 1, - 12, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 12, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 4D tensor by adding 2nd dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 1, - 2, - 2, - 3 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (unsqueeze) float16 5D tensor by adding 4th dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 3, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 1, - 4, - 1, - 3, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (flatten) float16 3D tensor to 2D", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 2, - 12 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (flatten) float16 4D to 2D", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 4, - 6 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (flatten) float16 4D to 2D exclusive 1st dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 1, - 24 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 1, - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "reshape (flatten) float16 4D to 2D exclusive 4th dimension", - "graph": { - "inputs": { - "reshapeInput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "reshape", - "arguments": [ - { - "input": "reshapeInput" - }, - { - "newShape": [ - 24, - 1 - ] - } - ], - "outputs": "reshapeOutput" - } - ], - "expectedOutputs": { - "reshapeOutput": { - "data": [ - -30.0625, - 99.5625, - 88.0625, - -91.875, - -23.796875, - -91.3125, - -63.15625, - 12.0703125, - -96.125, - -44.78125, - -80.0625, - -64.4375, - 27.640625, - -96.875, - 83.6875, - 50.59375, - -20.1875, - -1.390625, - -96.9375, - 65.3125, - 34.84375, - 62, - -2.869140625, - 27.90625 - ], - "descriptor": { - "shape": [ - 24, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/sigmoid.json b/tests/wpt_data/conformance/sigmoid.json deleted file mode 100644 index aa7664a..0000000 --- a/tests/wpt_data/conformance/sigmoid.json +++ /dev/null @@ -1,1183 +0,0 @@ -{ - "operation": "sigmoid", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/sigmoid.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "sigmoid float32 1D constant tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.37699514627456665, - -0.6848450899124146, - -3.5469970703125, - 4.431885719299316, - -0.93868488073349, - 4.591195583343506, - -2.5067026615142822, - 1.5669522285461426, - -2.596473217010498, - -3.64729380607605, - 2.6785237789154053, - -3.1051602363586426, - 2.2585017681121826, - -0.2865157723426819, - 4.64043664932251, - 1.0606156587600708, - -3.536252498626709, - 0.4410440921783447, - 4.791460037231445, - 2.0745489597320557, - 0.8354471325874329, - -5.433595657348633, - -4.184835910797119, - -2.484982490539551 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.4068518280982971, - 0.33518078923225403, - 0.028004197403788567, - 0.9882476925849915, - 0.28116607666015625, - 0.9899610877037048, - 0.07538963109254837, - 0.8273487091064453, - 0.0693657398223877, - 0.02539960853755474, - 0.9357474446296692, - 0.04289489984512329, - 0.9053813815116882, - 0.42885708808898926, - 0.9904388189315796, - 0.7428081631660461, - 0.0282981526106596, - 0.6085078120231628, - 0.9917680025100708, - 0.8884047269821167, - 0.6975054740905762, - 0.004348373040556908, - 0.014996387995779514, - 0.07691769301891327 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sigmoid float32 0D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.37699514627456665 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.4068518280982971 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sigmoid float32 1D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.37699514627456665, - -0.6848450899124146, - -3.5469970703125, - 4.431885719299316, - -0.93868488073349, - 4.591195583343506, - -2.5067026615142822, - 1.5669522285461426, - -2.596473217010498, - -3.64729380607605, - 2.6785237789154053, - -3.1051602363586426, - 2.2585017681121826, - -0.2865157723426819, - 4.64043664932251, - 1.0606156587600708, - -3.536252498626709, - 0.4410440921783447, - 4.791460037231445, - 2.0745489597320557, - 0.8354471325874329, - -5.433595657348633, - -4.184835910797119, - -2.484982490539551 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.4068518280982971, - 0.33518078923225403, - 0.028004197403788567, - 0.9882476925849915, - 0.28116607666015625, - 0.9899610877037048, - 0.07538963109254837, - 0.8273487091064453, - 0.0693657398223877, - 0.02539960853755474, - 0.9357474446296692, - 0.04289489984512329, - 0.9053813815116882, - 0.42885708808898926, - 0.9904388189315796, - 0.7428081631660461, - 0.0282981526106596, - 0.6085078120231628, - 0.9917680025100708, - 0.8884047269821167, - 0.6975054740905762, - 0.004348373040556908, - 0.014996387995779514, - 0.07691769301891327 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sigmoid float32 2D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.37699514627456665, - -0.6848450899124146, - -3.5469970703125, - 4.431885719299316, - -0.93868488073349, - 4.591195583343506, - -2.5067026615142822, - 1.5669522285461426, - -2.596473217010498, - -3.64729380607605, - 2.6785237789154053, - -3.1051602363586426, - 2.2585017681121826, - -0.2865157723426819, - 4.64043664932251, - 1.0606156587600708, - -3.536252498626709, - 0.4410440921783447, - 4.791460037231445, - 2.0745489597320557, - 0.8354471325874329, - -5.433595657348633, - -4.184835910797119, - -2.484982490539551 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.4068518280982971, - 0.33518078923225403, - 0.028004197403788567, - 0.9882476925849915, - 0.28116607666015625, - 0.9899610877037048, - 0.07538963109254837, - 0.8273487091064453, - 0.0693657398223877, - 0.02539960853755474, - 0.9357474446296692, - 0.04289489984512329, - 0.9053813815116882, - 0.42885708808898926, - 0.9904388189315796, - 0.7428081631660461, - 0.0282981526106596, - 0.6085078120231628, - 0.9917680025100708, - 0.8884047269821167, - 0.6975054740905762, - 0.004348373040556908, - 0.014996387995779514, - 0.07691769301891327 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sigmoid float32 3D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.37699514627456665, - -0.6848450899124146, - -3.5469970703125, - 4.431885719299316, - -0.93868488073349, - 4.591195583343506, - -2.5067026615142822, - 1.5669522285461426, - -2.596473217010498, - -3.64729380607605, - 2.6785237789154053, - -3.1051602363586426, - 2.2585017681121826, - -0.2865157723426819, - 4.64043664932251, - 1.0606156587600708, - -3.536252498626709, - 0.4410440921783447, - 4.791460037231445, - 2.0745489597320557, - 0.8354471325874329, - -5.433595657348633, - -4.184835910797119, - -2.484982490539551 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.4068518280982971, - 0.33518078923225403, - 0.028004197403788567, - 0.9882476925849915, - 0.28116607666015625, - 0.9899610877037048, - 0.07538963109254837, - 0.8273487091064453, - 0.0693657398223877, - 0.02539960853755474, - 0.9357474446296692, - 0.04289489984512329, - 0.9053813815116882, - 0.42885708808898926, - 0.9904388189315796, - 0.7428081631660461, - 0.0282981526106596, - 0.6085078120231628, - 0.9917680025100708, - 0.8884047269821167, - 0.6975054740905762, - 0.004348373040556908, - 0.014996387995779514, - 0.07691769301891327 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sigmoid float32 4D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.37699514627456665, - -0.6848450899124146, - -3.5469970703125, - 4.431885719299316, - -0.93868488073349, - 4.591195583343506, - -2.5067026615142822, - 1.5669522285461426, - -2.596473217010498, - -3.64729380607605, - 2.6785237789154053, - -3.1051602363586426, - 2.2585017681121826, - -0.2865157723426819, - 4.64043664932251, - 1.0606156587600708, - -3.536252498626709, - 0.4410440921783447, - 4.791460037231445, - 2.0745489597320557, - 0.8354471325874329, - -5.433595657348633, - -4.184835910797119, - -2.484982490539551 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.4068518280982971, - 0.33518078923225403, - 0.028004197403788567, - 0.9882476925849915, - 0.28116607666015625, - 0.9899610877037048, - 0.07538963109254837, - 0.8273487091064453, - 0.0693657398223877, - 0.02539960853755474, - 0.9357474446296692, - 0.04289489984512329, - 0.9053813815116882, - 0.42885708808898926, - 0.9904388189315796, - 0.7428081631660461, - 0.0282981526106596, - 0.6085078120231628, - 0.9917680025100708, - 0.8884047269821167, - 0.6975054740905762, - 0.004348373040556908, - 0.014996387995779514, - 0.07691769301891327 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sigmoid float32 5D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.37699514627456665, - -0.6848450899124146, - -3.5469970703125, - 4.431885719299316, - -0.93868488073349, - 4.591195583343506, - -2.5067026615142822, - 1.5669522285461426, - -2.596473217010498, - -3.64729380607605, - 2.6785237789154053, - -3.1051602363586426, - 2.2585017681121826, - -0.2865157723426819, - 4.64043664932251, - 1.0606156587600708, - -3.536252498626709, - 0.4410440921783447, - 4.791460037231445, - 2.0745489597320557, - 0.8354471325874329, - -5.433595657348633, - -4.184835910797119, - -2.484982490539551 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.4068518280982971, - 0.33518078923225403, - 0.028004197403788567, - 0.9882476925849915, - 0.28116607666015625, - 0.9899610877037048, - 0.07538963109254837, - 0.8273487091064453, - 0.0693657398223877, - 0.02539960853755474, - 0.9357474446296692, - 0.04289489984512329, - 0.9053813815116882, - 0.42885708808898926, - 0.9904388189315796, - 0.7428081631660461, - 0.0282981526106596, - 0.6085078120231628, - 0.9917680025100708, - 0.8884047269821167, - 0.6975054740905762, - 0.004348373040556908, - 0.014996387995779514, - 0.07691769301891327 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sigmoid float16 1D constant tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.376953125, - -0.68505859375, - -5.98828125, - 4.43359375, - -0.9384765625, - 4.58984375, - -2.505859375, - 1.5673828125, - -2.595703125, - -0.6474609375, - 2.677734375, - -3.10546875, - 2.2578125, - -0.28662109375, - 4.640625, - 1.060546875, - -3.537109375, - 0.441162109375, - 4.79296875, - 2.07421875, - 0.83544921875, - -5.43359375, - -4.18359375, - -2.484375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.406982421875, - 0.335205078125, - 0.00250244140625, - 0.98828125, - 0.28125, - 0.98974609375, - 0.075439453125, - 0.82763671875, - 0.06939697265625, - 0.343505859375, - 0.935546875, - 0.042877197265625, - 0.9052734375, - 0.4287109375, - 0.990234375, - 0.74267578125, - 0.0282745361328125, - 0.6083984375, - 0.99169921875, - 0.88818359375, - 0.697265625, - 0.0043487548828125, - 0.0150146484375, - 0.07696533203125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sigmoid float16 0D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.376953125 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.406982421875 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sigmoid float16 1D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.376953125, - -0.68505859375, - -5.98828125, - 4.43359375, - -0.9384765625, - 4.58984375, - -2.505859375, - 1.5673828125, - -2.595703125, - -0.6474609375, - 2.677734375, - -3.10546875, - 2.2578125, - -0.28662109375, - 4.640625, - 1.060546875, - -3.537109375, - 0.441162109375, - 4.79296875, - 2.07421875, - 0.83544921875, - -5.43359375, - -4.18359375, - -2.484375 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.406982421875, - 0.335205078125, - 0.00250244140625, - 0.98828125, - 0.28125, - 0.98974609375, - 0.075439453125, - 0.82763671875, - 0.06939697265625, - 0.343505859375, - 0.935546875, - 0.042877197265625, - 0.9052734375, - 0.4287109375, - 0.990234375, - 0.74267578125, - 0.0282745361328125, - 0.6083984375, - 0.99169921875, - 0.88818359375, - 0.697265625, - 0.0043487548828125, - 0.0150146484375, - 0.07696533203125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sigmoid float16 2D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.376953125, - -0.68505859375, - -5.98828125, - 4.43359375, - -0.9384765625, - 4.58984375, - -2.505859375, - 1.5673828125, - -2.595703125, - -0.6474609375, - 2.677734375, - -3.10546875, - 2.2578125, - -0.28662109375, - 4.640625, - 1.060546875, - -3.537109375, - 0.441162109375, - 4.79296875, - 2.07421875, - 0.83544921875, - -5.43359375, - -4.18359375, - -2.484375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.406982421875, - 0.335205078125, - 0.00250244140625, - 0.98828125, - 0.28125, - 0.98974609375, - 0.075439453125, - 0.82763671875, - 0.06939697265625, - 0.343505859375, - 0.935546875, - 0.042877197265625, - 0.9052734375, - 0.4287109375, - 0.990234375, - 0.74267578125, - 0.0282745361328125, - 0.6083984375, - 0.99169921875, - 0.88818359375, - 0.697265625, - 0.0043487548828125, - 0.0150146484375, - 0.07696533203125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sigmoid float16 3D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.376953125, - -0.68505859375, - -5.98828125, - 4.43359375, - -0.9384765625, - 4.58984375, - -2.505859375, - 1.5673828125, - -2.595703125, - -0.6474609375, - 2.677734375, - -3.10546875, - 2.2578125, - -0.28662109375, - 4.640625, - 1.060546875, - -3.537109375, - 0.441162109375, - 4.79296875, - 2.07421875, - 0.83544921875, - -5.43359375, - -4.18359375, - -2.484375 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.406982421875, - 0.335205078125, - 0.00250244140625, - 0.98828125, - 0.28125, - 0.98974609375, - 0.075439453125, - 0.82763671875, - 0.06939697265625, - 0.343505859375, - 0.935546875, - 0.042877197265625, - 0.9052734375, - 0.4287109375, - 0.990234375, - 0.74267578125, - 0.0282745361328125, - 0.6083984375, - 0.99169921875, - 0.88818359375, - 0.697265625, - 0.0043487548828125, - 0.0150146484375, - 0.07696533203125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sigmoid float16 4D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.376953125, - -0.68505859375, - -5.98828125, - 4.43359375, - -0.9384765625, - 4.58984375, - -2.505859375, - 1.5673828125, - -2.595703125, - -0.6474609375, - 2.677734375, - -3.10546875, - 2.2578125, - -0.28662109375, - 4.640625, - 1.060546875, - -3.537109375, - 0.441162109375, - 4.79296875, - 2.07421875, - 0.83544921875, - -5.43359375, - -4.18359375, - -2.484375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.406982421875, - 0.335205078125, - 0.00250244140625, - 0.98828125, - 0.28125, - 0.98974609375, - 0.075439453125, - 0.82763671875, - 0.06939697265625, - 0.343505859375, - 0.935546875, - 0.042877197265625, - 0.9052734375, - 0.4287109375, - 0.990234375, - 0.74267578125, - 0.0282745361328125, - 0.6083984375, - 0.99169921875, - 0.88818359375, - 0.697265625, - 0.0043487548828125, - 0.0150146484375, - 0.07696533203125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sigmoid float16 5D tensor", - "graph": { - "inputs": { - "sigmoidInput": { - "data": [ - -0.376953125, - -0.68505859375, - -5.98828125, - 4.43359375, - -0.9384765625, - 4.58984375, - -2.505859375, - 1.5673828125, - -2.595703125, - -0.6474609375, - 2.677734375, - -3.10546875, - 2.2578125, - -0.28662109375, - 4.640625, - 1.060546875, - -3.537109375, - 0.441162109375, - 4.79296875, - 2.07421875, - 0.83544921875, - -5.43359375, - -4.18359375, - -2.484375 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sigmoid", - "arguments": [ - { - "input": "sigmoidInput" - } - ], - "outputs": "sigmoidOutput" - } - ], - "expectedOutputs": { - "sigmoidOutput": { - "data": [ - 0.406982421875, - 0.335205078125, - 0.00250244140625, - 0.98828125, - 0.28125, - 0.98974609375, - 0.075439453125, - 0.82763671875, - 0.06939697265625, - 0.343505859375, - 0.935546875, - 0.042877197265625, - 0.9052734375, - 0.4287109375, - 0.990234375, - 0.74267578125, - 0.0282745361328125, - 0.6083984375, - 0.99169921875, - 0.88818359375, - 0.697265625, - 0.0043487548828125, - 0.0150146484375, - 0.07696533203125 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/slice.json b/tests/wpt_data/conformance/slice.json deleted file mode 100644 index 268fab4..0000000 --- a/tests/wpt_data/conformance/slice.json +++ /dev/null @@ -1,1676 +0,0 @@ -{ - "operation": "slice", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/slice.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "slicing float32 0D constant tensor with empty starts and sizes should be a no-op", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [] - }, - { - "sizes": [] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 28.846250534057617 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 1D constant tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 12 - ] - }, - { - "sizes": [ - 12 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 1D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 12 - ] - }, - { - "sizes": [ - 12 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 2D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 2, - 2 - ] - }, - { - "sizes": [ - 2, - 4 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 2, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 3D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 1, - 1, - 1 - ] - }, - { - "sizes": [ - 3, - 2, - 1 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 57.4397087097168, - -4.513182163238525, - 74.02619171142578, - -27.306041717529297, - 79.80570983886719, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 4D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 1, - 0, - 2, - 1 - ] - }, - { - "sizes": [ - 1, - 2, - 1, - 1 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - -27.306041717529297, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 5D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 1, - 0, - 2, - 1, - 0 - ] - }, - { - "sizes": [ - 1, - 2, - 1, - 1, - 1 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - -27.306041717529297, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 2D tensor with strides", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -70.42774200439453, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 0, - 2 - ] - }, - { - "sizes": [ - 2, - 10 - ] - }, - { - "options": { - "strides": [ - 1, - 4 - ] - } - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - -68.15961456298828, - -24.556316375732422, - 74.41775512695312, - 28.32765007019043, - -70.42774200439453, - -70.42774200439453 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 3D tensor with strides", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 0, - 0, - 1 - ] - }, - { - "sizes": [ - 4, - 3, - 1 - ] - }, - { - "options": { - "strides": [ - 3, - 2, - 1 - ] - } - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 97.95414733886719, - 76.59095764160156, - 59.82632064819336, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float32 4D tensor with strides", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.846250534057617, - 97.95414733886719, - -68.15961456298828, - 14.978987693786621, - 90.23090362548828, - 76.59095764160156, - -24.556316375732422, - 79.58749389648438, - 65.21376037597656, - 57.4397087097168, - 74.41775512695312, - -4.513182163238525, - 0.5424534678459167, - 80.44634246826172, - 28.32765007019043, - 74.02619171142578, - -74.54559326171875, - -27.306041717529297, - -70.42774200439453, - 59.82632064819336, - -58.46095275878906, - 79.80570983886719, - -9.857853889465332, - 42.665199279785156 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 1, - 1, - 1, - 1 - ] - }, - { - "sizes": [ - 1, - 1, - 1, - 1 - ] - }, - { - "options": { - "strides": [ - 2, - 2, - 2, - 2 - ] - } - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 79.80570983886719 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "slice float16 1D constant tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 12 - ] - }, - { - "sizes": [ - 12 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "slice float16 1D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 12 - ] - }, - { - "sizes": [ - 12 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 12 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "slice float16 2D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 2, - 2 - ] - }, - { - "sizes": [ - 2, - 4 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 28.328125, - 74, - -74.5625, - -27.3125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 2, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "slice float16 3D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 1, - 1, - 1 - ] - }, - { - "sizes": [ - 3, - 2, - 1 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 57.4375, - -4.51171875, - 74, - -27.3125, - 79.8125, - 42.65625 - ], - "descriptor": { - "shape": [ - 3, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "slice float16 4D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 1, - 0, - 2, - 1 - ] - }, - { - "sizes": [ - 1, - 2, - 1, - 1 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - -27.3125, - 42.65625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "slice float16 5D tensor", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 1, - 0, - 2, - 1, - 0 - ] - }, - { - "sizes": [ - 1, - 2, - 1, - 1, - 1 - ] - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - -27.3125, - 42.65625 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "slice float16 2D tensor with strides", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -70.4375, - 42.65625 - ], - "descriptor": { - "shape": [ - 2, - 12 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 0, - 2 - ] - }, - { - "sizes": [ - 2, - 10 - ] - }, - { - "options": { - "strides": [ - 1, - 4 - ] - } - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - -68.1875, - -24.5625, - 74.4375, - 28.328125, - -70.4375, - -70.4375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "slice float16 3D tensor with strides", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 0, - 0, - 1 - ] - }, - { - "sizes": [ - 4, - 3, - 1 - ] - }, - { - "options": { - "strides": [ - 3, - 2, - 1 - ] - } - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 97.9375, - 76.5625, - 59.8125, - 42.65625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "slice float16 4D tensor with strides", - "graph": { - "inputs": { - "sliceInput": { - "data": [ - 28.84375, - 97.9375, - -68.1875, - 14.9765625, - 90.25, - 76.5625, - -24.5625, - 79.5625, - 65.1875, - 57.4375, - 74.4375, - -4.51171875, - 0.54248046875, - 80.4375, - 28.328125, - 74, - -74.5625, - -27.3125, - -70.4375, - 59.8125, - -58.46875, - 79.8125, - -9.859375, - 42.65625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 3, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "slice", - "arguments": [ - { - "input": "sliceInput" - }, - { - "starts": [ - 1, - 1, - 1, - 1 - ] - }, - { - "sizes": [ - 1, - 1, - 1, - 1 - ] - }, - { - "options": { - "strides": [ - 2, - 2, - 2, - 2 - ] - } - } - ], - "outputs": "sliceOutput" - } - ], - "expectedOutputs": { - "sliceOutput": { - "data": [ - 79.8125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/softmax.json b/tests/wpt_data/conformance/softmax.json deleted file mode 100644 index b0ca6dc..0000000 --- a/tests/wpt_data/conformance/softmax.json +++ /dev/null @@ -1,787 +0,0 @@ -{ - "operation": "softmax", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/softmax.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "softmax float32 2D constant tensor all positive", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - 7.9037346839904785, - 6.358251571655273, - 4.833756923675537, - 9.5791654586792, - 0.21071857213974, - 4.554958820343018, - 7.150174140930176, - 8.330297470092773, - 1.5359858274459839, - 6.63361930847168, - 1.4539369344711304, - 0.213418647646904, - 5.257819652557373, - 8.192137718200684, - 8.16172981262207, - 2.874434232711792, - 8.950733184814453, - 6.111632823944092, - 1.6371468305587769, - 0.27626121044158936, - 5.02822732925415, - 3.8983259201049805, - 2.8967113494873047, - 6.88947057723999 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.15068615972995758, - 0.03212761878967285, - 0.006995180621743202, - 0.8048291206359863, - 6.871300138300285e-05, - 0.005293202120810747, - 0.2057899534702301, - 0.6698001027107239, - 0.0007502624066546559, - 0.1227685883641243, - 0.0006911618984304368, - 0.00019990770670119673, - 0.012398251332342625, - 0.23319464921951294, - 0.22621041536331177, - 0.0011435872875154018, - 0.4979347288608551, - 0.029118351638317108, - 0.004253828432410955, - 0.001090824487619102, - 0.12633030116558075, - 0.040812913328409195, - 0.014990009367465973, - 0.8125221133232117 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "softmax float32 2D tensor all positive", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - 7.9037346839904785, - 6.358251571655273, - 4.833756923675537, - 9.5791654586792, - 0.21071857213974, - 4.554958820343018, - 7.150174140930176, - 8.330297470092773, - 1.5359858274459839, - 6.63361930847168, - 1.4539369344711304, - 0.213418647646904, - 5.257819652557373, - 8.192137718200684, - 8.16172981262207, - 2.874434232711792, - 8.950733184814453, - 6.111632823944092, - 1.6371468305587769, - 0.27626121044158936, - 5.02822732925415, - 3.8983259201049805, - 2.8967113494873047, - 6.88947057723999 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.15068615972995758, - 0.03212761878967285, - 0.006995180621743202, - 0.8048291206359863, - 6.871300138300285e-05, - 0.005293202120810747, - 0.2057899534702301, - 0.6698001027107239, - 0.0007502624066546559, - 0.1227685883641243, - 0.0006911618984304368, - 0.00019990770670119673, - 0.012398251332342625, - 0.23319464921951294, - 0.22621041536331177, - 0.0011435872875154018, - 0.4979347288608551, - 0.029118351638317108, - 0.004253828432410955, - 0.001090824487619102, - 0.12633030116558075, - 0.040812913328409195, - 0.014990009367465973, - 0.8125221133232117 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "softmax float32 2D tensor all negative", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - -3.3118433952331543, - -3.3389549255371094, - -3.4102790355682373, - -6.697193145751953, - -7.896223545074463, - -3.308168888092041, - -3.2309720516204834, - -4.315771579742432, - -9.311088562011719, - -3.9236626625061035, - -3.780721426010132, - -6.034926891326904, - -3.9196677207946777, - -2.2234842777252197, - -9.326531410217285, - -1.4882491827011108, - -6.302842617034912, - -5.53147554397583, - -1.8421411514282227, - -4.994808197021484, - -9.527292251586914, - -4.985682964324951, - -8.421041488647461, - -6.235629558563232 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.2546302080154419, - 0.24781952798366547, - 0.2307596504688263, - 0.008623254485428333, - 0.002599793951958418, - 0.2555675804615021, - 0.40352678298950195, - 0.13637976348400116, - 0.0009232329903170466, - 0.20185552537441254, - 0.23287305235862732, - 0.024441635236144066, - 0.0551743283867836, - 0.3008708655834198, - 0.0002474947541486472, - 0.6276082992553711, - 0.0050902292132377625, - 0.011008745059370995, - 0.9090295433998108, - 0.0388500951230526, - 0.00041779119055718184, - 0.039206232875585556, - 0.0012629841221496463, - 0.011233373545110226 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "softmax float32 3D constant tensor", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - 0.4301910996437073, - 0.5471914410591125, - -1.1637765169143677, - 0.18390046060085297, - 0.583903968334198, - 0.17356790602207184, - 0.5397239923477173, - -0.9535139799118042, - -0.5920282602310181, - -0.17344485223293304, - 0.14395014941692352, - -0.37920907139778137 - ], - "descriptor": { - "shape": [ - 1, - 3, - 4 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.39589041471481323, - 0.45983806252479553, - 0.09812675416469574, - 0.529077410697937, - 0.4616699814796448, - 0.31647709012031555, - 0.5390242338180542, - 0.16964708268642426, - 0.142439603805542, - 0.22368484735488892, - 0.36284899711608887, - 0.3012755215167999 - ], - "descriptor": { - "shape": [ - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "softmax float32 4D tensor", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - 0.4301910996437073, - 0.5471914410591125, - -1.1637765169143677, - 0.18390046060085297, - 0.583903968334198, - 0.17356790602207184, - 0.5397239923477173, - -0.9535139799118042, - -0.5920282602310181, - -0.17344485223293304, - 0.14395014941692352, - -0.37920907139778137 - ], - "descriptor": { - "shape": [ - 3, - 4, - 1, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.3216537833213806, - 0.3615773916244507, - 0.06533370912075043, - 0.25143513083457947, - 0.35271573066711426, - 0.23400123417377472, - 0.33747196197509766, - 0.07581108063459396, - 0.17110128700733185, - 0.26004093885421753, - 0.3571779429912567, - 0.2116798311471939 - ], - "descriptor": { - "shape": [ - 3, - 4, - 1, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "softmax float16 2D constant tensor all positive", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - 7.90234375, - 6.359375, - 4.83203125, - 9.578125, - 0.210693359375, - 4.5546875, - 7.1484375, - 8.328125, - 1.5361328125, - 6.6328125, - 1.4541015625, - 0.21337890625, - 5.2578125, - 8.1953125, - 8.1640625, - 2.875, - 8.953125, - 6.11328125, - 1.63671875, - 0.2763671875, - 5.02734375, - 3.8984375, - 2.896484375, - 6.890625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.150634765625, - 0.032196044921875, - 0.006988525390625, - 0.8046875, - 6.878376007080078e-05, - 0.005298614501953125, - 0.205810546875, - 0.66943359375, - 0.0007519721984863281, - 0.1229248046875, - 0.0006923675537109375, - 0.0002002716064453125, - 0.01236724853515625, - 0.2333984375, - 0.2261962890625, - 0.0011415481567382812, - 0.497802734375, - 0.0290985107421875, - 0.00424957275390625, - 0.0010900497436523438, - 0.1260986328125, - 0.040771484375, - 0.01497650146484375, - 0.81298828125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "softmax float16 2D tensor all positive", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - 7.90234375, - 6.359375, - 4.83203125, - 9.578125, - 0.210693359375, - 4.5546875, - 7.1484375, - 8.328125, - 1.5361328125, - 6.6328125, - 1.4541015625, - 0.21337890625, - 5.2578125, - 8.1953125, - 8.1640625, - 2.875, - 8.953125, - 6.11328125, - 1.63671875, - 0.2763671875, - 5.02734375, - 3.8984375, - 2.896484375, - 6.890625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.150634765625, - 0.032196044921875, - 0.006988525390625, - 0.8046875, - 6.878376007080078e-05, - 0.005298614501953125, - 0.205810546875, - 0.66943359375, - 0.0007519721984863281, - 0.1229248046875, - 0.0006923675537109375, - 0.0002002716064453125, - 0.01236724853515625, - 0.2333984375, - 0.2261962890625, - 0.0011415481567382812, - 0.497802734375, - 0.0290985107421875, - 0.00424957275390625, - 0.0010900497436523438, - 0.1260986328125, - 0.040771484375, - 0.01497650146484375, - 0.81298828125 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "softmax float16 2D tensor all negative", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - -3.3125, - -3.33984375, - -3.41015625, - -6.6953125, - -7.89453125, - -3.30859375, - -3.23046875, - -4.31640625, - -9.3125, - -3.923828125, - -3.78125, - -6.03515625, - -3.919921875, - -2.22265625, - -9.328125, - -1.48828125, - -6.3046875, - -5.53125, - -1.841796875, - -4.99609375, - -9.5234375, - -4.984375, - -8.421875, - -6.234375 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.254638671875, - 0.2476806640625, - 0.2308349609375, - 0.00864410400390625, - 0.002605438232421875, - 0.255615234375, - 0.40380859375, - 0.1363525390625, - 0.0009222030639648438, - 0.2017822265625, - 0.2327880859375, - 0.024444580078125, - 0.055145263671875, - 0.301025390625, - 0.00024700164794921875, - 0.62744140625, - 0.0050811767578125, - 0.01100921630859375, - 0.9091796875, - 0.038787841796875, - 0.00041937828063964844, - 0.03924560546875, - 0.0012617111206054688, - 0.0112457275390625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "softmax float16 4D tensor", - "graph": { - "inputs": { - "softmaxInput": { - "data": [ - 0.43017578125, - 0.54736328125, - -1.1640625, - 0.1839599609375, - 0.583984375, - 0.173583984375, - 0.53955078125, - -0.95361328125, - -0.591796875, - -0.1734619140625, - 0.1439208984375, - -0.379150390625 - ], - "descriptor": { - "shape": [ - 3, - 4, - 1, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "softmax", - "arguments": [ - { - "input": "softmaxInput" - }, - { - "axis": 1 - } - ], - "outputs": "softmaxOutput" - } - ], - "expectedOutputs": { - "softmaxOutput": { - "data": [ - 0.321533203125, - 0.361572265625, - 0.0653076171875, - 0.25146484375, - 0.352783203125, - 0.2340087890625, - 0.33740234375, - 0.0758056640625, - 0.171142578125, - 0.260009765625, - 0.357177734375, - 0.211669921875 - ], - "descriptor": { - "shape": [ - 3, - 4, - 1, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/split.json b/tests/wpt_data/conformance/split.json deleted file mode 100644 index 3f33df9..0000000 --- a/tests/wpt_data/conformance/split.json +++ /dev/null @@ -1,2471 +0,0 @@ -{ - "operation": "split", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/split.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "split float32 1D constant tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 3 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - }, - "splitOutput3": { - "data": [ - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 1D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 3 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - }, - "splitOutput3": { - "data": [ - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 2D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 8, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 2 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438 - ], - "descriptor": { - "shape": [ - 4, - 3 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 4, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 3D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 2 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 4D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 12, - 1, - 1, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 4 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3", - "splitOutput4" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput3": { - "data": [ - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput4": { - "data": [ - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 5D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 6, - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 2 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 4D tensor array splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 12, - 1, - 1, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": [ - 3, - 3, - 3, - 3 - ] - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3", - "splitOutput4" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput3": { - "data": [ - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput4": { - "data": [ - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 4D tensor number splits options.axis", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 12, - 1, - 1, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 3 - }, - { - "options": { - "axis": 0 - } - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput3": { - "data": [ - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 5D tensor array splits=[3, 3] options.axis=2", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 1, - 1, - 6, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": [ - 3, - 3 - ] - }, - { - "options": { - "axis": 2 - } - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 2, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float32 5D tensor array splits=[2, 4] options.axis=0", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094, - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 6, - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": [ - 2, - 4 - ] - }, - { - "options": { - "axis": 0 - } - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.52056884765625, - -84.60513305664062, - -67.99282836914062, - -23.446075439453125, - -85.64382934570312, - 46.87752151489258, - -68.11224365234375, - 75.99607849121094 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - }, - "splitOutput2": { - "data": [ - -61.05668640136719, - -90.92643737792969, - 53.916622161865234, - 84.16268920898438, - -95.57494354248047, - -52.40757751464844, - -29.007186889648438, - 71.65496063232422, - 50.66357421875, - 21.364582061767578, - -27.127241134643555, - 65.1489486694336, - -30.40681266784668, - -6.818390369415283, - 46.673622131347656, - -21.12453842163086 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "split float16 1D constant tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 3 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - }, - "splitOutput3": { - "data": [ - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 1D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 3 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - }, - "splitOutput3": { - "data": [ - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 8 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 2D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 8, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 2 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875 - ], - "descriptor": { - "shape": [ - 4, - 3 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 4, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 3D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 2 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 2, - 3, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 4D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 12, - 1, - 1, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 4 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3", - "splitOutput4" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput3": { - "data": [ - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput4": { - "data": [ - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 5D tensor number splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 6, - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 2 - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 4D tensor array splits default options", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 12, - 1, - 1, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": [ - 3, - 3, - 3, - 3 - ] - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3", - "splitOutput4" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput3": { - "data": [ - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput4": { - "data": [ - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 3, - 1, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 4D tensor number splits options.axis", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 12, - 1, - 1, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": 3 - }, - { - "options": { - "axis": 0 - } - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2", - "splitOutput3" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput3": { - "data": [ - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 5D tensor array splits=[3, 3] options.axis=2", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 6, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": [ - 3, - 3 - ] - }, - { - "options": { - "axis": 2 - } - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 2, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 1, - 1, - 3, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "split float16 5D tensor array splits=[2, 4] options.axis=0", - "graph": { - "inputs": { - "splitInput": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76, - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 6, - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "split", - "arguments": [ - { - "input": "splitInput" - }, - { - "splits": [ - 2, - 4 - ] - }, - { - "options": { - "axis": 0 - } - } - ], - "outputs": [ - "splitOutput1", - "splitOutput2" - ] - } - ], - "expectedOutputs": { - "splitOutput1": { - "data": [ - -64.5, - -84.625, - -68, - -23.453125, - -85.625, - 46.875, - -68.125, - 76 - ], - "descriptor": { - "shape": [ - 2, - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - }, - "splitOutput2": { - "data": [ - -61.0625, - -90.9375, - 53.90625, - 84.1875, - -95.5625, - -52.40625, - -29, - 71.625, - 50.65625, - 21.359375, - -27.125, - 65.125, - -30.40625, - -6.8203125, - 46.6875, - -21.125 - ], - "descriptor": { - "shape": [ - 4, - 1, - 1, - 2, - 2 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/sqrt.json b/tests/wpt_data/conformance/sqrt.json deleted file mode 100644 index afadc40..0000000 --- a/tests/wpt_data/conformance/sqrt.json +++ /dev/null @@ -1,1183 +0,0 @@ -{ - "operation": "sqrt", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/sqrt.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "sqrt float32 0D scalar", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 4.0044636726379395 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.001115560531616 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sqrt float32 1D constant tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.256007194519043, - 7.786442279815674, - 1.3684587478637695, - 8.05341625213623, - 9.131288528442383, - 8.52578067779541, - 4.870553493499756, - 7.625959396362305, - 2.705026865005493, - 8.709602355957031, - 3.2687935829162598, - 4.712882995605469, - 8.669181823730469, - 8.829607009887695, - 0.5529024600982666, - 7.958771228790283, - 4.09640645980835, - 7.919884204864502, - 4.424484729766846, - 0.09894099831581116, - 4.6900248527526855, - 1.5277378559112549, - 5.929779529571533, - 6.066471576690674 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693697690963745, - 2.790419816970825, - 1.1698113679885864, - 2.8378541469573975, - 3.0218021869659424, - 2.919893980026245, - 2.20693302154541, - 2.7615139484405518, - 1.644696593284607, - 2.9512035846710205, - 1.8079805374145508, - 2.170917510986328, - 2.944347381591797, - 2.9714653491973877, - 0.7435740828514099, - 2.821129322052002, - 2.023958206176758, - 2.8142287731170654, - 2.1034460067749023, - 0.31454887986183167, - 2.165646553039551, - 1.2360169887542725, - 2.4351139068603516, - 2.4630208015441895 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sqrt float32 1D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.256007194519043, - 7.786442279815674, - 1.3684587478637695, - 8.05341625213623, - 9.131288528442383, - 8.52578067779541, - 4.870553493499756, - 7.625959396362305, - 2.705026865005493, - 8.709602355957031, - 3.2687935829162598, - 4.712882995605469, - 8.669181823730469, - 8.829607009887695, - 0.5529024600982666, - 7.958771228790283, - 4.09640645980835, - 7.919884204864502, - 4.424484729766846, - 0.09894099831581116, - 4.6900248527526855, - 1.5277378559112549, - 5.929779529571533, - 6.066471576690674 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693697690963745, - 2.790419816970825, - 1.1698113679885864, - 2.8378541469573975, - 3.0218021869659424, - 2.919893980026245, - 2.20693302154541, - 2.7615139484405518, - 1.644696593284607, - 2.9512035846710205, - 1.8079805374145508, - 2.170917510986328, - 2.944347381591797, - 2.9714653491973877, - 0.7435740828514099, - 2.821129322052002, - 2.023958206176758, - 2.8142287731170654, - 2.1034460067749023, - 0.31454887986183167, - 2.165646553039551, - 1.2360169887542725, - 2.4351139068603516, - 2.4630208015441895 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sqrt float32 2D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.256007194519043, - 7.786442279815674, - 1.3684587478637695, - 8.05341625213623, - 9.131288528442383, - 8.52578067779541, - 4.870553493499756, - 7.625959396362305, - 2.705026865005493, - 8.709602355957031, - 3.2687935829162598, - 4.712882995605469, - 8.669181823730469, - 8.829607009887695, - 0.5529024600982666, - 7.958771228790283, - 4.09640645980835, - 7.919884204864502, - 4.424484729766846, - 0.09894099831581116, - 4.6900248527526855, - 1.5277378559112549, - 5.929779529571533, - 6.066471576690674 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693697690963745, - 2.790419816970825, - 1.1698113679885864, - 2.8378541469573975, - 3.0218021869659424, - 2.919893980026245, - 2.20693302154541, - 2.7615139484405518, - 1.644696593284607, - 2.9512035846710205, - 1.8079805374145508, - 2.170917510986328, - 2.944347381591797, - 2.9714653491973877, - 0.7435740828514099, - 2.821129322052002, - 2.023958206176758, - 2.8142287731170654, - 2.1034460067749023, - 0.31454887986183167, - 2.165646553039551, - 1.2360169887542725, - 2.4351139068603516, - 2.4630208015441895 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sqrt float32 3D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.256007194519043, - 7.786442279815674, - 1.3684587478637695, - 8.05341625213623, - 9.131288528442383, - 8.52578067779541, - 4.870553493499756, - 7.625959396362305, - 2.705026865005493, - 8.709602355957031, - 3.2687935829162598, - 4.712882995605469, - 8.669181823730469, - 8.829607009887695, - 0.5529024600982666, - 7.958771228790283, - 4.09640645980835, - 7.919884204864502, - 4.424484729766846, - 0.09894099831581116, - 4.6900248527526855, - 1.5277378559112549, - 5.929779529571533, - 6.066471576690674 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693697690963745, - 2.790419816970825, - 1.1698113679885864, - 2.8378541469573975, - 3.0218021869659424, - 2.919893980026245, - 2.20693302154541, - 2.7615139484405518, - 1.644696593284607, - 2.9512035846710205, - 1.8079805374145508, - 2.170917510986328, - 2.944347381591797, - 2.9714653491973877, - 0.7435740828514099, - 2.821129322052002, - 2.023958206176758, - 2.8142287731170654, - 2.1034460067749023, - 0.31454887986183167, - 2.165646553039551, - 1.2360169887542725, - 2.4351139068603516, - 2.4630208015441895 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sqrt float32 4D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.256007194519043, - 7.786442279815674, - 1.3684587478637695, - 8.05341625213623, - 9.131288528442383, - 8.52578067779541, - 4.870553493499756, - 7.625959396362305, - 2.705026865005493, - 8.709602355957031, - 3.2687935829162598, - 4.712882995605469, - 8.669181823730469, - 8.829607009887695, - 0.5529024600982666, - 7.958771228790283, - 4.09640645980835, - 7.919884204864502, - 4.424484729766846, - 0.09894099831581116, - 4.6900248527526855, - 1.5277378559112549, - 5.929779529571533, - 6.066471576690674 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693697690963745, - 2.790419816970825, - 1.1698113679885864, - 2.8378541469573975, - 3.0218021869659424, - 2.919893980026245, - 2.20693302154541, - 2.7615139484405518, - 1.644696593284607, - 2.9512035846710205, - 1.8079805374145508, - 2.170917510986328, - 2.944347381591797, - 2.9714653491973877, - 0.7435740828514099, - 2.821129322052002, - 2.023958206176758, - 2.8142287731170654, - 2.1034460067749023, - 0.31454887986183167, - 2.165646553039551, - 1.2360169887542725, - 2.4351139068603516, - 2.4630208015441895 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sqrt float32 5D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.256007194519043, - 7.786442279815674, - 1.3684587478637695, - 8.05341625213623, - 9.131288528442383, - 8.52578067779541, - 4.870553493499756, - 7.625959396362305, - 2.705026865005493, - 8.709602355957031, - 3.2687935829162598, - 4.712882995605469, - 8.669181823730469, - 8.829607009887695, - 0.5529024600982666, - 7.958771228790283, - 4.09640645980835, - 7.919884204864502, - 4.424484729766846, - 0.09894099831581116, - 4.6900248527526855, - 1.5277378559112549, - 5.929779529571533, - 6.066471576690674 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693697690963745, - 2.790419816970825, - 1.1698113679885864, - 2.8378541469573975, - 3.0218021869659424, - 2.919893980026245, - 2.20693302154541, - 2.7615139484405518, - 1.644696593284607, - 2.9512035846710205, - 1.8079805374145508, - 2.170917510986328, - 2.944347381591797, - 2.9714653491973877, - 0.7435740828514099, - 2.821129322052002, - 2.023958206176758, - 2.8142287731170654, - 2.1034460067749023, - 0.31454887986183167, - 2.165646553039551, - 1.2360169887542725, - 2.4351139068603516, - 2.4630208015441895 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sqrt float16 0D scalar", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 4.00390625 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2 - ], - "descriptor": { - "shape": [], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sqrt float16 1D constant tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.2578125, - 7.78515625, - 1.3681640625, - 8.0546875, - 9.1328125, - 8.5234375, - 4.87109375, - 7.625, - 2.705078125, - 8.7109375, - 3.26953125, - 4.7109375, - 8.671875, - 8.828125, - 0.552734375, - 7.95703125, - 4.09765625, - 7.91796875, - 4.42578125, - 0.09893798828125, - 4.69140625, - 1.52734375, - 5.9296875, - 6.06640625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693359375, - 2.791015625, - 1.169921875, - 2.837890625, - 3.021484375, - 2.919921875, - 2.20703125, - 2.76171875, - 1.64453125, - 2.951171875, - 1.80859375, - 2.169921875, - 2.9453125, - 2.970703125, - 0.74365234375, - 2.8203125, - 2.0234375, - 2.814453125, - 2.103515625, - 0.314453125, - 2.166015625, - 1.236328125, - 2.435546875, - 2.462890625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sqrt float16 1D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.2578125, - 7.78515625, - 1.3681640625, - 8.0546875, - 9.1328125, - 8.5234375, - 4.87109375, - 7.625, - 2.705078125, - 8.7109375, - 3.26953125, - 4.7109375, - 8.671875, - 8.828125, - 0.552734375, - 7.95703125, - 4.09765625, - 7.91796875, - 4.42578125, - 0.09893798828125, - 4.69140625, - 1.52734375, - 5.9296875, - 6.06640625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693359375, - 2.791015625, - 1.169921875, - 2.837890625, - 3.021484375, - 2.919921875, - 2.20703125, - 2.76171875, - 1.64453125, - 2.951171875, - 1.80859375, - 2.169921875, - 2.9453125, - 2.970703125, - 0.74365234375, - 2.8203125, - 2.0234375, - 2.814453125, - 2.103515625, - 0.314453125, - 2.166015625, - 1.236328125, - 2.435546875, - 2.462890625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sqrt float16 2D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.2578125, - 7.78515625, - 1.3681640625, - 8.0546875, - 9.1328125, - 8.5234375, - 4.87109375, - 7.625, - 2.705078125, - 8.7109375, - 3.26953125, - 4.7109375, - 8.671875, - 8.828125, - 0.552734375, - 7.95703125, - 4.09765625, - 7.91796875, - 4.42578125, - 0.09893798828125, - 4.69140625, - 1.52734375, - 5.9296875, - 6.06640625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693359375, - 2.791015625, - 1.169921875, - 2.837890625, - 3.021484375, - 2.919921875, - 2.20703125, - 2.76171875, - 1.64453125, - 2.951171875, - 1.80859375, - 2.169921875, - 2.9453125, - 2.970703125, - 0.74365234375, - 2.8203125, - 2.0234375, - 2.814453125, - 2.103515625, - 0.314453125, - 2.166015625, - 1.236328125, - 2.435546875, - 2.462890625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sqrt float16 3D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.2578125, - 7.78515625, - 1.3681640625, - 8.0546875, - 9.1328125, - 8.5234375, - 4.87109375, - 7.625, - 2.705078125, - 8.7109375, - 3.26953125, - 4.7109375, - 8.671875, - 8.828125, - 0.552734375, - 7.95703125, - 4.09765625, - 7.91796875, - 4.42578125, - 0.09893798828125, - 4.69140625, - 1.52734375, - 5.9296875, - 6.06640625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693359375, - 2.791015625, - 1.169921875, - 2.837890625, - 3.021484375, - 2.919921875, - 2.20703125, - 2.76171875, - 1.64453125, - 2.951171875, - 1.80859375, - 2.169921875, - 2.9453125, - 2.970703125, - 0.74365234375, - 2.8203125, - 2.0234375, - 2.814453125, - 2.103515625, - 0.314453125, - 2.166015625, - 1.236328125, - 2.435546875, - 2.462890625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sqrt float16 4D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.2578125, - 7.78515625, - 1.3681640625, - 8.0546875, - 9.1328125, - 8.5234375, - 4.87109375, - 7.625, - 2.705078125, - 8.7109375, - 3.26953125, - 4.7109375, - 8.671875, - 8.828125, - 0.552734375, - 7.95703125, - 4.09765625, - 7.91796875, - 4.42578125, - 0.09893798828125, - 4.69140625, - 1.52734375, - 5.9296875, - 6.06640625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693359375, - 2.791015625, - 1.169921875, - 2.837890625, - 3.021484375, - 2.919921875, - 2.20703125, - 2.76171875, - 1.64453125, - 2.951171875, - 1.80859375, - 2.169921875, - 2.9453125, - 2.970703125, - 0.74365234375, - 2.8203125, - 2.0234375, - 2.814453125, - 2.103515625, - 0.314453125, - 2.166015625, - 1.236328125, - 2.435546875, - 2.462890625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sqrt float16 5D tensor", - "graph": { - "inputs": { - "sqrtInput": { - "data": [ - 7.2578125, - 7.78515625, - 1.3681640625, - 8.0546875, - 9.1328125, - 8.5234375, - 4.87109375, - 7.625, - 2.705078125, - 8.7109375, - 3.26953125, - 4.7109375, - 8.671875, - 8.828125, - 0.552734375, - 7.95703125, - 4.09765625, - 7.91796875, - 4.42578125, - 0.09893798828125, - 4.69140625, - 1.52734375, - 5.9296875, - 6.06640625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sqrt", - "arguments": [ - { - "input": "sqrtInput" - } - ], - "outputs": "sqrtOutput" - } - ], - "expectedOutputs": { - "sqrtOutput": { - "data": [ - 2.693359375, - 2.791015625, - 1.169921875, - 2.837890625, - 3.021484375, - 2.919921875, - 2.20703125, - 2.76171875, - 1.64453125, - 2.951171875, - 1.80859375, - 2.169921875, - 2.9453125, - 2.970703125, - 0.74365234375, - 2.8203125, - 2.0234375, - 2.814453125, - 2.103515625, - 0.314453125, - 2.166015625, - 1.236328125, - 2.435546875, - 2.462890625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/sub.json b/tests/wpt_data/conformance/sub.json deleted file mode 100644 index a4f3360..0000000 --- a/tests/wpt_data/conformance/sub.json +++ /dev/null @@ -1,3089 +0,0 @@ -{ - "operation": "sub", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/sub.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "sub float32 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - }, - "inputB": { - "data": [ - -49.12813186645508, - 40.189292907714844, - 7.224666595458984, - 89.26004791259766, - -81.43340301513672, - 59.61166000366211, - 11.234410285949707, - 48.884056091308594, - 85.26825714111328, - 27.695297241210938, - 30.98945426940918, - -38.12903594970703, - -83.14810180664062, - -86.16175079345703, - 16.75888442993164, - 46.12889862060547, - -28.432477951049805, - 28.229337692260742, - 35.2364616394043, - -77.05516815185547, - -57.8714714050293, - -58.15085983276367, - 27.488866806030273, - 31.99802017211914 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.72087097167969, - -25.704608917236328, - -76.62667846679688, - -141.30532836914062, - 5.652030944824219, - -61.885711669921875, - -94.53349304199219, - -33.3062858581543, - -147.96905517578125, - 5.258705139160156, - 51.56763458251953, - -36.77735137939453, - 161.37109375, - 134.5541534423828, - -35.91242599487305, - -132.0611114501953, - 117.5560302734375, - -5.354707717895508, - 45.33327102661133, - 174.68115234375, - 110.61997985839844, - 147.31689453125, - -47.992286682128906, - 67.48905944824219 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -49.12813186645508, - 40.189292907714844, - 7.224666595458984, - 89.26004791259766, - -81.43340301513672, - 59.61166000366211, - 11.234410285949707, - 48.884056091308594, - 85.26825714111328, - 27.695297241210938, - 30.98945426940918, - -38.12903594970703, - -83.14810180664062, - -86.16175079345703, - 16.75888442993164, - 46.12889862060547, - -28.432477951049805, - 28.229337692260742, - 35.2364616394043, - -77.05516815185547, - -57.8714714050293, - -58.15085983276367, - 27.488866806030273, - 31.99802017211914 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.72087097167969, - -25.704608917236328, - -76.62667846679688, - -141.30532836914062, - 5.652030944824219, - -61.885711669921875, - -94.53349304199219, - -33.3062858581543, - -147.96905517578125, - 5.258705139160156, - 51.56763458251953, - -36.77735137939453, - 161.37109375, - 134.5541534423828, - -35.91242599487305, - -132.0611114501953, - 117.5560302734375, - -5.354707717895508, - 45.33327102661133, - 174.68115234375, - 110.61997985839844, - 147.31689453125, - -47.992286682128906, - 67.48905944824219 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -49.12813186645508, - 40.189292907714844, - 7.224666595458984, - 89.26004791259766, - -81.43340301513672, - 59.61166000366211, - 11.234410285949707, - 48.884056091308594, - 85.26825714111328, - 27.695297241210938, - 30.98945426940918, - -38.12903594970703, - -83.14810180664062, - -86.16175079345703, - 16.75888442993164, - 46.12889862060547, - -28.432477951049805, - 28.229337692260742, - 35.2364616394043, - -77.05516815185547, - -57.8714714050293, - -58.15085983276367, - 27.488866806030273, - 31.99802017211914 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.72087097167969, - -25.704608917236328, - -76.62667846679688, - -141.30532836914062, - 5.652030944824219, - -61.885711669921875, - -94.53349304199219, - -33.3062858581543, - -147.96905517578125, - 5.258705139160156, - 51.56763458251953, - -36.77735137939453, - 161.37109375, - 134.5541534423828, - -35.91242599487305, - -132.0611114501953, - 117.5560302734375, - -5.354707717895508, - 45.33327102661133, - 174.68115234375, - 110.61997985839844, - 147.31689453125, - -47.992286682128906, - 67.48905944824219 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -49.12813186645508, - 40.189292907714844, - 7.224666595458984, - 89.26004791259766, - -81.43340301513672, - 59.61166000366211, - 11.234410285949707, - 48.884056091308594, - 85.26825714111328, - 27.695297241210938, - 30.98945426940918, - -38.12903594970703, - -83.14810180664062, - -86.16175079345703, - 16.75888442993164, - 46.12889862060547, - -28.432477951049805, - 28.229337692260742, - 35.2364616394043, - -77.05516815185547, - -57.8714714050293, - -58.15085983276367, - 27.488866806030273, - 31.99802017211914 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.72087097167969, - -25.704608917236328, - -76.62667846679688, - -141.30532836914062, - 5.652030944824219, - -61.885711669921875, - -94.53349304199219, - -33.3062858581543, - -147.96905517578125, - 5.258705139160156, - 51.56763458251953, - -36.77735137939453, - 161.37109375, - 134.5541534423828, - -35.91242599487305, - -132.0611114501953, - 117.5560302734375, - -5.354707717895508, - 45.33327102661133, - 174.68115234375, - 110.61997985839844, - 147.31689453125, - -47.992286682128906, - 67.48905944824219 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -49.12813186645508, - 40.189292907714844, - 7.224666595458984, - 89.26004791259766, - -81.43340301513672, - 59.61166000366211, - 11.234410285949707, - 48.884056091308594, - 85.26825714111328, - 27.695297241210938, - 30.98945426940918, - -38.12903594970703, - -83.14810180664062, - -86.16175079345703, - 16.75888442993164, - 46.12889862060547, - -28.432477951049805, - 28.229337692260742, - 35.2364616394043, - -77.05516815185547, - -57.8714714050293, - -58.15085983276367, - 27.488866806030273, - 31.99802017211914 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.72087097167969, - -25.704608917236328, - -76.62667846679688, - -141.30532836914062, - 5.652030944824219, - -61.885711669921875, - -94.53349304199219, - -33.3062858581543, - -147.96905517578125, - 5.258705139160156, - 51.56763458251953, - -36.77735137939453, - 161.37109375, - 134.5541534423828, - -35.91242599487305, - -132.0611114501953, - 117.5560302734375, - -5.354707717895508, - 45.33327102661133, - 174.68115234375, - 110.61997985839844, - 147.31689453125, - -47.992286682128906, - 67.48905944824219 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -49.12813186645508, - 40.189292907714844, - 7.224666595458984, - 89.26004791259766, - -81.43340301513672, - 59.61166000366211, - 11.234410285949707, - 48.884056091308594, - 85.26825714111328, - 27.695297241210938, - 30.98945426940918, - -38.12903594970703, - -83.14810180664062, - -86.16175079345703, - 16.75888442993164, - 46.12889862060547, - -28.432477951049805, - 28.229337692260742, - 35.2364616394043, - -77.05516815185547, - -57.8714714050293, - -58.15085983276367, - 27.488866806030273, - 31.99802017211914 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.72087097167969, - -25.704608917236328, - -76.62667846679688, - -141.30532836914062, - 5.652030944824219, - -61.885711669921875, - -94.53349304199219, - -33.3062858581543, - -147.96905517578125, - 5.258705139160156, - 51.56763458251953, - -36.77735137939453, - 161.37109375, - 134.5541534423828, - -35.91242599487305, - -132.0611114501953, - 117.5560302734375, - -5.354707717895508, - 45.33327102661133, - 174.68115234375, - 110.61997985839844, - 147.31689453125, - -47.992286682128906, - 67.48905944824219 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -97.04911804199219 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -170.641845703125, - -111.53379821777344, - -27.64710235595703, - -45.00383377075195, - -21.267745971679688, - -94.77507019042969, - -13.750038146972656, - -112.62688446044922, - -34.34831237792969, - -130.00311279296875, - -179.606201171875, - -22.142730712890625, - -175.27210998535156, - -145.4415283203125, - -77.89557647705078, - -11.116905212402344, - -186.17266845703125, - -119.92375183105469, - -177.6188507080078, - -194.67510986328125, - -149.79762268066406, - -186.21514892578125, - -76.54570007324219, - -196.53619384765625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 10.762838363647461, - -90.23992156982422, - 12.787367820739746, - -62.44633865356445, - 32.18257522583008, - 20.359493255615234 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 62.82989501953125, - 104.72460174560547, - -82.18938446044922, - 10.401054382324219, - -107.96394348144531, - -22.633544921875, - -94.06192016601562, - 105.81768798828125, - -75.48817443847656, - 95.40034484863281, - 50.374515533447266, - -95.26588439941406, - 67.46015167236328, - 138.63232421875, - -31.94091033935547, - -23.48587417602539, - 56.940975189208984, - 2.51513671875, - 69.80689239501953, - 187.86590576171875, - 39.96113967895508, - 151.6123809814453, - -52.68599319458008, - 79.12757873535156 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - -8.39311408996582, - 75.54753112792969, - -32.325870513916016, - 8.088332176208496 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 81.98584747314453, - 22.877796173095703, - -61.00890350341797, - -127.59281921386719, - -151.3289031982422, - -77.82157897949219, - -50.973209381103516, - 47.90364074707031, - -30.374935150146484, - 24.86566925048828, - 74.46875762939453, - -82.99472045898438, - 86.61610412597656, - 56.78551483154297, - -10.760427474975586, - -161.479736328125, - 13.576019287109375, - -52.67290115356445, - 112.89559936523438, - 129.9518585205078, - 85.07437896728516, - 81.07770538330078, - -28.591751098632812, - 91.39874267578125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float32 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -97.04911804199219 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float32" - } - }, - "inputB": { - "data": [ - 73.59273529052734, - 14.4846830368042, - -69.40201568603516, - -52.045284271240234, - -75.7813720703125, - -2.2740514278411865, - -83.29907989501953, - 15.57776927947998, - -62.7008056640625, - 32.954002380371094, - 82.55709075927734, - -74.90638732910156, - 78.22299194335938, - 48.39240264892578, - -19.153541564941406, - -85.93221282958984, - 89.12355041503906, - 22.874629974365234, - 80.56973266601562, - 97.62598419189453, - 52.74850845336914, - 89.1660385131836, - -20.50341796875, - 99.48707580566406 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -170.641845703125, - -111.53379821777344, - -27.64710235595703, - -45.00383377075195, - -21.267745971679688, - -94.77507019042969, - -13.750038146972656, - -112.62688446044922, - -34.34831237792969, - -130.00311279296875, - -179.606201171875, - -22.142730712890625, - -175.27210998535156, - -145.4415283203125, - -77.89557647705078, - -11.116905212402344, - -186.17266845703125, - -119.92375183105469, - -177.6188507080078, - -194.67510986328125, - -149.79762268066406, - -186.21514892578125, - -76.54570007324219, - -196.53619384765625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "sub float16 1D constant tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - }, - "inputB": { - "data": [ - -49.125, - 40.1875, - 7.2265625, - 89.25, - -81.4375, - 59.625, - 11.234375, - 48.875, - 85.25, - 27.6875, - 30.984375, - -38.125, - -83.125, - -86.1875, - 16.765625, - 46.125, - -28.4375, - 28.234375, - 35.25, - -77.0625, - -57.875, - -58.15625, - 27.484375, - 32 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.6875, - -25.703125, - -76.625, - -141.25, - 5.625, - -61.90625, - -94.5625, - -33.3125, - -148, - 5.28125, - 51.5625, - -36.8125, - 161.375, - 134.625, - -35.9375, - -132, - 117.5625, - -5.359375, - 45.3125, - 174.75, - 110.625, - 147.375, - -48, - 67.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 1D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -49.125, - 40.1875, - 7.2265625, - 89.25, - -81.4375, - 59.625, - 11.234375, - 48.875, - 85.25, - 27.6875, - 30.984375, - -38.125, - -83.125, - -86.1875, - 16.765625, - 46.125, - -28.4375, - 28.234375, - 35.25, - -77.0625, - -57.875, - -58.15625, - 27.484375, - 32 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.6875, - -25.703125, - -76.625, - -141.25, - 5.625, - -61.90625, - -94.5625, - -33.3125, - -148, - 5.28125, - 51.5625, - -36.8125, - 161.375, - 134.625, - -35.9375, - -132, - 117.5625, - -5.359375, - 45.3125, - 174.75, - 110.625, - 147.375, - -48, - 67.5 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 2D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -49.125, - 40.1875, - 7.2265625, - 89.25, - -81.4375, - 59.625, - 11.234375, - 48.875, - 85.25, - 27.6875, - 30.984375, - -38.125, - -83.125, - -86.1875, - 16.765625, - 46.125, - -28.4375, - 28.234375, - 35.25, - -77.0625, - -57.875, - -58.15625, - 27.484375, - 32 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.6875, - -25.703125, - -76.625, - -141.25, - 5.625, - -61.90625, - -94.5625, - -33.3125, - -148, - 5.28125, - 51.5625, - -36.8125, - 161.375, - 134.625, - -35.9375, - -132, - 117.5625, - -5.359375, - 45.3125, - 174.75, - 110.625, - 147.375, - -48, - 67.5 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 3D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -49.125, - 40.1875, - 7.2265625, - 89.25, - -81.4375, - 59.625, - 11.234375, - 48.875, - 85.25, - 27.6875, - 30.984375, - -38.125, - -83.125, - -86.1875, - 16.765625, - 46.125, - -28.4375, - 28.234375, - 35.25, - -77.0625, - -57.875, - -58.15625, - 27.484375, - 32 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.6875, - -25.703125, - -76.625, - -141.25, - 5.625, - -61.90625, - -94.5625, - -33.3125, - -148, - 5.28125, - 51.5625, - -36.8125, - 161.375, - 134.625, - -35.9375, - -132, - 117.5625, - -5.359375, - 45.3125, - 174.75, - 110.625, - 147.375, - -48, - 67.5 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -49.125, - 40.1875, - 7.2265625, - 89.25, - -81.4375, - 59.625, - 11.234375, - 48.875, - 85.25, - 27.6875, - 30.984375, - -38.125, - -83.125, - -86.1875, - 16.765625, - 46.125, - -28.4375, - 28.234375, - 35.25, - -77.0625, - -57.875, - -58.15625, - 27.484375, - 32 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.6875, - -25.703125, - -76.625, - -141.25, - 5.625, - -61.90625, - -94.5625, - -33.3125, - -148, - 5.28125, - 51.5625, - -36.8125, - 161.375, - 134.625, - -35.9375, - -132, - 117.5625, - -5.359375, - 45.3125, - 174.75, - 110.625, - 147.375, - -48, - 67.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 5D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -49.125, - 40.1875, - 7.2265625, - 89.25, - -81.4375, - 59.625, - 11.234375, - 48.875, - 85.25, - 27.6875, - 30.984375, - -38.125, - -83.125, - -86.1875, - 16.765625, - 46.125, - -28.4375, - 28.234375, - 35.25, - -77.0625, - -57.875, - -58.15625, - 27.484375, - 32 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122.6875, - -25.703125, - -76.625, - -141.25, - 5.625, - -61.90625, - -94.5625, - -33.3125, - -148, - 5.28125, - 51.5625, - -36.8125, - 161.375, - 134.625, - -35.9375, - -132, - 117.5625, - -5.359375, - 45.3125, - 174.75, - 110.625, - 147.375, - -48, - 67.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 broadcast 1D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -97.0625 - ], - "descriptor": { - "shape": [ - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -170.625, - -111.5625, - -27.6875, - -45.03125, - -21.25, - -94.8125, - -13.75, - -112.625, - -34.375, - -130, - -179.625, - -22.125, - -175.25, - -145.5, - -77.875, - -11.125, - -186.25, - -119.9375, - -177.625, - -194.75, - -149.75, - -186.25, - -76.5625, - -196.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 broadcast 2D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 10.765625, - -90.25, - 12.7890625, - -62.4375, - 32.1875, - 20.359375 - ], - "descriptor": { - "shape": [ - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 62.8125, - 104.75, - -82.1875, - 10.40625, - -108, - -22.625, - -94.0625, - 105.8125, - -75.5, - 95.375, - 50.375, - -95.3125, - 67.5, - 138.625, - -31.9375, - -23.5, - 56.9375, - 2.515625, - 69.8125, - 187.875, - 39.96875, - 151.625, - -52.6875, - 79.125 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 broadcast 3D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - -8.390625, - 75.5625, - -32.3125, - 8.0859375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 1 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 81.9375, - 22.875, - -61, - -127.625, - -151.375, - -77.8125, - -51, - 47.875, - -30.375, - 24.875, - 74.5, - -83, - 86.625, - 56.8125, - -10.765625, - -161.5, - 13.5625, - -52.6875, - 112.875, - 130, - 85.0625, - 81.125, - -28.59375, - 91.4375 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub float16 broadcast 4D to 4D", - "graph": { - "inputs": { - "inputA": { - "data": [ - -97.0625 - ], - "descriptor": { - "shape": [ - 1, - 1, - 1, - 1 - ], - "dataType": "float16" - } - }, - "inputB": { - "data": [ - 73.5625, - 14.484375, - -69.375, - -52.03125, - -75.8125, - -2.2734375, - -83.3125, - 15.578125, - -62.6875, - 32.96875, - 82.5625, - -74.9375, - 78.25, - 48.40625, - -19.15625, - -85.9375, - 89.125, - 22.875, - 80.5625, - 97.625, - 52.75, - 89.1875, - -20.5, - 99.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - -170.625, - -111.5625, - -27.6875, - -45.03125, - -21.25, - -94.8125, - -13.75, - -112.625, - -34.375, - -130, - -179.625, - -22.125, - -175.25, - -145.5, - -77.875, - -11.125, - -186.25, - -119.9375, - -177.625, - -194.75, - -149.75, - -186.25, - -76.5625, - -196.5 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "sub int8 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73, - 14, - -69, - -52, - -75, - -2, - -83, - 15, - -62, - 32, - 82, - -74, - 78, - 48, - -19, - -85, - 89, - 22, - 80, - 97, - 52, - 89, - -20, - 99 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - }, - "inputB": { - "data": [ - -49, - 40, - 7, - 76, - -81, - 59, - 11, - 48, - 65, - 27, - 30, - -38, - -49, - -78, - 16, - 35, - -28, - 28, - 35, - -3, - -57, - -21, - 27, - 32 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122, - -26, - -76, - -128, - 6, - -61, - -94, - -33, - -127, - 5, - 52, - -36, - 127, - 126, - -35, - -120, - 117, - -6, - 45, - 100, - 109, - 110, - -47, - 67 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int8" - } - } - } - } - }, - { - "name": "sub uint8 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 1, - 10, - 100, - 255 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint8" - } - }, - "inputB": { - "data": [ - 1, - 8, - 88, - 254 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint8" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 2, - 12, - 1 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint8" - } - } - } - } - }, - { - "name": "sub int32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73, - 14, - -69, - -52, - -75, - -2, - -83, - 15, - -62, - 32, - 82, - -74, - 78, - 48, - -19, - -85, - 89, - 22, - 80, - 97, - 52, - 89, - -20, - 99 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - }, - "inputB": { - "data": [ - -49, - 40, - 7, - 89, - -81, - 59, - 11, - 48, - 85, - 27, - 30, - -38, - -83, - -86, - 16, - 46, - -28, - 28, - 35, - -77, - -57, - -58, - 27, - 32 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122, - -26, - -76, - -141, - 6, - -61, - -94, - -33, - -147, - 5, - 52, - -36, - 161, - 134, - -35, - -131, - 117, - -6, - 45, - 174, - 109, - 147, - -47, - 67 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int32" - } - } - } - } - }, - { - "name": "sub uint32 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 1, - 10, - 100, - 1024 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint32" - } - }, - "inputB": { - "data": [ - 1, - 8, - 88, - 1000 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint32" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 2, - 12, - 24 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint32" - } - } - } - } - }, - { - "name": "sub int64 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 73, - 14, - -69, - -52, - -75, - -2, - -83, - 15, - -62, - 32, - 82, - -74, - 78, - 48, - -19, - -85, - 89, - 22, - 80, - 97, - 52, - 89, - -20, - 99 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - }, - "inputB": { - "data": [ - -49, - 40, - 7, - 89, - -81, - 59, - 11, - 48, - 85, - 27, - 30, - -38, - -83, - -86, - 16, - 46, - -28, - 28, - 35, - -77, - -57, - -58, - 27, - 32 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 122, - -26, - -76, - -141, - 6, - -61, - -94, - -33, - -147, - 5, - 52, - -36, - 161, - 134, - -35, - -131, - 117, - -6, - 45, - 174, - 109, - 147, - -47, - 67 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "int64" - } - } - } - } - }, - { - "name": "sub uint64 4D tensors", - "graph": { - "inputs": { - "inputA": { - "data": [ - 1, - 10, - 100, - 1024 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint64" - } - }, - "inputB": { - "data": [ - 1, - 8, - 88, - 1000 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint64" - } - } - }, - "operators": [ - { - "name": "sub", - "arguments": [ - { - "a": "inputA" - }, - { - "b": "inputB" - } - ], - "outputs": "output" - } - ], - "expectedOutputs": { - "output": { - "data": [ - 0, - 2, - 12, - 24 - ], - "descriptor": { - "shape": [ - 1, - 2, - 2, - 1 - ], - "dataType": "uint64" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/tanh.json b/tests/wpt_data/conformance/tanh.json deleted file mode 100644 index dc6faa2..0000000 --- a/tests/wpt_data/conformance/tanh.json +++ /dev/null @@ -1,1107 +0,0 @@ -{ - "operation": "tanh", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/tanh.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "tanh float32 1D constant tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.473527431488037, - -1.1535595655441284, - 0.4074455797672272, - 1.8297704458236694, - 2.869000196456909, - -4.570195198059082, - 4.146744251251221, - -4.065934181213379, - -3.7128469944000244, - 0.9077175259590149, - -0.11083049327135086, - 5.955096244812012, - 1.7831857204437256, - 4.023128509521484, - 5.587857723236084, - -5.280653953552246, - 1.4147950410842896, - -5.707716941833496, - -1.443918228149414, - -1.9129083156585693, - 2.7495968341827393, - -0.7420240044593811, - 4.856568336486816, - -0.7563357949256897 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 0.9999647736549377, - -0.8189298510551453, - 0.38630160689353943, - 0.9498035907745361, - 0.9935782551765442, - -0.9997855424880981, - 0.9994998574256897, - -0.9994121193885803, - -0.9988092184066772, - 0.7200349569320679, - -0.1103789210319519, - 0.9999865293502808, - 0.945036768913269, - 0.9993596076965332, - 0.9999719858169556, - -0.9999482035636902, - 0.8885080814361572, - -0.9999779462814331, - -0.894483745098114, - -0.9573289752006531, - 0.9918531775474548, - -0.6303664445877075, - 0.9998790621757507, - -0.6389135718345642 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "tanh float32 1D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.473527431488037, - -1.1535595655441284, - 0.4074455797672272, - 1.8297704458236694, - 2.869000196456909, - -4.570195198059082, - 4.146744251251221, - -4.065934181213379, - -3.7128469944000244, - 0.9077175259590149, - -0.11083049327135086, - 5.955096244812012, - 1.7831857204437256, - 4.023128509521484, - 5.587857723236084, - -5.280653953552246, - 1.4147950410842896, - -5.707716941833496, - -1.443918228149414, - -1.9129083156585693, - 2.7495968341827393, - -0.7420240044593811, - 4.856568336486816, - -0.7563357949256897 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 0.9999647736549377, - -0.8189298510551453, - 0.38630160689353943, - 0.9498035907745361, - 0.9935782551765442, - -0.9997855424880981, - 0.9994998574256897, - -0.9994121193885803, - -0.9988092184066772, - 0.7200349569320679, - -0.1103789210319519, - 0.9999865293502808, - 0.945036768913269, - 0.9993596076965332, - 0.9999719858169556, - -0.9999482035636902, - 0.8885080814361572, - -0.9999779462814331, - -0.894483745098114, - -0.9573289752006531, - 0.9918531775474548, - -0.6303664445877075, - 0.9998790621757507, - -0.6389135718345642 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "tanh float32 2D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.473527431488037, - -1.1535595655441284, - 0.4074455797672272, - 1.8297704458236694, - 2.869000196456909, - -4.570195198059082, - 4.146744251251221, - -4.065934181213379, - -3.7128469944000244, - 0.9077175259590149, - -0.11083049327135086, - 5.955096244812012, - 1.7831857204437256, - 4.023128509521484, - 5.587857723236084, - -5.280653953552246, - 1.4147950410842896, - -5.707716941833496, - -1.443918228149414, - -1.9129083156585693, - 2.7495968341827393, - -0.7420240044593811, - 4.856568336486816, - -0.7563357949256897 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 0.9999647736549377, - -0.8189298510551453, - 0.38630160689353943, - 0.9498035907745361, - 0.9935782551765442, - -0.9997855424880981, - 0.9994998574256897, - -0.9994121193885803, - -0.9988092184066772, - 0.7200349569320679, - -0.1103789210319519, - 0.9999865293502808, - 0.945036768913269, - 0.9993596076965332, - 0.9999719858169556, - -0.9999482035636902, - 0.8885080814361572, - -0.9999779462814331, - -0.894483745098114, - -0.9573289752006531, - 0.9918531775474548, - -0.6303664445877075, - 0.9998790621757507, - -0.6389135718345642 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "tanh float32 3D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.473527431488037, - -1.1535595655441284, - 0.4074455797672272, - 1.8297704458236694, - 2.869000196456909, - -4.570195198059082, - 4.146744251251221, - -4.065934181213379, - -3.7128469944000244, - 0.9077175259590149, - -0.11083049327135086, - 5.955096244812012, - 1.7831857204437256, - 4.023128509521484, - 5.587857723236084, - -5.280653953552246, - 1.4147950410842896, - -5.707716941833496, - -1.443918228149414, - -1.9129083156585693, - 2.7495968341827393, - -0.7420240044593811, - 4.856568336486816, - -0.7563357949256897 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 0.9999647736549377, - -0.8189298510551453, - 0.38630160689353943, - 0.9498035907745361, - 0.9935782551765442, - -0.9997855424880981, - 0.9994998574256897, - -0.9994121193885803, - -0.9988092184066772, - 0.7200349569320679, - -0.1103789210319519, - 0.9999865293502808, - 0.945036768913269, - 0.9993596076965332, - 0.9999719858169556, - -0.9999482035636902, - 0.8885080814361572, - -0.9999779462814331, - -0.894483745098114, - -0.9573289752006531, - 0.9918531775474548, - -0.6303664445877075, - 0.9998790621757507, - -0.6389135718345642 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "tanh float32 4D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.473527431488037, - -1.1535595655441284, - 0.4074455797672272, - 1.8297704458236694, - 2.869000196456909, - -4.570195198059082, - 4.146744251251221, - -4.065934181213379, - -3.7128469944000244, - 0.9077175259590149, - -0.11083049327135086, - 5.955096244812012, - 1.7831857204437256, - 4.023128509521484, - 5.587857723236084, - -5.280653953552246, - 1.4147950410842896, - -5.707716941833496, - -1.443918228149414, - -1.9129083156585693, - 2.7495968341827393, - -0.7420240044593811, - 4.856568336486816, - -0.7563357949256897 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 0.9999647736549377, - -0.8189298510551453, - 0.38630160689353943, - 0.9498035907745361, - 0.9935782551765442, - -0.9997855424880981, - 0.9994998574256897, - -0.9994121193885803, - -0.9988092184066772, - 0.7200349569320679, - -0.1103789210319519, - 0.9999865293502808, - 0.945036768913269, - 0.9993596076965332, - 0.9999719858169556, - -0.9999482035636902, - 0.8885080814361572, - -0.9999779462814331, - -0.894483745098114, - -0.9573289752006531, - 0.9918531775474548, - -0.6303664445877075, - 0.9998790621757507, - -0.6389135718345642 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "tanh float32 5D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.473527431488037, - -1.1535595655441284, - 0.4074455797672272, - 1.8297704458236694, - 2.869000196456909, - -4.570195198059082, - 4.146744251251221, - -4.065934181213379, - -3.7128469944000244, - 0.9077175259590149, - -0.11083049327135086, - 5.955096244812012, - 1.7831857204437256, - 4.023128509521484, - 5.587857723236084, - -5.280653953552246, - 1.4147950410842896, - -5.707716941833496, - -1.443918228149414, - -1.9129083156585693, - 2.7495968341827393, - -0.7420240044593811, - 4.856568336486816, - -0.7563357949256897 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 0.9999647736549377, - -0.8189298510551453, - 0.38630160689353943, - 0.9498035907745361, - 0.9935782551765442, - -0.9997855424880981, - 0.9994998574256897, - -0.9994121193885803, - -0.9988092184066772, - 0.7200349569320679, - -0.1103789210319519, - 0.9999865293502808, - 0.945036768913269, - 0.9993596076965332, - 0.9999719858169556, - -0.9999482035636902, - 0.8885080814361572, - -0.9999779462814331, - -0.894483745098114, - -0.9573289752006531, - 0.9918531775474548, - -0.6303664445877075, - 0.9998790621757507, - -0.6389135718345642 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "tanh float16 1D constant tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.47265625, - -1.1533203125, - 0.407470703125, - 1.830078125, - 2.869140625, - -4.5703125, - 4.1484375, - -4.06640625, - -3.712890625, - 0.90771484375, - -0.11083984375, - 5.95703125, - 1.783203125, - 4.0234375, - 5.5859375, - -5.28125, - 1.4150390625, - -5.70703125, - -1.4443359375, - -1.9130859375, - 2.75, - -0.7421875, - 4.85546875, - -0.75634765625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 1, - -0.81884765625, - 0.38623046875, - 0.94970703125, - 0.99365234375, - -1, - 0.99951171875, - -0.99951171875, - -0.9990234375, - 0.72021484375, - -0.11041259765625, - 1, - 0.94482421875, - 0.99951171875, - 1, - -1, - 0.888671875, - -1, - -0.89453125, - -0.95751953125, - 0.99169921875, - -0.63037109375, - 1, - -0.63916015625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "tanh float16 1D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.47265625, - -1.1533203125, - 0.407470703125, - 1.830078125, - 2.869140625, - -4.5703125, - 4.1484375, - -4.06640625, - -3.712890625, - 0.90771484375, - -0.11083984375, - 5.95703125, - 1.783203125, - 4.0234375, - 5.5859375, - -5.28125, - 1.4150390625, - -5.70703125, - -1.4443359375, - -1.9130859375, - 2.75, - -0.7421875, - 4.85546875, - -0.75634765625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 1, - -0.81884765625, - 0.38623046875, - 0.94970703125, - 0.99365234375, - -1, - 0.99951171875, - -0.99951171875, - -0.9990234375, - 0.72021484375, - -0.11041259765625, - 1, - 0.94482421875, - 0.99951171875, - 1, - -1, - 0.888671875, - -1, - -0.89453125, - -0.95751953125, - 0.99169921875, - -0.63037109375, - 1, - -0.63916015625 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "tanh float16 2D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.47265625, - -1.1533203125, - 0.407470703125, - 1.830078125, - 2.869140625, - -4.5703125, - 4.1484375, - -4.06640625, - -3.712890625, - 0.90771484375, - -0.11083984375, - 5.95703125, - 1.783203125, - 4.0234375, - 5.5859375, - -5.28125, - 1.4150390625, - -5.70703125, - -1.4443359375, - -1.9130859375, - 2.75, - -0.7421875, - 4.85546875, - -0.75634765625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 1, - -0.81884765625, - 0.38623046875, - 0.94970703125, - 0.99365234375, - -1, - 0.99951171875, - -0.99951171875, - -0.9990234375, - 0.72021484375, - -0.11041259765625, - 1, - 0.94482421875, - 0.99951171875, - 1, - -1, - 0.888671875, - -1, - -0.89453125, - -0.95751953125, - 0.99169921875, - -0.63037109375, - 1, - -0.63916015625 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "tanh float16 3D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.47265625, - -1.1533203125, - 0.407470703125, - 1.830078125, - 2.869140625, - -4.5703125, - 4.1484375, - -4.06640625, - -3.712890625, - 0.90771484375, - -0.11083984375, - 5.95703125, - 1.783203125, - 4.0234375, - 5.5859375, - -5.28125, - 1.4150390625, - -5.70703125, - -1.4443359375, - -1.9130859375, - 2.75, - -0.7421875, - 4.85546875, - -0.75634765625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 1, - -0.81884765625, - 0.38623046875, - 0.94970703125, - 0.99365234375, - -1, - 0.99951171875, - -0.99951171875, - -0.9990234375, - 0.72021484375, - -0.11041259765625, - 1, - 0.94482421875, - 0.99951171875, - 1, - -1, - 0.888671875, - -1, - -0.89453125, - -0.95751953125, - 0.99169921875, - -0.63037109375, - 1, - -0.63916015625 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "tanh float16 4D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.47265625, - -1.1533203125, - 0.407470703125, - 1.830078125, - 2.869140625, - -4.5703125, - 4.1484375, - -4.06640625, - -3.712890625, - 0.90771484375, - -0.11083984375, - 5.95703125, - 1.783203125, - 4.0234375, - 5.5859375, - -5.28125, - 1.4150390625, - -5.70703125, - -1.4443359375, - -1.9130859375, - 2.75, - -0.7421875, - 4.85546875, - -0.75634765625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 1, - -0.81884765625, - 0.38623046875, - 0.94970703125, - 0.99365234375, - -1, - 0.99951171875, - -0.99951171875, - -0.9990234375, - 0.72021484375, - -0.11041259765625, - 1, - 0.94482421875, - 0.99951171875, - 1, - -1, - 0.888671875, - -1, - -0.89453125, - -0.95751953125, - 0.99169921875, - -0.63037109375, - 1, - -0.63916015625 - ], - "descriptor": { - "shape": [ - 2, - 2, - 2, - 3 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "tanh float16 5D tensor", - "graph": { - "inputs": { - "tanhInput": { - "data": [ - 5.47265625, - -1.1533203125, - 0.407470703125, - 1.830078125, - 2.869140625, - -4.5703125, - 4.1484375, - -4.06640625, - -3.712890625, - 0.90771484375, - -0.11083984375, - 5.95703125, - 1.783203125, - 4.0234375, - 5.5859375, - -5.28125, - 1.4150390625, - -5.70703125, - -1.4443359375, - -1.9130859375, - 2.75, - -0.7421875, - 4.85546875, - -0.75634765625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "tanh", - "arguments": [ - { - "input": "tanhInput" - } - ], - "outputs": "tanhOutput" - } - ], - "expectedOutputs": { - "tanhOutput": { - "data": [ - 1, - -0.81884765625, - 0.38623046875, - 0.94970703125, - 0.99365234375, - -1, - 0.99951171875, - -0.99951171875, - -0.9990234375, - 0.72021484375, - -0.11041259765625, - 1, - 0.94482421875, - 0.99951171875, - 1, - -1, - 0.888671875, - -1, - -0.89453125, - -0.95751953125, - 0.99169921875, - -0.63037109375, - 1, - -0.63916015625 - ], - "descriptor": { - "shape": [ - 2, - 1, - 4, - 1, - 3 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/conformance/transpose.json b/tests/wpt_data/conformance/transpose.json deleted file mode 100644 index 392609c..0000000 --- a/tests/wpt_data/conformance/transpose.json +++ /dev/null @@ -1,1669 +0,0 @@ -{ - "operation": "transpose", - "wpt_version": "2026-02-16", - "wpt_commit": "2c4fe5065d91a8cf0210c6ec9d45a27bdc1d1073", - "source_file": "webnn/conformance_tests/transpose.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [ - { - "name": "transpose float32 0D constant tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797 - ], - "descriptor": { - "shape": [], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 1D constant tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - }, - "constant": true - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 1D tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 2D tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 1.8434585332870483, - 46.38539123535156, - 99.46284484863281, - 53.45924758911133, - 92.8102798461914, - -84.89764404296875, - -87.58920288085938, - -60.118492126464844, - 56.100074768066406, - 56.70438766479492, - -65.3779067993164, - 38.081748962402344, - 77.05838012695312, - -25.695144653320312, - -66.00990295410156, - 78.64247131347656, - 57.46807861328125, - 5.62217378616333, - 38.466827392578125, - -69.25324249267578, - -84.74308776855469, - -25.66281509399414, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 6, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 3D tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 46.38539123535156, - 78.64247131347656, - 5.62217378616333, - 56.100074768066406, - -65.3779067993164, - 53.45924758911133, - -84.89764404296875, - -69.25324249267578, - -25.66281509399414, - 77.05838012695312, - -66.00990295410156, - -60.118492126464844, - 56.70438766479492, - 1.8434585332870483, - 99.46284484863281, - 57.46807861328125, - 38.466827392578125, - 38.081748962402344, - -25.695144653320312, - 92.8102798461914, - -87.58920288085938, - -84.74308776855469, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 4D tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 46.38539123535156, - 78.64247131347656, - 5.62217378616333, - 56.100074768066406, - -65.3779067993164, - 53.45924758911133, - -84.89764404296875, - -69.25324249267578, - -25.66281509399414, - 77.05838012695312, - -66.00990295410156, - -60.118492126464844, - 56.70438766479492, - 1.8434585332870483, - 99.46284484863281, - 57.46807861328125, - 38.466827392578125, - 38.081748962402344, - -25.695144653320312, - 92.8102798461914, - -87.58920288085938, - -84.74308776855469, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 5D tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 46.38539123535156, - 78.64247131347656, - 5.62217378616333, - 56.100074768066406, - -65.3779067993164, - 53.45924758911133, - -84.89764404296875, - -69.25324249267578, - -25.66281509399414, - 77.05838012695312, - -66.00990295410156, - -60.118492126464844, - 56.70438766479492, - 1.8434585332870483, - 99.46284484863281, - 57.46807861328125, - 38.466827392578125, - 38.081748962402344, - -25.695144653320312, - 92.8102798461914, - -87.58920288085938, - -84.74308776855469, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 4, - 3, - 1, - 2, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 1D tensor options.permutation", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - }, - { - "options": { - "permutation": [ - 0 - ] - } - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 2D tensor options.permutation", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 4, - 6 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - }, - { - "options": { - "permutation": [ - 1, - 0 - ] - } - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 1.8434585332870483, - 46.38539123535156, - 99.46284484863281, - 53.45924758911133, - 92.8102798461914, - -84.89764404296875, - -87.58920288085938, - -60.118492126464844, - 56.100074768066406, - 56.70438766479492, - -65.3779067993164, - 38.081748962402344, - 77.05838012695312, - -25.695144653320312, - -66.00990295410156, - 78.64247131347656, - 57.46807861328125, - 5.62217378616333, - 38.466827392578125, - -69.25324249267578, - -84.74308776855469, - -25.66281509399414, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 6, - 4 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 3D tensor options.permutation", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - }, - { - "options": { - "permutation": [ - 2, - 0, - 1 - ] - } - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 78.64247131347656, - 56.100074768066406, - 46.38539123535156, - 5.62217378616333, - -65.3779067993164, - 53.45924758911133, - -69.25324249267578, - 77.05838012695312, - -84.89764404296875, - -25.66281509399414, - -66.00990295410156, - -60.118492126464844, - 1.8434585332870483, - 57.46807861328125, - 56.70438766479492, - 99.46284484863281, - 38.466827392578125, - 38.081748962402344, - 92.8102798461914, - -84.74308776855469, - -25.695144653320312, - -87.58920288085938, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 4, - 2, - 3 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 4D tensor options.permutation", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 1, - 2, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - }, - { - "options": { - "permutation": [ - 2, - 3, - 0, - 1 - ] - } - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 46.38539123535156, - 53.45924758911133, - -84.89764404296875, - -60.118492126464844, - 56.70438766479492, - 38.081748962402344, - -25.695144653320312, - 78.64247131347656, - 5.62217378616333, - -69.25324249267578, - -25.66281509399414, - 1.8434585332870483, - 99.46284484863281, - 92.8102798461914, - -87.58920288085938, - 56.100074768066406, - -65.3779067993164, - 77.05838012695312, - -66.00990295410156, - 57.46807861328125, - 38.466827392578125, - -84.74308776855469, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 3, - 4, - 1, - 2 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float32 5D tensor options.permutation", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float32" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - }, - { - "options": { - "permutation": [ - 1, - 3, - 0, - 4, - 2 - ] - } - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.67443084716797, - 53.45924758911133, - -60.118492126464844, - 38.081748962402344, - 78.64247131347656, - -69.25324249267578, - 1.8434585332870483, - 92.8102798461914, - 56.100074768066406, - 77.05838012695312, - 57.46807861328125, - -84.74308776855469, - 46.38539123535156, - -84.89764404296875, - 56.70438766479492, - -25.695144653320312, - 5.62217378616333, - -25.66281509399414, - 99.46284484863281, - -87.58920288085938, - -65.3779067993164, - -66.00990295410156, - 38.466827392578125, - 2.1999382972717285 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1, - 4, - 1 - ], - "dataType": "float32" - } - } - } - } - }, - { - "name": "transpose float16 1D constant tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - }, - "constant": true - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "transpose float16 1D tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "transpose float16 3D tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.6875, - 46.375, - 78.625, - 5.62109375, - 56.09375, - -65.375, - 53.46875, - -84.875, - -69.25, - -25.65625, - 77.0625, - -66, - -60.125, - 56.71875, - 1.84375, - 99.4375, - 57.46875, - 38.46875, - 38.09375, - -25.6875, - 92.8125, - -87.5625, - -84.75, - 2.19921875 - ], - "descriptor": { - "shape": [ - 4, - 3, - 2 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "transpose float16 5D tensor default options", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.6875, - 46.375, - 78.625, - 5.62109375, - 56.09375, - -65.375, - 53.46875, - -84.875, - -69.25, - -25.65625, - 77.0625, - -66, - -60.125, - 56.71875, - 1.84375, - 99.4375, - 57.46875, - 38.46875, - 38.09375, - -25.6875, - 92.8125, - -87.5625, - -84.75, - 2.19921875 - ], - "descriptor": { - "shape": [ - 4, - 3, - 1, - 2, - 1 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "transpose float16 1D tensor options.permutation", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - }, - { - "options": { - "permutation": [ - 0 - ] - } - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 24 - ], - "dataType": "float16" - } - } - } - } - }, - { - "name": "transpose float16 5D tensor options.permutation", - "graph": { - "inputs": { - "transposeInput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 1, - 2, - 1, - 3, - 4 - ], - "dataType": "float16" - } - } - }, - "operators": [ - { - "name": "transpose", - "arguments": [ - { - "input": "transposeInput" - }, - { - "options": { - "permutation": [ - 1, - 3, - 0, - 4, - 2 - ] - } - } - ], - "outputs": "transposeOutput" - } - ], - "expectedOutputs": { - "transposeOutput": { - "data": [ - -45.6875, - 53.46875, - -60.125, - 38.09375, - 78.625, - -69.25, - 1.84375, - 92.8125, - 56.09375, - 77.0625, - 57.46875, - -84.75, - 46.375, - -84.875, - 56.71875, - -25.6875, - 5.62109375, - -25.65625, - 99.4375, - -87.5625, - -65.375, - -66, - 38.46875, - 2.19921875 - ], - "descriptor": { - "shape": [ - 2, - 3, - 1, - 4, - 1 - ], - "dataType": "float16" - } - } - } - } - } - ] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/cast.json b/tests/wpt_data/validation/cast.json deleted file mode 100644 index f86a88a..0000000 --- a/tests/wpt_data/validation/cast.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "cast", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/cast.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/clamp.json b/tests/wpt_data/validation/clamp.json deleted file mode 100644 index e750a5d..0000000 --- a/tests/wpt_data/validation/clamp.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "clamp", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/clamp.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/concat.json b/tests/wpt_data/validation/concat.json deleted file mode 100644 index 4062f98..0000000 --- a/tests/wpt_data/validation/concat.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "concat", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/concat.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/conv2d.json b/tests/wpt_data/validation/conv2d.json deleted file mode 100644 index 011e2e1..0000000 --- a/tests/wpt_data/validation/conv2d.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "conv2d", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/conv2d.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/elu.json b/tests/wpt_data/validation/elu.json deleted file mode 100644 index 90eda13..0000000 --- a/tests/wpt_data/validation/elu.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "elu", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/elu.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/expand.json b/tests/wpt_data/validation/expand.json deleted file mode 100644 index 906b288..0000000 --- a/tests/wpt_data/validation/expand.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "expand", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/expand.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/gather.json b/tests/wpt_data/validation/gather.json deleted file mode 100644 index 76e8244..0000000 --- a/tests/wpt_data/validation/gather.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "gather", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/gather.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/linear.json b/tests/wpt_data/validation/linear.json deleted file mode 100644 index 3680c37..0000000 --- a/tests/wpt_data/validation/linear.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "linear", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/linear.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/matmul.json b/tests/wpt_data/validation/matmul.json deleted file mode 100644 index 59e7a75..0000000 --- a/tests/wpt_data/validation/matmul.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "matmul", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/matmul.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/relu.json b/tests/wpt_data/validation/relu.json deleted file mode 100644 index e8ee343..0000000 --- a/tests/wpt_data/validation/relu.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "relu", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/relu.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/reshape.json b/tests/wpt_data/validation/reshape.json deleted file mode 100644 index e2a1070..0000000 --- a/tests/wpt_data/validation/reshape.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "reshape", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/reshape.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/sigmoid.json b/tests/wpt_data/validation/sigmoid.json deleted file mode 100644 index 5f96a87..0000000 --- a/tests/wpt_data/validation/sigmoid.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "sigmoid", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/sigmoid.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/slice.json b/tests/wpt_data/validation/slice.json deleted file mode 100644 index 0c02234..0000000 --- a/tests/wpt_data/validation/slice.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "slice", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/slice.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/softmax.json b/tests/wpt_data/validation/softmax.json deleted file mode 100644 index f3ca9cd..0000000 --- a/tests/wpt_data/validation/softmax.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "softmax", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/softmax.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/split.json b/tests/wpt_data/validation/split.json deleted file mode 100644 index edadada..0000000 --- a/tests/wpt_data/validation/split.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "split", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/split.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/tanh.json b/tests/wpt_data/validation/tanh.json deleted file mode 100644 index 1bf8f3d..0000000 --- a/tests/wpt_data/validation/tanh.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "tanh", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/tanh.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_data/validation/transpose.json b/tests/wpt_data/validation/transpose.json deleted file mode 100644 index ff65672..0000000 --- a/tests/wpt_data/validation/transpose.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "operation": "transpose", - "wpt_version": "2025-12-08", - "wpt_commit": "25b26d4cfd4e1ca1b288849c03fa58ee7b049ef1", - "source_file": "webnn/validation_tests/transpose.https.any.js", - "conversion_note": "This file was auto-generated from WPT JavaScript tests. Manual verification recommended. Some test cases may require manual conversion from JavaScript syntax.", - "tests": [] -} \ No newline at end of file diff --git a/tests/wpt_utils.py b/tests/wpt_utils.py index 1c53e26..72f4033 100644 --- a/tests/wpt_utils.py +++ b/tests/wpt_utils.py @@ -1,347 +1,42 @@ """ WPT (Web Platform Tests) Utilities for WebNN -This module provides utilities for running W3C Web Platform Tests against the rustnn -implementation. It includes tolerance checking, test data loading, and result validation -compatible with the official WPT WebNN test suite. +Helpers for converting WPT tensor specs to NumPy arrays and formatting failures. +Test data is loaded from WPT JavaScript via tests/wpt_js_loader.py (Node bridge). Based on: https://github.com/web-platform-tests/wpt/tree/master/webnn """ -import struct -import numpy as np -from typing import Dict, List, Union, Any, Optional -from pathlib import Path -import json - - -def ulp_distance(a: float, b: float, dtype: str = "float32") -> int: - """ - Calculate ULP (Units in Last Place) distance between two floating-point values. - - ULP distance is a measure of floating-point precision that counts the number - of representable values between two numbers. - - Args: - a: First value - b: Second value - dtype: Data type ("float32" or "float16") - - Returns: - Integer ULP distance - - Raises: - ValueError: If dtype is not supported for ULP calculation - - Examples: - >>> ulp_distance(1.0, 1.0000001, "float32") - 1 - >>> ulp_distance(0.0, 0.0, "float32") - 0 - """ - # Handle special cases - if np.isnan(a) or np.isnan(b): - if np.isnan(a) and np.isnan(b): - return 0 - return float('inf') - - if np.isinf(a) or np.isinf(b): - if a == b: - return 0 - return float('inf') - - if dtype == "float32": - # Convert to int32 bit representation - # We use unsigned interpretation for ULP distance - a_bits = struct.unpack('!I', struct.pack('!f', float(a)))[0] - b_bits = struct.unpack('!I', struct.pack('!f', float(b)))[0] - - # Handle sign bit: if signs differ, distance goes through zero - if (a_bits ^ b_bits) & 0x80000000: - # Different signs - distance is sum of distances to zero - # This matches WPT behavior for crossing zero - a_dist_to_zero = a_bits & 0x7FFFFFFF - b_dist_to_zero = b_bits & 0x7FFFFFFF - return a_dist_to_zero + b_dist_to_zero - - return abs(int(a_bits) - int(b_bits)) - - elif dtype == "float16": - # Use numpy float16 - a_half = np.float16(a) - b_half = np.float16(b) - a_bits = a_half.view(np.uint16) - b_bits = b_half.view(np.uint16) - - # Handle sign bit crossing - if (int(a_bits) ^ int(b_bits)) & 0x8000: - a_dist_to_zero = int(a_bits) & 0x7FFF - b_dist_to_zero = int(b_bits) & 0x7FFF - return a_dist_to_zero + b_dist_to_zero - - return abs(int(a_bits) - int(b_bits)) - - else: - raise ValueError(f"ULP distance not supported for dtype: {dtype}") - - -def check_ulp_tolerance( - actual: np.ndarray, - expected: np.ndarray, - tolerance: int, - dtype: str = "float32" -) -> tuple[bool, List[Dict[str, Any]]]: - """ - Check if actual values are within ULP tolerance of expected values. - - Args: - actual: Actual output array - expected: Expected output array - tolerance: Maximum allowed ULP distance - dtype: Data type for ULP calculation - - Returns: - Tuple of (all_pass, failures) where failures is a list of failure details - """ - if actual.shape != expected.shape: - return False, [{ - "reason": "shape_mismatch", - "actual_shape": actual.shape, - "expected_shape": expected.shape - }] - - actual_flat = actual.flatten() - expected_flat = expected.flatten() - - failures = [] - for i, (a, e) in enumerate(zip(actual_flat, expected_flat)): - ulp_dist = ulp_distance(float(a), float(e), dtype) - if ulp_dist > tolerance: - failures.append({ - "index": i, - "actual": float(a), - "expected": float(e), - "ulp_distance": ulp_dist, - "tolerance": tolerance - }) - - return len(failures) == 0, failures - - -def check_atol_tolerance( - actual: np.ndarray, - expected: np.ndarray, - tolerance: float -) -> tuple[bool, List[Dict[str, Any]]]: - """ - Check if actual values are within absolute tolerance of expected values. - - Args: - actual: Actual output array - expected: Expected output array - tolerance: Maximum allowed absolute difference - - Returns: - Tuple of (all_pass, failures) where failures is a list of failure details - """ - if actual.shape != expected.shape: - return False, [{ - "reason": "shape_mismatch", - "actual_shape": actual.shape, - "expected_shape": expected.shape - }] - - actual_flat = actual.flatten() - expected_flat = expected.flatten() - - failures = [] - for i, (a, e) in enumerate(zip(actual_flat, expected_flat)): - abs_diff = abs(float(a) - float(e)) - if abs_diff > tolerance: - failures.append({ - "index": i, - "actual": float(a), - "expected": float(e), - "absolute_difference": abs_diff, - "tolerance": tolerance - }) - - return len(failures) == 0, failures - - -def get_operation_tolerance( - operation: str, - test_case: Dict[str, Any] -) -> Dict[str, Any]: - """ - Get tolerance specification for an operation. - - Returns tolerance from test case if specified, otherwise returns default. - - Args: - operation: Operation name (e.g., "reduce_sum", "relu") - test_case: Test case dictionary containing optional tolerance specification - - Returns: - Tolerance dict with "type" and "value" keys - """ - # Check if test case specifies tolerance - if "tolerance" in test_case: - return test_case["tolerance"] +import math +from typing import Any, Dict, List - # Default tolerances based on operation - # These match WPT tolerances for common operations - DEFAULT_TOLERANCES = { - # Exact operations (no rounding) - "relu": {"type": "ULP", "value": 0}, - "add": {"type": "ULP", "value": 0}, - "sub": {"type": "ULP", "value": 0}, - "mul": {"type": "ULP", "value": 0}, - "reshape": {"type": "ULP", "value": 0}, - "reduce_sum": {"type": "ULP", "value": 0}, - "reduce_max": {"type": "ULP", "value": 0}, - "reduce_min": {"type": "ULP", "value": 0}, - - # Approximate operations (allow small rounding) - "sigmoid": {"type": "ULP", "value": 34}, # float32 - "tanh": {"type": "ULP", "value": 44}, # float32 - "softmax": {"type": "ULP", "value": 100}, # Accumulates error - "div": {"type": "ULP", "value": 2}, - "reduce_mean": {"type": "ULP", "value": 2}, - "reduce_product": {"type": "ULP", "value": 10}, - "reduce_l1": {"type": "ULP", "value": 2}, - "reduce_l2": {"type": "ULP", "value": 5}, - "reduce_log_sum": {"type": "ULP", "value": 10}, - "reduce_log_sum_exp": {"type": "ULP", "value": 100}, - "reduce_sum_square": {"type": "ULP", "value": 2}, - - # Convolution and pooling (backend-dependent) - "conv2d": {"type": "ULP", "value": 100}, - "conv_transpose2d": {"type": "ULP", "value": 100}, - "average_pool2d": {"type": "ULP", "value": 2}, - "max_pool2d": {"type": "ULP", "value": 0}, - "global_average_pool": {"type": "ULP", "value": 2}, - "global_max_pool": {"type": "ULP", "value": 0}, - - # Normalization (accumulates rounding) - "batch_normalization": {"type": "ULP", "value": 100}, - "instance_normalization": {"type": "ULP", "value": 100}, - "layer_normalization": {"type": "ULP", "value": 100}, - - # Matrix operations - "matmul": {"type": "ULP", "value": 100}, # Depends on size - } - - return DEFAULT_TOLERANCES.get(operation, {"type": "ULP", "value": 100}) - - -def validate_result( - actual: np.ndarray, - expected: np.ndarray, - tolerance: Dict[str, Any], - dtype: str = "float32" -) -> tuple[bool, str, Optional[List[Dict[str, Any]]]]: - """ - Validate actual result against expected with tolerance. - - Args: - actual: Actual output array - expected: Expected output array - tolerance: Tolerance specification dict - dtype: Data type for ULP calculation - - Returns: - Tuple of (passed, message, failures) - """ - tolerance_type = tolerance.get("type", "ULP") - tolerance_value = tolerance.get("value", 0) - - if tolerance_type == "ULP": - passed, failures = check_ulp_tolerance(actual, expected, tolerance_value, dtype) - if passed: - return True, f"PASS (ULP ≤ {tolerance_value})", None - else: - max_ulp = max(f["ulp_distance"] for f in failures if "ulp_distance" in f) - return False, f"FAIL (max ULP: {max_ulp}, tolerance: {tolerance_value})", failures - - elif tolerance_type == "ATOL": - passed, failures = check_atol_tolerance(actual, expected, tolerance_value) - if passed: - return True, f"PASS (ATOL ≤ {tolerance_value})", None - else: - max_diff = max(f["absolute_difference"] for f in failures if "absolute_difference" in f) - return False, f"FAIL (max diff: {max_diff:.2e}, tolerance: {tolerance_value})", failures - - else: - raise ValueError(f"Unknown tolerance type: {tolerance_type}") - - -def load_wpt_test_data( - operation: str, - category: str = "conformance", - wpt_data_dir: Optional[Path] = None -) -> Dict[str, Any]: - """ - Load WPT test data for an operation. - - Args: - operation: Operation name (e.g., "reduce_sum", "relu") - category: Test category ("conformance" or "validation") - wpt_data_dir: Optional custom WPT data directory path - - Returns: - Dict containing test data with "tests" key - - Raises: - FileNotFoundError: If test data file doesn't exist - """ - if wpt_data_dir is None: - wpt_data_dir = Path(__file__).parent / "wpt_data" - - test_file = wpt_data_dir / category / f"{operation}.json" - - if not test_file.exists(): - raise FileNotFoundError( - f"WPT test data not found: {test_file}\n" - f"Run: python scripts/convert_wpt_tests.py --operation {operation}" - ) - - with open(test_file) as f: - return json.load(f) +import numpy as np def format_test_failure( test_name: str, failures: List[Dict[str, Any]], - max_failures_shown: int = 5 + max_failures_shown: int = 5, ) -> str: - """ - Format test failure details for human-readable output. - - Args: - test_name: Name of the test that failed - failures: List of failure details - max_failures_shown: Maximum number of failures to show - - Returns: - Formatted failure message - """ + """Format test failure details for human-readable output.""" lines = [f"\n❌ Test failed: {test_name}"] lines.append(f" Total failures: {len(failures)}") lines.append(f" Showing first {min(len(failures), max_failures_shown)} failures:") for i, failure in enumerate(failures[:max_failures_shown]): if "ulp_distance" in failure: + tol = failure.get("tolerance", failure.get("ulp_tolerance", "?")) lines.append( f" [{i}] index={failure['index']}: " f"actual={failure['actual']:.6f}, expected={failure['expected']:.6f}, " - f"ULP={failure['ulp_distance']} (tolerance={failure['tolerance']})" + f"ULP={failure['ulp_distance']} (tolerance={tol})" ) elif "absolute_difference" in failure: + tol = failure.get("tolerance", failure.get("abs_tolerance", "?")) lines.append( f" [{i}] index={failure['index']}: " f"actual={failure['actual']:.6f}, expected={failure['expected']:.6f}, " - f"diff={failure['absolute_difference']:.2e} (tolerance={failure['tolerance']})" + f"diff={failure['absolute_difference']:.2e} (tolerance={tol})" ) else: lines.append(f" [{i}] {failure}") @@ -352,45 +47,22 @@ def format_test_failure( return "\n".join(lines) -def convert_bigint_values(data): - """ - Recursively convert JavaScript bigint literals (strings ending with 'n') - to Python integers in nested data structures. - - Args: - data: Data structure (can be list, int, float, str, etc.) - - Returns: - Data with bigint strings converted to integers - """ - if isinstance(data, str) and data.endswith('n'): - # Convert JavaScript bigint literal to Python int +def convert_bigint_values(data: Any) -> Any: + """Recursively convert JavaScript bigint literals (strings ending with 'n') to int.""" + if isinstance(data, str) and data.endswith("n"): try: return int(data[:-1]) except ValueError: return data - elif isinstance(data, list): - # Recursively convert lists + if isinstance(data, list): return [convert_bigint_values(item) for item in data] - else: - # Return other types as-is - return data + return data def numpy_array_from_test_data(test_data: Dict[str, Any]) -> np.ndarray: - """ - Create NumPy array from WPT test data specification. - - Args: - test_data: Dict with "data" and either "shape"/"dataType" at root - or nested in "descriptor" key - - Returns: - NumPy array with specified shape and dtype - """ + """Create a NumPy array from a WPT tensor spec (descriptor + data).""" data = convert_bigint_values(test_data["data"]) - # Check if shape/dataType are in descriptor or at root level if "descriptor" in test_data: descriptor = test_data["descriptor"] shape = descriptor["shape"] @@ -399,8 +71,7 @@ def numpy_array_from_test_data(test_data: Dict[str, Any]) -> np.ndarray: shape = test_data["shape"] dtype_str = test_data.get("dataType", "float32") - # Map WebNN data types to NumPy dtypes - DTYPE_MAP = { + dtype_map = { "float32": np.float32, "float16": np.float16, "int32": np.int32, @@ -410,25 +81,10 @@ def numpy_array_from_test_data(test_data: Dict[str, Any]) -> np.ndarray: "int64": np.int64, "uint64": np.uint64, } + np_dtype = dtype_map.get(dtype_str, np.float32) - np_dtype = DTYPE_MAP.get(dtype_str, np.float32) - - # Handle scalar data for large tensors (WPT uses scalar to avoid huge JSON files) if isinstance(data, (int, float)): - # Calculate total elements needed - import math total_elements = math.prod(shape) if shape else 1 - # Create array filled with the scalar value return np.full(shape, data, dtype=np_dtype) return np.array(data, dtype=np_dtype).reshape(shape) - - -# Tolerance presets for different operation categories -TOLERANCE_PRESETS = { - "exact": {"type": "ULP", "value": 0}, - "low": {"type": "ULP", "value": 2}, - "medium": {"type": "ULP", "value": 10}, - "high": {"type": "ULP", "value": 100}, - "very_high": {"type": "ULP", "value": 1000}, -} From 20a2669c2a4c956a7d20715c3d04b7679a699d5a Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Fri, 19 Jun 2026 01:41:32 +0200 Subject: [PATCH 7/8] Make full conformance test run with a few tweaks. More cleanup is required. --- Cargo.toml | 4 +- src/python/context_state.rs | 15 +- src/python/graph_builder.rs | 276 ++++++++++++++++++++++------------ tests/test_wpt_conformance.py | 8 +- tests/wpt_utils.py | 31 +++- 5 files changed, 236 insertions(+), 98 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3fde03c..736abb0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,8 +23,8 @@ dynamic-inputs = ["rustnn/dynamic-inputs"] [dependencies] pyo3 = { version = "0.28", features = ["extension-module"] } bytemuck = "1.14" -rustnn = { git = "https://github.com/rustnn/rustnn", branch = "main" } -#rustnn = { path = "../rustnn" } +rustnn = { path = "../rustnn" } +#rustnn = { git = "https://github.com/rustnn/rustnn", branch = "main" } serde_json = "1.0" webnn-graph = { git = "https://github.com/rustnn/webnn-graph", branch = "main" } half = "2.4" diff --git a/src/python/context_state.rs b/src/python/context_state.rs index bf8f068..2914b31 100644 --- a/src/python/context_state.rs +++ b/src/python/context_state.rs @@ -569,6 +569,18 @@ fn write_numpy_to_ml_tensor( } } +fn numpy_array_from_bytes<'py>( + py: Python<'py>, + numpy: &Bound<'py, PyModule>, + bytes: &[u8], + dtype: &str, + shape_tuple: &Bound<'py, PyTuple>, +) -> PyResult> { + let py_bytes = PyBytes::new(py, bytes); + let array = numpy.call_method1("frombuffer", (py_bytes, dtype))?; + array.call_method1("reshape", (shape_tuple,)) +} + fn read_ml_tensor_to_numpy<'py>( py: Python<'py>, state: &mut ContextState, @@ -642,8 +654,7 @@ fn read_ml_tensor_to_numpy<'py>( .ml_context .read_tensor(tensor, &mut buf) .map_err(map_rustnn_error)?; - let array = numpy.call_method1("array", (buf,))?; - array.call_method1("reshape", (shape_tuple,)) + numpy_array_from_bytes(py, numpy, &buf, "uint8", &shape_tuple) } DataType::Int64 => { let n = tensor.shape().iter().product::() as usize; diff --git a/src/python/graph_builder.rs b/src/python/graph_builder.rs index 7ffe79b..6ce8530 100644 --- a/src/python/graph_builder.rs +++ b/src/python/graph_builder.rs @@ -61,7 +61,115 @@ fn recurrent_batch_size(input_shape: &[u32]) -> u32 { } } -/// Builder for constructing WebNN computational graphs +fn parse_pool_layout(layout: Option<&str>) -> PyResult<&'static str> { + match layout.unwrap_or("nchw") { + "nchw" => Ok("nchw"), + "nhwc" => Ok("nhwc"), + other => Err(pyo3::exceptions::PyValueError::new_err(format!( + "Invalid layout '{}', must be 'nchw' or 'nhwc'", + other + ))), + } +} + +fn make_pool2d_options( + window_dimensions: Option>, + strides: Vec, + dilations: Vec, + pads: Vec, + layout: &str, + output_shape_rounding: Option<&str>, + output_sizes: Option>, +) -> MLPool2dOptions { + MLPool2dOptions { + label: String::new(), + window_dimensions, + padding: pads, + strides, + dilations, + layout: layout.to_string(), + output_shape_rounding: output_shape_rounding.unwrap_or("").to_string(), + output_sizes, + } +} + +fn pad_options_value(py: Python<'_>, value: Option>) -> PyResult> { + match value { + None => Ok(None), + Some(obj) => { + let v = obj.bind(py); + if v.is_none() { + return Ok(Some(serde_json::Value::Null)); + } + if let Ok(f) = v.extract::() { + return Ok(Some(serde_json::Value::from(f))); + } + if let Ok(i) = v.extract::() { + return Ok(Some(serde_json::Value::from(i))); + } + if let Ok(u) = v.extract::() { + return Ok(Some(serde_json::Value::from(u))); + } + if let Ok(s) = v.extract::() { + if let Ok(i) = s.parse::() { + return Ok(Some(serde_json::Value::from(i))); + } + if let Ok(f) = s.parse::() { + return Ok(Some(serde_json::Value::from(f))); + } + return Ok(Some(serde_json::Value::String(s))); + } + Err(pyo3::exceptions::PyTypeError::new_err( + "pad value must be a number or string", + )) + } + } +} + +fn clamp_limit_to_json(py: Python<'_>, value: Option>, default: f64) -> PyResult { + match value { + None => Ok(serde_json::Value::from(default)), + Some(obj) => { + let v = obj.bind(py); + if let Ok(i) = v.extract::() { + return Ok(serde_json::Value::from(i)); + } + if let Ok(u) = v.extract::() { + return Ok(serde_json::Value::from(u)); + } + if let Ok(f) = v.extract::() { + return Ok(serde_json::Value::from(f)); + } + Err(pyo3::exceptions::PyTypeError::new_err( + "clamp limit must be a number", + )) + } + } +} + +fn clamp_limits_ordered( + py: Python<'_>, + min_value: Option>, + max_value: Option>, +) -> PyResult<(serde_json::Value, serde_json::Value)> { + let min_json = clamp_limit_to_json(py, min_value, f64::NEG_INFINITY)?; + let max_json = clamp_limit_to_json(py, max_value, f64::INFINITY)?; + let ordered = match (min_json.as_i64(), max_json.as_i64()) { + (Some(min_i), Some(max_i)) => min_i <= max_i, + _ => { + let min_f = min_json.as_f64().unwrap_or(f64::NEG_INFINITY); + let max_f = max_json.as_f64().unwrap_or(f64::INFINITY); + min_f <= max_f + } + }; + if !ordered { + return Err(pyo3::exceptions::PyValueError::new_err(format!( + "clamp min_value ({}) must be <= max_value ({})", + min_json, max_json + ))); + } + Ok((min_json, max_json)) +} #[pyclass(name = "MLGraphBuilder")] pub struct PyMLGraphBuilder { context: Py, @@ -563,7 +671,7 @@ impl PyMLGraphBuilder { /// /// Returns: /// MLOperand: The output operand - #[pyo3(signature = (input, window_dimensions=None, strides=None, dilations=None, pads=None, layout=None))] + #[pyo3(signature = (input, window_dimensions=None, strides=None, dilations=None, pads=None, layout=None, output_shape_rounding=None, output_sizes=None))] fn average_pool2d( &mut self, input: &PyMLOperand, @@ -572,36 +680,26 @@ impl PyMLGraphBuilder { dilations: Option>, pads: Option>, layout: Option<&str>, + output_shape_rounding: Option<&str>, + output_sizes: Option>, ) -> PyResult { use rustnn::shape_inference::infer_pool2d_shape; - // Default values matching WebNN spec - let window_dimensions = window_dimensions.unwrap_or_else(|| vec![1, 1]); + // Default values matching WebNN spec (window_dimensions omitted => full spatial size) let strides = strides.unwrap_or_else(|| vec![1, 1]); let dilations = dilations.unwrap_or_else(|| vec![1, 1]); let pads = pads.unwrap_or_else(|| vec![0, 0, 0, 0]); + let layout_s = parse_pool_layout(layout)?; - let layout_s = match layout.unwrap_or("nchw") { - "nchw" => "nchw", - "nhwc" => "nhwc", - other => { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Invalid layout '{}', must be 'nchw' or 'nhwc'", - other - ))); - } - }; - - let pool_opts = MLPool2dOptions { - label: String::new(), - window_dimensions: Some(window_dimensions), - padding: pads, + let pool_opts = make_pool2d_options( + window_dimensions, strides, dilations, - layout: layout_s.to_string(), - output_shape_rounding: String::new(), - output_sizes: None, - }; + pads, + layout_s, + output_shape_rounding, + output_sizes, + ); // Infer output shape let output_shape = infer_pool2d_shape(&input.descriptor.static_or_max_shape(), &pool_opts) @@ -647,7 +745,7 @@ impl PyMLGraphBuilder { /// /// Returns: /// MLOperand: The output operand - #[pyo3(signature = (input, window_dimensions=None, strides=None, dilations=None, pads=None, layout=None))] + #[pyo3(signature = (input, window_dimensions=None, strides=None, dilations=None, pads=None, layout=None, output_shape_rounding=None, output_sizes=None))] fn max_pool2d( &mut self, input: &PyMLOperand, @@ -656,36 +754,26 @@ impl PyMLGraphBuilder { dilations: Option>, pads: Option>, layout: Option<&str>, + output_shape_rounding: Option<&str>, + output_sizes: Option>, ) -> PyResult { use rustnn::shape_inference::infer_pool2d_shape; - // Default values matching WebNN spec - let window_dimensions = window_dimensions.unwrap_or_else(|| vec![1, 1]); + // Default values matching WebNN spec (window_dimensions omitted => full spatial size) let strides = strides.unwrap_or_else(|| vec![1, 1]); let dilations = dilations.unwrap_or_else(|| vec![1, 1]); let pads = pads.unwrap_or_else(|| vec![0, 0, 0, 0]); + let layout_s = parse_pool_layout(layout)?; - let layout_s = match layout.unwrap_or("nchw") { - "nchw" => "nchw", - "nhwc" => "nhwc", - other => { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Invalid layout '{}', must be 'nchw' or 'nhwc'", - other - ))); - } - }; - - let pool_opts = MLPool2dOptions { - label: String::new(), - window_dimensions: Some(window_dimensions), - padding: pads, + let pool_opts = make_pool2d_options( + window_dimensions, strides, dilations, - layout: layout_s.to_string(), - output_shape_rounding: String::new(), - output_sizes: None, - }; + pads, + layout_s, + output_shape_rounding, + output_sizes, + ); // Infer output shape let output_shape = infer_pool2d_shape(&input.descriptor.static_or_max_shape(), &pool_opts) @@ -720,7 +808,7 @@ impl PyMLGraphBuilder { } /// 2D L2 Pooling operation - #[pyo3(signature = (input, window_dimensions=None, strides=None, dilations=None, pads=None, layout=None))] + #[pyo3(signature = (input, window_dimensions=None, strides=None, dilations=None, pads=None, layout=None, output_shape_rounding=None, output_sizes=None))] fn l2_pool2d( &mut self, input: &PyMLOperand, @@ -729,33 +817,23 @@ impl PyMLGraphBuilder { dilations: Option>, pads: Option>, layout: Option<&str>, + output_shape_rounding: Option<&str>, + output_sizes: Option>, ) -> PyResult { - let window_dimensions = window_dimensions.unwrap_or_else(|| vec![1, 1]); let strides = strides.unwrap_or_else(|| vec![1, 1]); let dilations = dilations.unwrap_or_else(|| vec![1, 1]); let pads = pads.unwrap_or_else(|| vec![0, 0, 0, 0]); + let layout_s = parse_pool_layout(layout)?; - let layout_s = match layout.unwrap_or("nchw") { - "nchw" => "nchw", - "nhwc" => "nhwc", - other => { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "Invalid layout '{}', must be 'nchw' or 'nhwc'", - other - ))); - } - }; - - let pool_opts = MLPool2dOptions { - label: String::new(), - window_dimensions: Some(window_dimensions), - padding: pads, + let pool_opts = make_pool2d_options( + window_dimensions, strides, dilations, - layout: layout_s.to_string(), - output_shape_rounding: String::new(), - output_sizes: None, - }; + pads, + layout_s, + output_shape_rounding, + output_sizes, + ); let output_shape = infer_pool2d_shape(&input.descriptor.static_or_max_shape(), &pool_opts) .map_err(|e| pyo3::exceptions::PyValueError::new_err(e.to_string()))?; @@ -1081,7 +1159,8 @@ impl PyMLGraphBuilder { Some(rank) if rank > 0 && rank <= input_rank => ((input_rank - rank)..input_rank) .map(|i| i as u32) .collect(), - _ => vec![(input_rank.saturating_sub(1)) as u32], + // WebNN default: normalize over axes 1..rank-1 (all non-batch dimensions). + _ => (1..input_rank as u32).collect(), } }; @@ -1687,9 +1766,9 @@ impl PyMLGraphBuilder { let output_shape = infer_dequantize_linear_shape(&input.descriptor.static_or_max_shape()) .map_err(|e| pyo3::exceptions::PyValueError::new_err(e.to_string()))?; - // Output is always float32 for dequantization + // WebNN: output dtype matches scale (float16 or float32). let output_descriptor = OperandDescriptor { - data_type: DataType::Float32, + data_type: scale.descriptor.data_type, shape: to_dimension_vector(&output_shape), pending_permutation: Vec::new(), }; @@ -2586,10 +2665,11 @@ impl PyMLGraphBuilder { #[pyo3(signature = (input, padding, mode=None, value=None))] fn pad( &mut self, + py: Python<'_>, input: &PyMLOperand, padding: Vec, mode: Option<&str>, - value: Option, + value: Option>, ) -> PyResult { use rustnn::shape_inference::infer_pad_shape; @@ -2622,7 +2702,7 @@ impl PyMLGraphBuilder { let pad_opts = MLPadOptions { label: String::new(), mode: mode_str.to_string(), - value: value.map(serde_json::Value::from), + value: pad_options_value(py, value)?, }; self.push_op(Operation::Pad { @@ -2997,6 +3077,14 @@ impl PyMLGraphBuilder { /// Returns: /// MLGraph: The compiled graph fn build(&mut self, py: Python<'_>, outputs: &Bound<'_, PyDict>) -> PyResult { + // Operation results are tagged Output during construction; demote before binding graph outputs. + for operand in &mut self.operands { + if matches!(operand.kind, OperandKind::Output) { + operand.kind = OperandKind::Intermediate; + operand.name = None; + } + } + let mut output_operands = Vec::new(); // Mark outputs and collect output IDs @@ -3480,22 +3568,17 @@ impl PyMLGraphBuilder { /// Example: /// # ReLU6: clamp(x, 0, 6) /// relu6 = builder.clamp(x, min_value=0.0, max_value=6.0) - #[pyo3(signature = (input, min_value=f32::NEG_INFINITY, max_value=f32::INFINITY))] + #[pyo3(signature = (input, min_value=None, max_value=None))] fn clamp( &mut self, + py: Python<'_>, input: &PyMLOperand, - min_value: f32, - max_value: f32, + min_value: Option>, + max_value: Option>, ) -> PyResult { use rustnn::shape_inference::infer_clamp_shape; - // Validate min <= max - if min_value > max_value { - return Err(pyo3::exceptions::PyValueError::new_err(format!( - "clamp min_value ({}) must be <= max_value ({})", - min_value, max_value - ))); - } + let (min_json, max_json) = clamp_limits_ordered(py, min_value, max_value)?; let output_shape = infer_clamp_shape(&input.descriptor.static_or_max_shape()); @@ -3510,8 +3593,8 @@ impl PyMLGraphBuilder { let clamp_opts = MLClampOptions { label: String::new(), - min_value: Some(serde_json::Value::from(f64::from(min_value))), - max_value: Some(serde_json::Value::from(f64::from(max_value))), + min_value: Some(min_json), + max_value: Some(max_json), }; self.push_op(Operation::Clamp { @@ -3870,7 +3953,7 @@ impl PyMLGraphBuilder { } /// GRU recurrent network - #[pyo3(signature = (input, weight, recurrent_weight, steps, hidden_size, bias=None, recurrent_bias=None, initial_hidden_state=None, reset_after=false, return_sequence=false, direction="forward", layout="zrn"))] + #[pyo3(signature = (input, weight, recurrent_weight, steps, hidden_size, bias=None, recurrent_bias=None, initial_hidden_state=None, reset_after=false, return_sequence=false, direction="forward", layout="zrn", activations=None))] fn gru( &mut self, input: &PyMLOperand, @@ -3885,6 +3968,7 @@ impl PyMLGraphBuilder { return_sequence: bool, direction: &str, layout: &str, + activations: Option>, ) -> PyResult> { let num_dir = recurrent_num_directions(direction); let batch = recurrent_batch_size(&input.descriptor.static_or_max_shape()); @@ -3909,7 +3993,7 @@ impl PyMLGraphBuilder { return_sequence, direction: direction.to_string(), layout: layout.to_string(), - activations: None, + activations, }; self.push_op(Operation::Gru { @@ -3926,7 +4010,7 @@ impl PyMLGraphBuilder { } /// GRU cell (single step) - #[pyo3(signature = (input, weight, recurrent_weight, hidden_state, hidden_size, bias=None, recurrent_bias=None, reset_after=false, layout="zrn"))] + #[pyo3(signature = (input, weight, recurrent_weight, hidden_state, hidden_size, bias=None, recurrent_bias=None, reset_after=false, layout="zrn", activations=None))] fn gru_cell( &mut self, input: &PyMLOperand, @@ -3938,6 +4022,7 @@ impl PyMLGraphBuilder { recurrent_bias: Option<&PyMLOperand>, reset_after: bool, layout: &str, + activations: Option>, ) -> PyResult { let output_descriptor = if hidden_state.descriptor.static_or_max_shape().is_empty() { let input_shape = input.descriptor.static_or_max_shape(); @@ -3959,7 +4044,7 @@ impl PyMLGraphBuilder { recurrent_bias: recurrent_bias.map(|o| o.id), reset_after, layout: layout.to_string(), - activations: None, + activations, }; self.push_op(Operation::GruCell { @@ -3976,7 +4061,7 @@ impl PyMLGraphBuilder { } /// LSTM recurrent network - #[pyo3(signature = (input, weight, recurrent_weight, steps, hidden_size, bias=None, recurrent_bias=None, peephole_weight=None, initial_hidden_state=None, initial_cell_state=None, return_sequence=false, direction="forward", layout="iofg"))] + #[pyo3(signature = (input, weight, recurrent_weight, steps, hidden_size, bias=None, recurrent_bias=None, peephole_weight=None, initial_hidden_state=None, initial_cell_state=None, return_sequence=false, direction="forward", layout="iofg", activations=None))] fn lstm( &mut self, input: &PyMLOperand, @@ -3992,6 +4077,7 @@ impl PyMLGraphBuilder { return_sequence: bool, direction: &str, layout: &str, + activations: Option>, ) -> PyResult> { let num_dir = recurrent_num_directions(direction); let batch = recurrent_batch_size(&input.descriptor.static_or_max_shape()); @@ -4020,7 +4106,7 @@ impl PyMLGraphBuilder { return_sequence, direction: direction.to_string(), layout: layout.to_string(), - activations: None, + activations, }; self.push_op(Operation::Lstm { @@ -4037,7 +4123,7 @@ impl PyMLGraphBuilder { } /// LSTM cell (single step) - #[pyo3(signature = (input, weight, recurrent_weight, hidden_state, cell_state, hidden_size, bias=None, recurrent_bias=None, peephole_weight=None, layout="iofg"))] + #[pyo3(signature = (input, weight, recurrent_weight, hidden_state, cell_state, hidden_size, bias=None, recurrent_bias=None, peephole_weight=None, layout="iofg", activations=None))] fn lstm_cell( &mut self, input: &PyMLOperand, @@ -4050,6 +4136,7 @@ impl PyMLGraphBuilder { recurrent_bias: Option<&PyMLOperand>, peephole_weight: Option<&PyMLOperand>, layout: &str, + activations: Option>, ) -> PyResult> { let output_ids = vec![self.next_operand_id, self.next_operand_id + 1]; self.next_operand_id += 2; @@ -4060,7 +4147,7 @@ impl PyMLGraphBuilder { recurrent_bias: recurrent_bias.map(|o| o.id), peephole_weight: peephole_weight.map(|o| o.id), layout: layout.to_string(), - activations: None, + activations, }; self.push_op(Operation::LstmCell { @@ -4377,8 +4464,13 @@ impl PyMLGraphBuilder { ) -> PyResult { use rustnn::shape_inference::{infer_reduce_shape, ReduceOptions}; + let infer_axes = match &axes { + None => (0..input.descriptor.static_or_max_shape().len() as u32).collect(), + Some(v) => v.clone(), + }; + let infer_opts = ReduceOptions { - axes: axes.clone().unwrap_or_default(), + axes: infer_axes, keep_dimensions, }; diff --git a/tests/test_wpt_conformance.py b/tests/test_wpt_conformance.py index 8c17f83..bf16b7d 100644 --- a/tests/test_wpt_conformance.py +++ b/tests/test_wpt_conformance.py @@ -28,6 +28,7 @@ from runtime_support import COREML_BACKEND_AVAILABLE, EXECUTION_BACKEND_AVAILABLE from wpt_assert import assert_output_close +from wpt_tolerance_fallback import compute_wpt_tolerance_fallback from wpt_execute_graph import execute_graph_resources, normalize_op_name from wpt_js_loader import ( default_wpt_dir, @@ -227,7 +228,12 @@ def test_wpt_conformance(context, backend_name, wpt_test_case, wpt_file, operati tolerance = wpt_test_case.get("tolerance") if tolerance is None: - tolerance = resolve_wpt_tolerance(Path(wpt_file), graph, wpt_dir=default_wpt_dir()) + try: + tolerance = resolve_wpt_tolerance(Path(wpt_file), graph, wpt_dir=default_wpt_dir()) + except RuntimeError: + tolerance = None + if tolerance is None: + tolerance = compute_wpt_tolerance_fallback(graph) operators = graph.get("operators") or [] graph_operator_names = [normalize_op_name(op.get("name", "")) for op in operators] last_op = graph_operator_names[-1] if graph_operator_names else "unknown" diff --git a/tests/wpt_utils.py b/tests/wpt_utils.py index 72f4033..67fa951 100644 --- a/tests/wpt_utils.py +++ b/tests/wpt_utils.py @@ -47,6 +47,29 @@ def format_test_failure( return "\n".join(lines) +def _clamp_wpt_int64(value: int) -> int: + """Clamp out-of-range WPT/JS Number literals to int64 (e.g. INT64_MIN approximations).""" + info = np.iinfo(np.int64) + if value > info.max: + return int(info.max) + if value < info.min: + return int(info.min) + return value + + +def _parse_wpt_int64_scalar(value: Any) -> int: + if isinstance(value, str): + text = value.strip() + if text.endswith("n"): + return _clamp_wpt_int64(int(text[:-1])) + return _clamp_wpt_int64(int(text)) + if isinstance(value, int): + return _clamp_wpt_int64(value) + if isinstance(value, float): + return _clamp_wpt_int64(int(value)) + raise TypeError(f"cannot parse int64 WPT value: {value!r}") + + def convert_bigint_values(data: Any) -> Any: """Recursively convert JavaScript bigint literals (strings ending with 'n') to int.""" if isinstance(data, str) and data.endswith("n"): @@ -85,6 +108,12 @@ def numpy_array_from_test_data(test_data: Dict[str, Any]) -> np.ndarray: if isinstance(data, (int, float)): total_elements = math.prod(shape) if shape else 1 - return np.full(shape, data, dtype=np_dtype) + fill = _parse_wpt_int64_scalar(data) if dtype_str == "int64" else data + if dtype_str == "uint64": + fill = int(data) + return np.full(shape, fill, dtype=np_dtype) + + if dtype_str == "int64": + return np.array([_parse_wpt_int64_scalar(v) for v in data], dtype=np_dtype).reshape(shape) return np.array(data, dtype=np_dtype).reshape(shape) From 27e5a3979b74227c7d0d4278056f6dd8b4ee2d6f Mon Sep 17 00:00:00 2001 From: Markus Tavenrath Date: Fri, 19 Jun 2026 02:05:32 +0200 Subject: [PATCH 8/8] remove test skipping and filter out js files without actual tests. --- tests/test_wpt_conformance.py | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/tests/test_wpt_conformance.py b/tests/test_wpt_conformance.py index bf16b7d..eee439f 100644 --- a/tests/test_wpt_conformance.py +++ b/tests/test_wpt_conformance.py @@ -149,9 +149,9 @@ def pytest_generate_tests(metafunc): except (RuntimeError, FileNotFoundError, json.JSONDecodeError) as err: if "No webnn_conformance_test" in str(err): continue - test_params.append((None, js_path, operation)) - test_ids.append(f"{operation}::load_error") - continue + raise RuntimeError( + f"Failed to load WPT graph conformance file {js_path.name}: {err}" + ) from err for test_case in loaded.get("tests", []): marks = [] @@ -214,8 +214,6 @@ def test_wpt_conformance(context, backend_name, wpt_test_case, wpt_file, operati if skip_reason: pytest.skip(skip_reason) - _apply_known_skips(operation, test_name) - try: results = execute_graph_resources(context, graph) except NotImplementedError as err: @@ -252,20 +250,4 @@ def test_wpt_conformance(context, backend_name, wpt_test_case, wpt_file, operati ) -def _apply_known_skips(operation: str, test_name: str) -> None: - """Skip tests with known cross-backend architectural limitations.""" - skip_patterns = [ - ("instance_normalization", "nhwc"), - ("instance_normalization", "all options"), - ("layer_normalization", "axes=[0, 2]"), - ("layer_normalization", "all options"), - ("layer_normalization", "options.scale"), - ("batch_normalization", "1d tensor"), - ("batch_normalization", "nhwc tensor"), - ] - for op_pattern, name_pattern in skip_patterns: - if operation == op_pattern and name_pattern.lower() in test_name.lower(): - pytest.skip(f"{operation} architectural limitation (see docs/implementation-status.md)") - - pytestmark = pytest.mark.wpt