{ "op": "ai.onnx.ReduceMin", "fixtureArrays": { "rank3_axis2_last_keepdims_input_x": [4, -1, 2, -1, 8, 7, 6, 5, -3, -4, -4, 2, 0, 9, -8, 3, -2, -6, 1, 10, 5, -5, -7, 4] }, "cases": [ { "name": "all_axes_flat_positive_infinity_identity_8192", "provenance": { "notes": "The parallel full-reduction threshold must supersede the rank1 serial and row-reduction fallbacks, while preserving the true +Infinity identity." }, "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [8192], "data": { "kind": "cycle", "values": ["Infinity"] } } }, "outputs": { "y": { "dtype": "float32", "shape": [], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0, "relTolerance": 0 } } }, { "name": "all_axes_flat_fullreduce_32x32x32_keepdims", "attrs": { "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [32, 32, 32], "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.5 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0 } } }, { "name": "f32_negative_subnormal_axis1_gpu_gap", "skipGpu": { "category": "permanent", "reason": "Portable WGSL floating-point semantics do not guarantee preservation of the subnormal values required by this fixture. Backend evidence: WebGPU/Metal flushes subnormals to zero in f32; bit-exact subnormal preservation is unattainable on GPU." }, "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReduceMin", "notes": "A negative subnormal is the row minimum over zero; flushing it changes the selected value." }, "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [1, 3], "data": { "kind": "values", "values": [1e-40, 0.0, -1e-40] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1], "tolerance": 0 } } }, { "name": "dispatch_cliff_axis1_16776961x1", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [16776961, 1], "data": { "kind": "linspace", "start": -5.0, "end": 5.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [16776961], "tolerance": 0 } } }, { "name": "degenerate_axis1_vec4_tail_17x1", "provenance": { "notes": "Compact correctness coverage for the vectorized singleton-axis copy plus its one-element scalar tail." }, "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [17, 1], "data": { "kind": "linspace", "start": -8.0, "end": 8.0 } } }, "outputs": { "y": { "dtype": "float32", "shape": [17], "tolerance": 0 } } }, { "name": "degenerate_axis1_vec4_aligned_i32_16x1", "provenance": { "notes": "Compact native-integer coverage for the aligned vectorized singleton-axis copy." }, "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "int32", "shape": [16, 1], "data": { "kind": "cycle", "values": [16777217, -16777219, 7, -3] } } }, "outputs": { "y": { "dtype": "int32", "shape": [16], "tolerance": 0 } } }, { "name": "axis0", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 4], "data": { "kind": "values", "values": [1.0, 9.0, 3.0, 4.0, -1.0, 2.0, 7.0, 8.0, 0.0, 5.0, -3.0, 6.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [4] } } }, { "name": "axis0_tilecols_positive_infinity_identity_64x16", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [64, 16], "data": { "kind": "cycle", "values": ["Infinity"] } } }, "outputs": { "y": { "dtype": "float32", "shape": [16], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0, "relTolerance": 0 } } }, { "name": "int32_axis0_tiled_64x32", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "int32", "shape": [64, 32], "data": { "kind": "cycle", "values": [-16777216, -16777245, -16777274, -16777236, -16777265, -16777227, -16777256, -16777218, -16777247, -16777276, -16777238, -16777267, -16777229, -16777258, -16777220, -16777249, -16777278, -16777240, -16777269, -16777231, -16777260, -16777222, -16777251, -16777280, -16777242, -16777271, -16777233, -16777262, -16777224, -16777253, -16777282, -16777244, -16777273, -16777235, -16777264, -16777226, -16777255, -16777217, -16777246, -16777275, -16777237, -16777266, -16777228, -16777257, -16777219, -16777248, -16777277, -16777239, -16777268, -16777230, -16777259, -16777221, -16777250, -16777279, -16777241, -16777270, -16777232, -16777261, -16777223, -16777252, -16777281, -16777243, -16777272, -16777234, -16777263, -16777225, -16777254] } } }, "outputs": { "y": { "dtype": "int32", "shape": [32], "tolerance": 0 } } }, { "name": "axis1", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 4], "data": { "kind": "values", "values": [1.0, 9.0, 3.0, 4.0, -1.0, 2.0, 7.0, 8.0, 0.0, 5.0, -3.0, 6.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3] } } }, { "name": "ort_axis1_nan_seed_comparison_gpu_gap", "skipGpu": { "category": "todo", "reason": "The parallel min/max reduction routes do not yet preserve the reference's first-element NaN incumbent semantics; explicit NaN tracking is implementable in WGSL." }, "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin", "notes": "NaN extension: ORT seeds ReduceMin from the first reduced element, so a leading NaN remains the result while later NaNs are ignored after a finite incumbent." }, "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 4], "data": { "kind": "values", "values": ["NaN", 1.0, -2.0, 0.0, 1.0, "NaN", -2.0, 0.0, 1.0, -2.0, "NaN", 0.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": ["NaN", -2.0, -2.0] }, "tolerance": 0, "allowNaN": true } } }, { "name": "axis0_empty_rows_positive_infinity_identity_f32", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [0, 3], "data": { "kind": "values", "values": [] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0 } } }, { "name": "axis1_empty_cols_positive_infinity_identity_f32", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 0], "data": { "kind": "values", "values": [] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0 } } }, { "name": "axis1_keepdims", "attrs": { "axes": [1], "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 4], "data": { "kind": "values", "values": [4.0, -1.0, 2.0, -1.0, 8.0, 7.0, 6.0, 5.0, -3.0, -4.0, -4.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 1], "tolerance": 0.000001 } } }, { "name": "axis1_all_positive_infinity_returns_positive_infinity", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 4], "data": { "kind": "values", "values": ["Infinity", "Infinity", "Infinity", "Infinity", "Infinity", 7.0, "Infinity", 9.0, 3.0, "Infinity", 5.0, "Infinity"] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3], "tolerance": 0 } } }, { "name": "ort_mixed_infinities_axis1", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceInfMin" }, "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [6, 2], "data": { "kind": "values", "values": [1.0, "Infinity", "Infinity", 4.0, "Infinity", "-Infinity", "-Infinity", "Infinity", 1.0, "-Infinity", "-Infinity", 4.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [6], "tolerance": 0 } } }, { "name": "rank3_axis2_last_keepdims", "attrs": { "axes": [2], "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 3, 4], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/rank3_axis2_last_keepdims_input_x" } } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 1], "tolerance": 0.000001 } } }, { "name": "rank4_axis1_channel_no_keepdims", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 3, 2, 2], "data": { "kind": "values", "values": { "$ref": "#/fixtureArrays/rank3_axis2_last_keepdims_input_x" } } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 2, 2], "tolerance": 0.000001 } } }, { "name": "rank1_axis0_scalar_output", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [7], "data": { "kind": "values", "values": [4.0, -8.0, 2.0, -8.0, 0.0, 5.0, -1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0.000001 } } }, { "name": "ort_int32_axis0_no_keepdims", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin_int32", "notes": "Single-axis subset adapted from ORT's multi-axis integer reduction fixture because this framework models one reduction axis per case." }, "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "int32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } } }, "outputs": { "y": { "dtype": "int32", "shape": [2, 2], "tolerance": 0 } } }, { "name": "int32_axis1_exact_above_float24", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "int32", "shape": [2, 3], "data": { "kind": "values", "values": [16777217, 16777216, 5, -16777216, -16777217, 3] } } }, "outputs": { "y": { "dtype": "int32", "shape": [2], "tolerance": 0 } } }, { "name": "ort_axis1_rank3_no_keepdims", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin_do_not_keepdims" }, "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [5.0, 1.0, 20.0, 2.0, 30.0, 1.0, 40.0, 2.0, 55.0, 1.0, 60.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 2], "tolerance": 0.000001 } } }, { "name": "ort_axis1_rank3_keepdims", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin_keepdims" }, "attrs": { "axes": [1], "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [5.0, 1.0, 20.0, 2.0, 30.0, 1.0, 40.0, 2.0, 55.0, 1.0, 60.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 1, 2], "tolerance": 0.000001 } } }, { "name": "ort_axis0_rank1_scalar", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin_do_not_keepdims_2" }, "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [3], "data": { "kind": "values", "values": [5.0, 1.0, 20.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0.000001 } } }, { "name": "ort_float_axes02_rank3_keepdims1", "attrs": { "axes": [0, 2], "keepdims": 1 }, "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin", "notes": "Direct multi-axis reduction from ORT." }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 1], "data": { "kind": "values", "values": [1.0, 3.0] }, "tolerance": 0 } } }, { "name": "ort_rank0_scalar", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin0DTensor" }, "inputs": { "x": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [], "tolerance": 0 } } }, { "name": "onnx_backend_reduce_min_do_not_keepdims_example", "attrs": { "keepdims": 0, "axes": [1] }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [5.0, 1.0, 20.0, 2.0, 30.0, 1.0, 40.0, 2.0, 55.0, 1.0, 60.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 2] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_example", "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." } }, { "name": "onnx_backend_reduce_min_do_not_keepdims_random", "attrs": { "keepdims": 0, "axes": [1] }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [0.9762700796127319, 4.3037872314453125, 2.055267572402954, 0.8976636528968811, -1.5269039869308472, 2.917882204055786, -1.248255729675293, 7.835460186004639, 9.273255348205566, -2.331169605255127, 5.834500789642334, 0.577898383140564] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 2] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random", "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." } }, { "name": "onnx_backend_reduce_min_empty_set", "attrs": { "keepdims": 1, "axes": [1] }, "inputs": { "x": { "dtype": "float32", "shape": [2, 0, 4], "data": { "kind": "values", "values": [] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 4] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_empty_set", "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." } }, { "name": "onnx_backend_reduce_min_keepdims_example", "attrs": { "keepdims": 1, "axes": [1] }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [5.0, 1.0, 20.0, 2.0, 30.0, 1.0, 40.0, 2.0, 55.0, 1.0, 60.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 1, 2] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example", "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." } }, { "name": "onnx_backend_reduce_min_keepdims_random", "attrs": { "keepdims": 1, "axes": [1] }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [0.9762700796127319, 4.3037872314453125, 2.055267572402954, 0.8976636528968811, -1.5269039869308472, 2.917882204055786, -1.248255729675293, 7.835460186004639, 9.273255348205566, -2.331169605255127, 5.834500789642334, 0.577898383140564] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 1, 2] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_random", "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." } }, { "name": "onnx_backend_reduce_min_negative_axes_keepdims_example", "attrs": { "keepdims": 1, "axes": [-2] }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [5.0, 1.0, 20.0, 2.0, 30.0, 1.0, 40.0, 2.0, 55.0, 1.0, 60.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 1, 2] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_example", "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." } }, { "name": "onnx_backend_reduce_min_negative_axes_keepdims_random", "attrs": { "keepdims": 1, "axes": [-2] }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [0.9762700796127319, 4.3037872314453125, 2.055267572402954, 0.8976636528968811, -1.5269039869308472, 2.917882204055786, -1.248255729675293, 7.835460186004639, 9.273255348205566, -2.331169605255127, 5.834500789642334, 0.577898383140564] } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 1, 2] } }, "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_random", "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." } }, { "name": "ort_int32_empty_axis0_keepdims_max_identity", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin_int32_EmptySet", "notes": "The ONNX int64 axes input is materialized as this compile-time axes list." }, "attrs": { "axes": [0], "keepdims": 1 }, "inputs": { "x": { "dtype": "int32", "shape": [0, 3], "data": { "kind": "values", "values": [] } } }, "outputs": { "y": { "dtype": "int32", "shape": [1, 3], "tolerance": 0 } } }, { "name": "ort_empty_set_default_axes_keepdims_f32", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.empty_set_ReduceMin", "notes": "An omitted axes input reduces all dimensions when noop_with_empty_axes is 0." }, "attrs": { "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 0, 3], "data": { "kind": "values", "values": [] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1], "data": { "kind": "values", "values": ["Infinity"] }, "tolerance": 0 } } }, { "name": "onnx_backend_reduce_min_default_axes_keepdims_example", "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example" }, "attrs": { "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [5.0, 1.0, 20.0, 2.0, 30.0, 1.0, 40.0, 2.0, 55.0, 1.0, 60.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0 } } }, { "name": "ort_default_axes_rank3_no_keepdims_scalar", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin_default_axes_do_not_keep_dims", "notes": "Default axes reduce all input dimensions to a rank-0 scalar when keepdims=0." }, "attrs": { "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [5.0, 1.0, 20.0, 2.0, 30.0, 1.0, 40.0, 2.0, 55.0, 1.0, 60.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [], "data": { "kind": "values", "values": [1.0] }, "tolerance": 0 } } }, { "name": "onnx_backend_reduce_min_default_axes_keepdims_random", "provenance": { "source": "cmake/external/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_random" }, "attrs": { "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 2, 2], "data": { "kind": "values", "values": [0.9762700796127319, 4.3037872314453125, 2.055267572402954, 0.8976636528968811, -1.5269039869308472, 2.917882204055786, -1.248255729675293, 7.835460186004639, 9.273255348205566, -2.331169605255127, 5.834500789642334, 0.577898383140564] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 1], "tolerance": 0 } } }, { "name": "subgroup_vec4_last_axis_2x256", "attrs": { "axes": [-1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 256], "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.29 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0 } } }, { "name": "subgroup_scalar_last_axis_2x65", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 65], "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.11 } } }, "outputs": { "y": { "dtype": "float32", "shape": [2], "tolerance": 0 } } }, { "name": "subgroup_vec4_int32_above_float24", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "int32", "shape": [2, 4], "data": { "kind": "values", "values": [16777217, 16777219, 16777218, 16777220, -16777217, -16777219, -16777218, -16777220] } } }, "outputs": { "y": { "dtype": "int32", "shape": [2], "data": { "kind": "values", "values": [16777217, -16777220] } } } }, { "name": "ort_bool_axis0_keepdims0", "attrs": { "axes": [0], "keepdims": 0 }, "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "test_bool_ReduceMin_9" }, "inputs": { "x": { "dtype": "bool", "shape": [2, 3, 2], "data": { "kind": "values", "values": [0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1] } } }, "outputs": { "y": { "dtype": "bool", "shape": [3, 2], "data": { "kind": "values", "values": [0, 0, 0, 1, 0, 1] } } } }, { "name": "ort_bool_axis2_keepdims1", "attrs": { "axes": [2], "keepdims": 1 }, "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "test_bool_ReduceMin_15" }, "inputs": { "x": { "dtype": "bool", "shape": [2, 3, 2], "data": { "kind": "values", "values": [0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1] } } }, "outputs": { "y": { "dtype": "bool", "shape": [2, 3, 1], "data": { "kind": "values", "values": [0, 1, 0, 0, 0, 0] } } } }, { "name": "ort_bool_all_axes_keepdims1", "attrs": { "keepdims": 1 }, "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "test_bool_ReduceMin_19", "notes": "The fixture now uses the standard Boolean route introduced by ONNX ReduceMin-20." }, "inputs": { "x": { "dtype": "bool", "shape": [2, 3, 2], "data": { "kind": "values", "values": [0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1] } } }, "outputs": { "y": { "dtype": "bool", "shape": [1, 1, 1], "data": { "kind": "values", "values": [0] }, "tolerance": 0 } } }, { "name": "ort_bool_all_axes_keepdims0_scalar", "attrs": { "keepdims": 0 }, "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "test_bool_ReduceMin_17", "notes": "The fixture now uses the standard Boolean route introduced by ONNX ReduceMin-20." }, "inputs": { "x": { "dtype": "bool", "shape": [2, 3, 2], "data": { "kind": "values", "values": [0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1] } } }, "outputs": { "y": { "dtype": "bool", "shape": [], "data": { "kind": "values", "values": [0] }, "tolerance": 0 } } }, { "name": "ort_noop_empty_axes_identity", "provenance": { "source": "onnxruntime/test/providers/cpu/reduction/reduction_ops_test.cc", "test": "ReductionOpTest.ReduceMin_noop_axes_input_initializer_opset_18", "notes": "The omitted axes input exercises empty-axes behavior." }, "attrs": { "keepdims": 0, "noop_with_empty_axes": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [1, 2, 2], "data": { "kind": "values", "values": [1.0, 2.0, 3.0, 4.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 2, 2], "tolerance": 0 } } }, { "name": "rank3_lastaxis_cols1024_tree_f32", "attrs": { "axes": [2], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 2, 1024], "data": { "kind": "cycle", "values": [1.0, -2.0, 0.5, 3.25, -1.5, 2.0, -0.75, 4.0, -3.5, 1.25, 0.0, -2.25, 5.0, -4.0, 2.75, -1.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 2], "tolerance": 0.00001 } } }, { "name": "rank3_lastaxis_cols1024_tree_i32", "attrs": { "axes": [2], "keepdims": 0 }, "inputs": { "x": { "dtype": "int32", "shape": [2, 2, 1024], "data": { "kind": "cycle", "values": [3, -7, 11, -2, 5, -13, 8, -1, 19, -4, 6, -9, 2, -15, 10, -6] } } }, "outputs": { "y": { "dtype": "int32", "shape": [2, 2], "tolerance": 0.00001 } } }, { "name": "axis0_splitk_positive_infinity_identity_8192x2", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [8192, 2], "data": { "kind": "cycle", "values": ["Infinity"] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0, "relTolerance": 0 } } }, { "name": "axis0_splitk_8192x48_keepdims", "attrs": { "axes": [0], "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [8192, 48], "data": { "kind": "fillFloat32", "sinStep": 0.17, "cosStep": 0.07, "scale": 0.2 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 48], "tolerance": 0.0001 } } }, { "name": "int32_rank4_axis0_no_keepdims", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "int32", "shape": [2, 3, 4, 5], "data": { "kind": "values", "values": [-3, 18, -25, 17, 33, -27, 42, 7, -36, -27, 22, 39, -8, 40, -42, -11, 18, -2, -43, -6, -50, 25, 5, -44, -31, 10, -6, 13, 19, 6, -26, 5, 3, 11, 14, -16, 6, 23, 28, -12, -46, -41, 37, 49, 17, 22, 33, -2, -49, 14, -34, -19, 43, -6, 42, 21, -27, -40, -15, 14, 11, -43, -27, 42, 46, -29, -15, 47, 17, 41, 47, -31, -23, -46, -31, -17, -20, 7, 23, 43, 31, -19, -48, 33, 0, -32, -29, 17, 25, 8, -3, -34, -38, 43, -41, 26, 17, -36, -30, 3, -35, 9, -15, -2, -46, -7, 22, 40, 4, -7, 37, 27, 0, -11, -47, -21, -38, 26, 29, -21] } } }, "outputs": { "y": { "dtype": "int32", "shape": [3, 4, 5], "tolerance": 0 } } }, { "name": "f32_rank4_axis2_mid_no_keepdims", "attrs": { "axes": [2], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 3, 4, 5], "data": { "kind": "values", "values": [5.248, -0.858, -1.454, -7.96, -0.025, -0.959, -1.61, 0.946, 1.263, -3.197, -2.659, -1.427, 2.069, 1.684, -3.917, -3.358, 2.211, 4.724, -0.093, -2.05, 3.287, -0.929, 2.177, 4.647, 1.89, 0.22, 2.197, -1.928, -0.534, -1.722, -0.613, -1.459, -0.557, -1.142, 0.267, 0.191, 0.889, 4.208, -4.641, 3.887, -0.712, -3.697, -0.517, 0.276, 3.203, -3.185, 0.652, 0.353, -5.052, -3.557, 1.8, 2.087, 3.263, 1.601, 1.186, 0.369, 3.627, -2.529, -0.426, 1.156, -4.732, 3.933, -2.379, -0.215, 6.47, -2.488, -1.588, 4.685, -3.241, -1.296, 1.548, 1.366, 1.781, 1.112, 4.036, 3.048, 1.786, -2.048, -2.141, -5.725, 2.062, -5.469, 2.637, 5.539, -3.185, -2.053, -1.429, 2.491, -2.59, -0.392, -1.569, -0.754, 3.874, -2.893, 0.215, 0.815, 2.576, -3.792, 3.345, 1.304, 2.623, 0.215, -4.917, -1.942, 2.453, 0.11, -0.146, 5.375, 6.606, -0.111, 5.799, -5.981, -6.147, 2.601, -0.786, 1.737, 1.55, -0.268, 2.046, 0.452] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 3, 5] } } }, { "name": "f32_rank4_default_all_axes_no_keepdims_scalar", "attrs": { "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 3, 4, 5], "data": { "kind": "values", "values": [-1.425, 1.508, -0.089, 0.904, 2.69, 1.065, 2.7, 1.722, 2.957, -2.091, -1.578, -2.523, 1.126, -0.487, 1.827, 0.635, 0.255, 4.301, 1.213, -0.054, -1.968, 2.381, 1.906, -2.174, -0.29, 0.476, -3.278, -0.556, 2.798, -3.23, 0.982, 3.785, -1.242, -0.908, 0.435, 1.029, 0.794, -3.026, -1.528, 0.203, -0.635, 2.277, -0.644, -0.74, 3.699, -0.163, -1.961, -0.005, -0.465, 1.422, 0.906, -0.665, -0.769, -1.061, 2.701, 4.03, -0.115, 1.129, 0.719, -1.024, -1.046, -0.963, -3.848, -1.515, 0.907, 1.845, -0.415, -0.752, 1.28, 4.107, -1.857, -1.549, -0.874, 1.096, -1.708, 0.931, -1.442, 1.125, -0.63, -0.86, 1.63, -2.371, -1.537, 1.458, 1.532, 0.416, -4.374, 1.444, 0.698, -0.677, -3.891, 1.662, 3.498, 1.002, 2.661, -1.315, 0.37, -1.302, -2.241, -0.693, -1.823, -1.492, -1.542, -0.828, -0.584, 0.254, -2.495, 0.634, -3.637, 0.111, 0.162, -4.64, -0.682, 2.18, 0.901, -0.989, -1.093, 0.584, 0.308, 1.635] } } }, "outputs": { "y": { "dtype": "float32", "shape": [] } } }, { "name": "rank4_multi_axis_12_keepdims", "attrs": { "axes": [1, 2], "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 3, 2, 2], "data": { "kind": "values", "values": [0.5, -1.0, 2.0, -0.25, 1.5, 0.75, -2.0, 1.0, 0.125, -0.5, 3.0, -1.5, 0.25, 2.5, -0.75, 1.25, -3.0, 0.5, 2.0, -1.0, 0.75, -0.25, 1.5, -2.5] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 1, 1, 2], "tolerance": 0 } } }, { "name": "uint32_axis0_tiled_64x32", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "uint32", "shape": [64, 32], "data": { "kind": "cycle", "values": [16777216, 16777245, 16777274, 16777236, 16777265, 16777227, 16777256, 16777218, 16777247, 16777276, 16777238, 16777267, 16777229, 16777258, 16777220, 16777249, 16777278, 16777240, 16777269, 16777231, 16777260, 16777222, 16777251, 16777280, 16777242, 16777271, 16777233, 16777262, 16777224, 16777253, 16777282, 16777244, 16777273, 16777235, 16777264, 16777226, 16777255, 16777217, 16777246, 16777275, 16777237, 16777266, 16777228, 16777257, 16777219, 16777248, 16777277, 16777239, 16777268, 16777230, 16777259, 16777221, 16777250, 16777279, 16777241, 16777270, 16777232, 16777261, 16777223, 16777252, 16777281, 16777243, 16777272, 16777234, 16777263, 16777225, 16777254] } } }, "outputs": { "y": { "dtype": "uint32", "shape": [32], "tolerance": 0 } } }, { "name": "rank3_all_axes_keepdims0_small_mod4_miss_f32", "attrs": { "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 5, 7], "data": { "kind": "cycle", "values": [-2.5, 1.0, 0.0, -3.5, 4.0, -1.5, 2.5, -0.5, -4.0, 0.5, -1.0, 3.0, -5.5, 1.5, -2.0, 2.0, -3.0, 5.0, -0.25, 0.25] } } }, "outputs": { "y": { "dtype": "float32", "shape": [] } } }, { "name": "rank3_axis2_dedicated_variant_correctness", "attrs": { "axes": [2], "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [4, 3, 5], "data": { "kind": "values", "values": [1.0, -2.0, 3.0, -4.0, 5.0, -1.0, 2.0, -3.0, 4.0, -5.0, 0.5, -0.5, 1.5, -1.5, 2.5, -2.5, 3.5, -3.5, 4.5, -4.5, 0.25, -0.25, 0.75, -0.75, 1.25, -1.25, 1.75, -1.75, 2.25, -2.25, 0.1, -0.1, 0.3, -0.3, 0.6, -0.6, 0.9, -0.9, 1.2, -1.2, 2.0, -2.0, 3.0, -3.0, 4.0, -4.0, 5.0, -5.0, 6.0, -6.0, 7.0, -7.0, 8.0, -8.0, 9.0, -9.0, 10.0, -10.0, 11.0, -11.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [4, 3, 1] } } }, { "name": "axis1_rows32768_cols30_subgroup_gate_cliff_f32", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [32768, 30], "data": { "kind": "fillFloat32", "sinStep": 0.031, "cosStep": 0.017, "scale": 1.5 } } }, "outputs": { "y": { "dtype": "float32", "shape": [32768] } } }, { "name": "axis0_cols15_i32_serial_uncoalesced", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "int32", "shape": [256, 15], "data": { "kind": "cycle", "values": [2147483647, -2147483648, 0, 1, -1, 1000000, -1000000, 16777217, -16777217, 42, -42, 100, -100, 7, -7] } } }, "outputs": { "y": { "dtype": "int32", "shape": [15] } } }, { "name": "all_axes_flat_fullreduce_101x103_nonmul4_keepdims", "provenance": { "notes": "numel=10403 (%4=3, >=8192) full-reduce: previously fell to the single-lane reduce-serial-axis kernel; now stays on all_axes_flat (f32 binding, manual vec4 groups + 3-element scalar tail). Cross-checks the flat path against the serial all_axes_keepdims reference — a dropped tail would change the result." }, "attrs": { "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [101, 103], "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.5 } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1], "tolerance": 0.01, "relTolerance": 0.0001 } } }, { "name": "contiguous_suffix_axes12_parallel", "provenance": { "notes": "Contiguous axes {1,2} exercise the shared cooperative suffix reduction instead of one serial lane per output." }, "attrs": { "axes": [1, 2], "keepdims": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [3, 16, 16], "data": { "kind": "fillFloat32", "sinStep": 0.13, "cosStep": 0.07, "scale": 0.2 } } }, "outputs": { "y": { "dtype": "float32", "shape": [3, 1, 1], "tolerance": 0.00001 } } }, { "name": "axis_split_rank3_axis1_2x8192x4", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 8192, 4], "data": { "kind": "cycle", "values": ["Infinity"] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 4], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0, "relTolerance": 0 } } }, { "name": "f16_axis_split_tiled_narrow_2x8192x4", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [2, 8192, 4], "data": { "kind": "cycle", "values": ["Infinity"] } } }, "outputs": { "y": { "dtype": "float16", "shape": [2, 4], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0, "relTolerance": 0 } } }, { "name": "axis_split_rank3_axis1_wide_2x8192x32", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float32", "shape": [2, 8192, 32], "data": { "kind": "cycle", "values": ["Infinity"] } } }, "outputs": { "y": { "dtype": "float32", "shape": [2, 32], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0, "relTolerance": 0 } } }, { "name": "f16_axis_split_wide_2x8192x32", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [2, 8192, 32], "data": { "kind": "cycle", "values": ["Infinity"] } } }, "outputs": { "y": { "dtype": "float16", "shape": [2, 32], "data": { "kind": "cycle", "values": ["Infinity"] }, "tolerance": 0, "relTolerance": 0 } } }, { "name": "f16_rank3_axis1_serial", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [3, 2, 2], "data": { "kind": "values", "values": [5.0, 1.0, 20.0, 2.0, 30.0, 1.0, 40.0, 2.0, 55.0, 1.0, 60.0, 2.0] } } }, "outputs": { "y": { "dtype": "float16", "shape": [3, 2], "tolerance": 0.01 } } }, { "name": "f16_last_axis_serial_fallback", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [2, 65], "data": { "kind": "fillFloat32", "sinStep": 0.23, "cosStep": 0.11 } } }, "outputs": { "y": { "dtype": "float16", "shape": [2], "tolerance": 0.01 } } }, { "name": "f16_all_axes", "attrs": { "keepdims": 1 }, "inputs": { "x": { "dtype": "float16", "shape": [32, 32, 32], "data": { "kind": "fillFloat32", "sinStep": 0.013, "cosStep": 0.027, "scale": 0.5 } } }, "outputs": { "y": { "dtype": "float16", "shape": [1, 1, 1], "tolerance": 0.01 } } }, { "name": "f16_axis0_splitk_8192x8", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [8192, 8], "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.11, "scale": 4.0 } } }, "outputs": { "y": { "dtype": "float16", "shape": [8], "tolerance": 0.05, "relTolerance": 0.002 } } }, { "name": "f16_last_axis_vec4_8x1024", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [8, 1024], "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.11, "scale": 4.0 } } }, "outputs": { "y": { "dtype": "float16", "shape": [8], "tolerance": 0.05, "relTolerance": 0.002 } } }, { "name": "f16_last_axis_scalar_8x1023", "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [8, 1023], "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.11, "scale": 4.0 } } }, "outputs": { "y": { "dtype": "float16", "shape": [8], "tolerance": 0.05, "relTolerance": 0.002 } } }, { "name": "f16_all_axes_flat_65543", "attrs": { "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [65543], "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.11, "scale": 4.0 } } }, "outputs": { "y": { "dtype": "float16", "shape": [], "tolerance": 0.05, "relTolerance": 0.002 } } }, { "name": "f16_suffix_vec4_4x8x128", "attrs": { "axes": [1, 2], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [4, 8, 128], "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.11, "scale": 4.0 } } }, "outputs": { "y": { "dtype": "float16", "shape": [4], "tolerance": 0.05, "relTolerance": 0.002 } } }, { "name": "f16_suffix_scalar_4x7x37", "attrs": { "axes": [1, 2], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [4, 7, 37], "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.11, "scale": 4.0 } } }, "outputs": { "y": { "dtype": "float16", "shape": [4], "tolerance": 0.05, "relTolerance": 0.002 } } }, { "name": "f16_axis0_tilecols_4096x64", "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "float16", "shape": [4096, 64], "data": { "kind": "fillFloat32", "sinStep": 0.19, "cosStep": 0.11, "scale": 4.0 } } }, "outputs": { "y": { "dtype": "float16", "shape": [64], "tolerance": 0.05, "relTolerance": 0.002 } } }, { "name": "noop_empty_axes_under_x4_copy_floor", "provenance": { "notes": "Identity-shaped noop_with_empty_axes reduction below the four-element floor of the vec4 degenerate copy, which otherwise outranks the noop route on every identity case (the ORT [1,2,2] fixture has exactly four elements)." }, "attrs": { "keepdims": 0, "noop_with_empty_axes": 1 }, "inputs": { "x": { "dtype": "float32", "shape": [1, 1, 3], "data": { "kind": "values", "values": [3.0, -1.0, 2.0] } } }, "outputs": { "y": { "dtype": "float32", "shape": [1, 1, 3], "tolerance": 0 } } }, { "name": "ort_int8_axis1_extrema", "provenance": { "source": "ONNX Runtime CPUExecutionProvider", "notes": "Covers the signed narrow-integer reduction route." }, "attrs": { "axes": [1], "keepdims": 0 }, "inputs": { "x": { "dtype": "int8", "shape": [2, 3], "data": { "kind": "values", "values": [-128, -5, 127, 12, -3, 11] } } }, "outputs": { "y": { "dtype": "int8", "shape": [2], "tolerance": 0, "data": { "kind": "values", "values": [-128, -3] } } } }, { "name": "ort_uint8_axis0_extrema", "provenance": { "source": "ONNX Runtime CPUExecutionProvider", "notes": "Covers the unsigned narrow-integer reduction route." }, "attrs": { "axes": [0], "keepdims": 0 }, "inputs": { "x": { "dtype": "uint8", "shape": [2, 3], "data": { "kind": "values", "values": [1, 200, 255, 250, 3, 4] } } }, "outputs": { "y": { "dtype": "uint8", "shape": [3], "tolerance": 0, "data": { "kind": "values", "values": [1, 3, 4] } } } }, { "name": "ort_int8_empty_axis1_highest_identity", "provenance": { "source": "ONNX Runtime CPUExecutionProvider", "notes": "An empty INT8 minimum is the logical dtype maximum (127), not the physical i32 storage maximum." }, "attrs": { "axes": [1], "keepdims": 1 }, "inputs": { "x": { "dtype": "int8", "shape": [2, 0, 3], "data": { "kind": "values", "values": [] } } }, "outputs": { "y": { "dtype": "int8", "shape": [2, 1, 3], "tolerance": 0, "data": { "kind": "values", "values": [127, 127, 127, 127, 127, 127] } } } }, { "name": "ort_uint8_empty_axis1_highest_identity", "provenance": { "source": "ONNX Runtime CPUExecutionProvider", "notes": "An empty UINT8 minimum is the logical dtype maximum (255), not the physical u32 storage maximum." }, "attrs": { "axes": [1], "keepdims": 1 }, "inputs": { "x": { "dtype": "uint8", "shape": [2, 0, 3], "data": { "kind": "values", "values": [] } } }, "outputs": { "y": { "dtype": "uint8", "shape": [2, 1, 3], "tolerance": 0, "data": { "kind": "values", "values": [255, 255, 255, 255, 255, 255] } } } }, { "name": "onnx_v20_bool_empty_axis1_true_identity", "provenance": { "source": "https://onnx.ai/onnx/operators/onnx__ReduceMin.html", "notes": "An empty Boolean minimum is true, the logical dtype maximum." }, "attrs": { "axes": [1], "keepdims": 1 }, "inputs": { "x": { "dtype": "bool", "shape": [2, 0, 3], "data": { "kind": "values", "values": [] } } }, "outputs": { "y": { "dtype": "bool", "shape": [2, 1, 3], "tolerance": 0, "data": { "kind": "values", "values": [1, 1, 1, 1, 1, 1] } } } } ] }