code: def _feature_names(  # pylint: disable=invalid-name
      buffers_per_store: int = 5,
      arith_intensity_curve_num_samples: int = 10,
  ) -> List[str]:
      result = [
          "float_mad",
          "float_addsub",
          "float_mul",
          "float_divmod",
          "float_cmp",
          "float_mathfunc",
          "float_otherfunc",
          "int_mad",
          "int_addsub",
          "int_mul",
          "int_divmod",
          "int_cmp",
          "int_mathfunc",
          "int_otherfunc",
          "bool_op",
          "select_op",
          "vec_num",
          "vec_prod",
          "vec_len",
          "vec_type.kPosNone",
          "vec_type.kPosInnerSpatial",
          "vec_type.kPosMiddleSpatial",
          "vec_type.kPosOuterSpatial",
          "vec_type.kPosInnerReduce",
          "vec_type.kPosMiddleReduce",
          "vec_type.kPosOuterReduce",
          "vec_type.kPosMixed",
          "unroll_num",
          "unroll_prod",
          "unroll_len",
          "unroll_type.kPosNone",
          "unroll_type.kPosInnerSpatial",
          "unroll_type.kPosMiddleSpatial",
          "unroll_type.kPosOuterSpatial",
          "unroll_type.kPosInnerReduce",
          "unroll_type.kPosMiddleReduce",
          "unroll_type.kPosOuterReduce",
          "unroll_type.kPosMixed",
          "parallel_num",
          "parallel_prod",
          "parallel_len",
          "parallel_type.kPosNone",
          "parallel_type.kPosInnerSpatial",
          "parallel_type.kPosMiddleSpatial",
          "parallel_type.kPosOuterSpatial",
          "parallel_type.kPosInnerReduce",
          "parallel_type.kPosMiddleReduce",
          "parallel_type.kPosOuterReduce",
          "parallel_type.kPosMixed",
          "is_gpu",
          "blockIdx_x_len",
          "blockIdx_y_len",
          "blockIdx_z_len",
          "threadIdx_x_len",
          "threadIdx_y_len",
          "threadIdx_z_len",
          "vthread_len",
      ]
      for i in range(buffers_per_store):
          result.extend(
              f"B{i}.{s}"
              for s in [
                  "acc_type.kRead",
                  "acc_type.kWrite",
                  "acc_type.kReadWrite",
                  "bytes",
                  "unique_bytes",
                  "lines",
                  "unique_lines",
                  "reuse_type.kLoopMultipleRead",
                  "reuse_type.kSerialMultipleReadWrite",
                  "reuse_type.kNoReuse",
                  "reuse_dis_iter",
                  "reuse_dis_bytes",
                  "reuse_ct",
                  "bytes_d_reuse_ct",
                  "unique_bytes_d_reuse_ct",
                  "lines_d_reuse_ct",
                  "unique_lines_d_reuse_ct",
                  "stride",
              ]
          )
      result.extend(
          f"arith_intensity_curve_{i}"
          for i in range(arith_intensity_curve_num_samples)
      )
      result.extend(
          [
              "alloc_size",
              "alloc_prod",
              "alloc_outer_prod",
              "alloc_inner_prod",
              "outer_prod",
              "num_loops",
              "auto_unroll_max_step",
          ]
      )
      # 57 + 18 * 5 + 10 + 4 + 3
      assert len(result) == N_FEATURES
      return result
  
imports: import sys
  from typing import Callable, List
  import pytest
  import tvm
  import tvm.testing
  from numpy.testing import assert_allclose
  from tvm import meta_schedule
  from tvm import te, tir
  from tvm.script import tir
label_desc: Use image node_id 4 for calling a global function with example usage: _feature_names(buffers_per_store, arith_intensity_curve_num_samples) and returns: result