def test_col(serie, test_func, proportion=0.9, skipna=True, num_rows=50):
    """ Tests values of the serie using test_func.
         - skipna : if True indicates that NaNs are not counted as False
         - proportion :  indicates the proportion of values that have to pass the test
    for the serie to be detected as a certain type
    """
    serie = serie[serie.notnull()]
    ser_len = len(serie)
    if ser_len == 0:
        return False
    if proportion == 1:
        for _range in [range(0, min(1, ser_len)), range(min(1, ser_len),
            min(5, ser_len)), range(min(5, ser_len), min(num_rows, ser_len))]:
            if all(serie.iloc[_range].apply(test_func)):
                pass
            else:
                return False
        return True
    else:
        return serie.apply(test_func).sum() > proportion * len(serie)
