code: def run_cgemv(self, dtype, ALPHA, BETA, transpose_A, slice_tensors):
      f = self.get_function(
          dtype, transpose_A=transpose_A, slice_tensors=slice_tensors
      )
      values = self.get_data(
          dtype,
          ALPHA,
          BETA,
          transpose_A=transpose_A,
          slice_tensors=slice_tensors,
      )
      assert any(
          isinstance(node.op, CGemv)
          for node in f.maker.fgraph.apply_nodes
      )
      z_val = f(*values)
      assert z_val.dtype == dtype
      assert z_val.ndim == 1
      assert z_val.shape[0] == self.M
      ref_val = self.compute_ref(
          *(values + (transpose_A, slice_tensors))
      )
      unittest_tools.assert_allclose(ref_val, z_val)
  
imports: from warnings import warn
  import numpy
  import pytest
  import pytensor
  import pytensor.tensor
  from pytensor.misc.safe_asarray import _asarray
  from pytensor.tensor.basic import AllocEmpty
  from pytensor.tensor.blas import Ger
  from pytensor.tensor.blas_c import CGemv, CGer, check_force_gemv_init
  from pytensor.tensor.blas_scipy import ScipyGer
  from pytensor.tensor.type import dmatrix, dvector, matrix, scalar, tensor, vector
  from tests import unittest_tools
  from tests.tensor.test_blas import BaseGemv, TestBlasStrides
  from tests.unittest_tools import OptimizationTestMixin
label_desc: Use image node_id 4 for calling the TestCGemvNoFlags obj's underlying member method code with example usage: obj.run_cgemv(dtype, ALPHA, BETA, transpose_A, slice_tensors) without return types