def METHOD_NAME(
    self,
    input_shape,
    dtype,
    input_layout,
    output_layout,
    transformed_input_np,
    transformed_expected_output_np,
    axis_sep,
    hexagon_session,
    working_scope,
):
    """
    Top level testing function for cast fp32 to fp16
    """
    if hexagon_session.is_simulator():
        pytest.skip(msg="Due to https://github.com/apache/tvm/issues/11957")
    cast_input = te.placeholder(input_shape, name="A", dtype=dtype)
    cast_output = sl.cast_f32_f16_compute(cast_input)
    cast_func = te.create_prim_func([cast_input, cast_output])
    tir_s = sl.cast_f32_f16_schedule(cast_func, input_layout, output_layout)
    input_data = allocate_hexagon_array(
        hexagon_session.device,
        data=transformed_input_np,
        axis_separators=axis_sep,
        mem_scope=working_scope,
    )
    output_data = allocate_hexagon_array(
        hexagon_session.device,
        tensor_shape=transformed_expected_output_np.shape,
        dtype=transformed_expected_output_np.dtype,
        axis_separators=axis_sep,
        mem_scope=working_scope,
    )
    with tvm.transform.PassContext(opt_level=3):
        tir_irm = tvm.lower(tir_s.mod, [cast_input, cast_output], name="cast_f32_f16")
        runtime_module = tvm.build(
            tir_irm, target=get_hexagon_target("v69"), name="cast_f32_f16"
        )
    mod = hexagon_session.load_module(runtime_module)
    mod(input_data, output_data)
    output_np = output_data.numpy()
    tvm.testing.assert_allclose(
        output_np,
        transformed_expected_output_np,
        1e-3,
        1e-3,
    )