def is_equal_1d(ndarray1, ndarray2, showdiff=False, tolerance=0.000001):
    """
    Whether supplied 1d numpy arrays are similar within the tolerance limit?
    
    Parameters
    ----------
    ndarray1 :  numpy.ndarray[float64, ndim=1]
        First array supplied for equality with `ndarray2`.
    ndarray2 :  numpy.ndarray[float64, ndim=1]
        Second array supplied for equality angainst `ndarray1`.
    showdiff : bool (default: False)
        If two array corresponding elements differ by morre than `tolerance`
        then stop further comparison and report position of mismatch.
    tolerance : float64 (default: 0.000001)
        A threshold value which can be tolerated for similarity of two 
        corresponding elements of the supplied arrays.
        
    Returns
    -------
    bool, str, list[str] if showdiff==True
    bool otherwise
        A thruth value of equality query of arguments, difference accepted
        within tolerance.
        Cause why two arguments dont match.
        A list of string showing first position and values of entries which
        do not match.
    """
    result = True
    cause = ''
    diff_loc_val = []
    if type(ndarray1) is not type(ndarray2):
        result = False
        cause = 'Dataset type mismatch: {0} and {1}' % (
            type(ndarray1), type(ndarray2))
    else:
        if ndarray1.shape != ndarray1.shape:
            result = False
            cause = 'dataset shape mismatch: {0} and {1}' % (
                ndarray1.shape, ndarray2.shape)
        else:
            for i in range(ndarray1.shape[0]):
                d = ndarray1[i] - ndarray2[i]
                if d > tolerance:
                    diff_loc_val.append((i, d))
                    result = False
                    break
    if showdiff:
        return (result, cause, diff_loc_val)
    else:
        return result