def METHOD_NAME(
    test_case,
    x_shape,
    has_weight,
    has_bias,
    has_skip,
    eps=1e-6,
    alpha=1e-5,
    dtype=flow.float32,
):
    print(
        f"x_shape: {x_shape}\nhas_weight: {has_weight}\nhas_bias: {has_bias}\nhas_skip: {has_skip}\ndtype: {dtype}\n"
    )
    normalize_shape = list()
    normalize_shape.append(x_shape[-1])
    np_dtype = np.float16 if dtype is flow.float16 else np.float32
    # generate np array
    np_x = np.random.randn(*x_shape).astype(np_dtype)
    naive_flow_weight = None
    fused_flow_weight = None
    if has_weight:
        np_gamma = np.random.randn(*normalize_shape).astype(np_dtype)
        naive_flow_weight = flow.tensor(np_gamma).to(device="cuda", dtype=dtype)
        fused_flow_weight = flow.tensor(np_gamma).to(device="cuda", dtype=dtype)
    else:
        np_gamma = np.ones(*normalize_shape).astype(np_dtype)
        naive_flow_gamma = flow.tensor(np_gamma).to(device="cuda", dtype=dtype)
    flow_bias = None
    if has_bias:
        np_bias = np.random.randn(*normalize_shape).astype(np_dtype)
        flow_bias = flow.tensor(np_bias).to(device="cuda", dtype=dtype)
    flow_skip_naive = None
    flow_skip_fused = None
    np_skip = None
    if has_skip:
        np_skip = np.random.randn(*x_shape).astype(np_dtype)
        flow_skip_naive = flow.tensor(np_skip).to(device="cuda", dtype=dtype)
        flow_skip_fused = flow.tensor(np_skip).to(device="cuda", dtype=dtype)
    # naive process
    flow_naive_module = NaiveSkipRMSNorm()
    flow_x_naive = flow.tensor(np_x).to(device="cuda", dtype=dtype)
    flow_y_naive = flow_naive_module.forward(
        x=flow_x_naive,
        weight=naive_flow_weight,
        bias=flow_bias,
        skip=flow_skip_naive,
        alpha=alpha,
        eps=eps,
    )
    # fused process
    flow_fused_module = FusedSkipRMSNorm()
    flow_x_fused = flow.tensor(np_x).to(device="cuda", dtype=dtype)
    flow_y_fused = flow_fused_module.forward(
        x=flow_x_fused,
        weight=fused_flow_weight,
        bias=flow_bias,
        skip=flow_skip_fused,
        alpha=alpha,
        eps=eps,
    )
    if dtype is flow.float16:
        compare_result(test_case, flow_y_naive, flow_y_fused, 1e-2, 1e-2)
    else:
        compare_result(test_case, flow_y_naive, flow_y_fused, 1e-4, 1e-4)