code: def sym_block_import_export_test_cases():
      # single nested input
      class TestBlock1(mx.gluon.HybridBlock):
          def hybrid_forward(self, F, x1: Tensor, x2: List[Tensor]):
              return F.broadcast_mul(x1, x2[0])
  
      # multiple nested inputs
      class TestBlock2(mx.gluon.HybridBlock):
          def hybrid_forward(self, F, x1: Tensor, x2: List[Tensor]):
              return F.broadcast_add(
                  F.broadcast_mul(x1, x2[0]), F.broadcast_mul(x1, x2[1])
              )
  
      # multiple nested inputs, and parameterized
      class TestBlock3(mx.gluon.HybridBlock):
          def __init__(self, **kwargs):
              super().__init__(**kwargs)
  
              with self.name_scope():
                  self.my_param = self.params.get(
                      "my_param",
                      shape=(1,),
                      init=mx.init.Constant(5),
                      allow_deferred_init=True,
                  )
  
          def hybrid_forward(
              self, F, x1: Tensor, x2: List[Tensor], my_param
          ):
              y = F.broadcast_mul(x2[1], my_param)
              return F.broadcast_add(F.broadcast_mul(x1, x2[0]), y)
  
      # multiple nested inputs, parameterized, with sub-block
      class TestBlock4(mx.gluon.HybridBlock):
          def __init__(self, **kwargs):
              super().__init__(**kwargs)
  
              with self.name_scope():
                  self.my_param = self.params.get(
                      "my_param",
                      shape=(1,),
                      init=mx.init.Constant(5),
                      allow_deferred_init=True,
                  )
                  self.dense_layer = mx.gluon.nn.Dense(3)
  
          def hybrid_forward(
              self, F, x1: Tensor, x2: List[Tensor], my_param
          ):
              y = self.dense_layer(F.broadcast_mul(x2[1], my_param))
              return F.broadcast_add(F.broadcast_mul(x1, x2[0]), y)
  
      # TODO TestBlock1 is broken when using mxnet 1.6 on linux
      # TODO which apparently doesn't like that x2[1] is not used
      # return [TestBlock1, TestBlock2, TestBlock3, TestBlock4]
      return [TestBlock2, TestBlock3, TestBlock4]
  
file_path: gluonts/test/mx/test_mx_util.py
imports: import pytest
  import itertools
  import tempfile
  from pathlib import Path
  from typing import List
  import mxnet
  import numpy
  from gluonts.mx import Tensor
  from gluonts.mx.util import cumsum, export_symb_block, hybrid_block_to_symbol_block, import_symb_block, mx_switch, weighted_average
label_desc: Use image node_id 2 for calling a global function with example usage: sym_block_import_export_test_cases() and returns: list, F, F, F, F