def bboxes_intersect(bbox1, bbox2, tol=0.):
    """
    Test if the bounding boxes intersect.

    :param BoundingBox bbox1: Bounding box 1.
    :param BoundingBox bbox2: Bounding box 2.
    :param float tol: Tolerance for bounding boxes.

    :return: *True* if they intersect, *False* if not.
    :rtype: bool
    """
    bounds1 = bbox1.bounds
    bounds2 = bbox2.bounds
    # Adjust bounding box by the tolerance.
    bounds1[:, 0] -= tol
    bounds1[:, 1] += tol
    bounds2[:, 0] -= tol
    bounds2[:, 1] += tol
    for i in range(3):
        if bounds1[i, 0] > bounds2[i, 1] or bounds2[i, 0] > bounds1[i, 1]:
            return False
    return True