def almostEqual(a, b, rel_tol=1e-09, abs_tol=0.0):
    """
    Lifted from pre 3.5 isclose() implementation,
    floating point error tolerant comparison
    :param a: [float] first number in comparison
    :param b: [float] second number in comparison
    :param rel_tol:  [float] relative tolerance in comparison
    :param abs_tol:  [float] absolute tolerance in case of relative tolerance issues
    :return: [bool] args are equal or not
    """
    return abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)