def METHOD_NAME(eps, dim, shape, seed, ctx, func_name):
    if not func_name.endswith('Cuda'):
        # This configuration is only to test the CUDA implementation branch
        # where reduction_size >= 1024, so we skip this test for
        # CPU and CuDNN and also do not need to run for both keepdims.
        pytest.skip('skip CUDA specific implementation test for other target')
    from nbla_test_utils import function_tester
    rng = np.random.RandomState(seed)
    w = rng.randn(*shape)
    g = rng.randn(shape[dim])
    inputs = [w, g]
    func_args = [dim, eps]
    function_tester(rng, F.weight_normalization, ref_weight_normalization, inputs,
                    ctx=ctx, func_name=func_name, func_args=func_args, backward=[
                        True, True],
                    atol_b=3e-3, atol_accum=3e-3)