code: def test_force_block_config_kernelwise(
      ofm_layout, block_config_str, expected_block_shape
  ):
      op_type = "ethosu_pooling"
      activation = "NONE"
      kernel = (2, 2)
      stride = (2, 2)
      padding = (0, 0)
      dilation = (1, 1)
      ifm_channels = 32
      out_shape = (1, 8, 10, 16)
  
      ifm_matrix, ifm_offset, _, _, _, _ = make_matrices(
          op_type,
          kernel,
          stride,
          padding,
          "NHWC",
          ofm_layout,
          dilation,
          ifm_channels,
      )
  
      ofm_channels = out_shape[3]
  
      propagator = cs.Propagator(ifm_matrix, ifm_offset)
  
      op_attrs = {
          "op": op_type,
          "activation": activation,
          "stride_h": stride[0],
          "stride_w": stride[1],
          "dilation_h": dilation[0],
          "dilation_w": dilation[1],
      }
  
      config = {
          "enable_cascader": True,
          "dev_force_block_config": block_config_str,
      }
      with tvm.transform.PassContext(
          config={"relay.ext.ethos-u.options": config}
      ):
          device_config = cs.EthosuDeviceConfig("ethos-u55-128")
          block_configs = device_config.get_valid_block_configs(
              propagator,
              op_attrs,
              out_shape,
              ofm_channels,
              ifm_channels,
              ofm_layout,
              "NHWC",
              "int8",
              "int8",
              kernel[0],
              kernel[1],
          )
  
      assert len(block_configs) == 1
      assert block_configs[0].output_shape == expected_block_shape
  
file_path: tvm/tests/python/contrib/test_ethosu/cascader/test_ethosu_block_config.py
imports: import pytest
  import numpy
  import math
  import tvm
  import tvm.contrib.ethosu.cascader
  from tvm.relay.backend.contrib.ethosu.te.common import get_layout_transform_matrices
  from .infra import make_matrices
label_desc: Use image node_id 2 for calling a global function with example usage: test_force_block_config_kernelwise(ofm_layout, block_config_str, expected_block_shape) without return types