def assertDateTimesFuture(self, sequence, strict=True, msg=None):
        '''Fail if any elements in ``sequence`` are not in the future.

        If the min element is a datetime, "future" is defined as
        anything after ``datetime.now()``; if the min element is a date,
        "future" is defined as anything after ``date.today()``.

        If ``strict=True``, fail unless all elements in ``sequence``
        are strictly greater than ``date.today()``
        (or ``datetime.now()``).  If ``strict=False``, fail all
        elements in ``sequence`` are greater than or equal to
        ``date.today()`` (or ``datetime.now()``).

        Parameters
        ----------
        sequence : iterable
        strict : bool
        msg : str
            If not provided, the :mod:`marbles.mixins` or
            :mod:`unittest` standard message will be used.

        Raises
        ------
        TypeError
            If ``sequence`` is not iterable.
        TypeError
            If min element in ``sequence`` is not a datetime or date
            object.
        '''
        if not isinstance(sequence, collections.Iterable):
            raise TypeError('First argument is not iterable')

        # Cannot compare datetime to date, so if dates are provided use
        # date.today(), if datetimes are provided use datetime.today()
        if isinstance(min(sequence), datetime):
            target = datetime.today()
        elif isinstance(min(sequence), date):
            target = date.today()
        else:
            raise TypeError('Expected iterable of datetime or date objects')

        self.assertDateTimesAfter(sequence, target, strict=strict, msg=msg)
Fail if any elements in ``sequence`` are not in the future.

        If the min element is a datetime, "future" is defined as
        anything after ``datetime.now()``; if the min element is a date,
        "future" is defined as anything after ``date.today()``.

        If ``strict=True``, fail unless all elements in ``sequence``
        are strictly greater than ``date.today()``
        (or ``datetime.now()``).  If ``strict=False``, fail all
        elements in ``sequence`` are greater than or equal to
        ``date.today()`` (or ``datetime.now()``).

        Parameters
        ----------
        sequence : iterable
        strict : bool
        msg : str
            If not provided, the :mod:`marbles.mixins` or
            :mod:`unittest` standard message will be used.

        Raises
        ------
        TypeError
            If ``sequence`` is not iterable.
        TypeError
            If min element in ``sequence`` is not a datetime or date
            object.