code: def test_symbol_infer_shape_var():
      "Test specifying shape information when constructing a variable"
      shape = (2, 3)
      a = mx.symbol.Variable("a", shape=shape)
      b = mx.symbol.Variable("b")
      c = mx.symbol.elemwise_add(a, b)
      arg_shapes, out_shapes, aux_shapes = c.infer_shape()
      assert arg_shapes[0] == shape
      assert arg_shapes[1] == shape
      assert out_shapes[0] == shape
  
      overwrite_shape = (5, 6)
      arg_shapes, out_shapes, aux_shapes = c.infer_shape(
          a=overwrite_shape
      )
      assert arg_shapes[0] == overwrite_shape
      assert arg_shapes[1] == overwrite_shape
      assert out_shapes[0] == overwrite_shape
  
imports: import copy
  import sys
  import os
  import logging
  import re
  import json
  import mxnet
  import numpy
  from common import assertRaises, models, TemporaryDirectory
  from mxnet.base import NotImplementedForSymbol
  from mxnet.test_utils import discard_stderr, rand_shape_nd, use_np, environment
  from mxnet.util import np_shape
  import pickle
label_desc: Use image node_id 10 for calling a global function with example usage: test_symbol_infer_shape_var() without return types