def is_verbatim(df, col, th=0.95):
    """Test if a variable is a verbatim.

    - #(unique values)/#(total values) >= threshold (default 0.95)
    - AND length is NOT the same for all values (for non NA)

    Parameters
    ----------
    df : DataFrame
        input dataset
    col : string
        variable name
    th : float (Default : 0.95)
        threshold rate

    Returns
    -------
    res : boolean
        test result
    """
    # get variable serie with non NA values
    if df[col].dtype == 'object':
        full_col = df[col].loc[~df[col].isna()]
    else:
        return False

    # test if #(v unique values)/#(v,total,values) > threshold (default 0.95)
    if full_col.nunique() / full_col.count() >= th:
        # test if all (non NA) values have the same length
        if full_col.apply(lambda x: len(x)).nunique() > 1:
            return True
        else:
            return False
    else:
        return False