def wrap_template(fn, arg_name="description"):
    """
    Decorator to inject information about custom configuration of test case.

    Args:
        fn (Callable): test case template
        arg_name (str): name of custom configuration information string

    Examples:

    ..code::

        template("custom_data")
        def template(a: float = 1.0, b: int = 1, custom_data: str = ""):

            # build your test

            generate_kernel_test_case(
                description=f"Example {custom_data}",
                graph=graph,
                inputs=inputs,
                expected=outputs
            )

        def test_1():
            template()  # generated test-case's description is "Example"

        def test_2():
            template(a=2.0)  # "Example a=2.0"

        def test_3():
            template(a=2.0, b=1)  # "Example a=2.0, b=1"

    Returns:
        wrapped template function
    """

    def wrapper(*args, **kwargs):
        if arg_name not in kwargs.keys():
            kwargs[arg_name] = ", ".join(f"{k}={v}" for k, v in kwargs.items())
        return fn(*args, **kwargs)

    return wrapper