def underlined_string(
    string: str, symbol: str = "=", n_empty_start: int = 1, n_empty_end: int = 1
) -> str:
    """
    Adds a line made of 'symbol'-characters under a given string and returns it.

    Parameters
    ----------
    string
        The string that should be underlined.
    symbol
        A single character the line should be 'made' of.
    n_empty_start
        Number of empty lines added before the underlined string.
    n_empty_end
        Number of empty lines added after the underlined string.

    Returns
    -------
    result_string
        The generated string representing an underlined string, possibly with empty
        lines added before/after.
    """
    n_chars = len(string)
    underline_string = n_chars * symbol
    empty_lines_start = n_empty_start * "\n"
    empty_lines_end = n_empty_end * "\n"
    result_string = string + "\n" + underline_string
    result_string = empty_lines_start + result_string + empty_lines_end
    return result_string