docstr: Infer the shape of z by propagating the value of xshape.
docstr_tok: ["Infer","the","shape","of","z","by","propagating","the","value","of","xshape","."]
code: def test_model_data_propagation(self) -> None:
      """Infer the shape of z by propagating the value of xshape."""
      model = onnx.parser.parse_model(
          """
              <ir_version: 7, opset_import: [ "" : 18]>
              agraph (float[4, 1, 16] x, float[1, 8, 16] y) => () {
                  xshape = Shape (x)
                  z = Expand (y, xshape)
              }
          """
      )
      self._assert_inferred(
          model,
          [
              make_tensor_value_info("xshape", TensorProto.INT64, (3,)),
              make_tensor_value_info(
                  "z", TensorProto.FLOAT, (4, 8, 16)
              ),
          ],
          data_prop=True,
      )
  
file_path: onnx/onnx/test/data_propagation_test.py
imports: from __future__ import annotations
  import unittest
  from shape_inference_test import TestShapeInferenceHelper
  import onnx.parser
  from onnx import TensorProto
  from onnx.helper import make_node, make_tensor, make_tensor_value_info
label_desc: Use image node_id 3 for calling the TestDataPropagation obj's underlying member method code with example usage: obj.test_model_data_propagation() without return types