@staticmethod
def can_skip(old_progress, current_progress):
    "\n        Return True if the `current_progress` is behind the `old_progress` -\n        when it isn't as far as the old progress.\n\n        >>> SeedProgress.can_skip(None, [(0, 4)])\n        False\n        >>> SeedProgress.can_skip([], [(0, 4)])\n        True\n        >>> SeedProgress.can_skip([(0, 4)], None)\n        False\n        >>> SeedProgress.can_skip([(0, 4)], [(0, 4)])\n        False\n        >>> SeedProgress.can_skip([(1, 4)], [(0, 4)])\n        True\n        >>> SeedProgress.can_skip([(0, 4)], [(0, 4), (0, 4)])\n        False\n\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4)])\n        False\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (1, 4)])\n        True\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (2, 4)])\n        False\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (3, 4)])\n        False\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (1, 4)])\n        False\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (1, 4), (0, 4)])\n        False\n        "
    if (current_progress is None):
        return False
    if (old_progress is None):
        return False
    if (old_progress == []):
        return True
    for (old, current) in izip_longest(old_progress, current_progress, fillvalue=None):
        if (old is None):
            return False
        if (current is None):
            return False
        if (old < current):
            return False
        if (old > current):
            return True
    return False
Return True if the `current_progress` is behind the `old_progress` -
when it isn't as far as the old progress.

>>> SeedProgress.can_skip(None, [(0, 4)])
False
>>> SeedProgress.can_skip([], [(0, 4)])
True
>>> SeedProgress.can_skip([(0, 4)], None)
False
>>> SeedProgress.can_skip([(0, 4)], [(0, 4)])
False
>>> SeedProgress.can_skip([(1, 4)], [(0, 4)])
True
>>> SeedProgress.can_skip([(0, 4)], [(0, 4), (0, 4)])
False

>>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4)])
False
>>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (1, 4)])
True
>>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (2, 4)])
False
>>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (3, 4)])
False
>>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (1, 4)])
False
>>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (1, 4), (0, 4)])
False
@staticmethod
def can_skip(old_progress, current_progress):
    "\n        Return True if the `current_progress` is behind the `old_progress` -\n        when it isn't as far as the old progress.\n\n        >>> SeedProgress.can_skip(None, [(0, 4)])\n        False\n        >>> SeedProgress.can_skip([], [(0, 4)])\n        True\n        >>> SeedProgress.can_skip([(0, 4)], None)\n        False\n        >>> SeedProgress.can_skip([(0, 4)], [(0, 4)])\n        False\n        >>> SeedProgress.can_skip([(1, 4)], [(0, 4)])\n        True\n        >>> SeedProgress.can_skip([(0, 4)], [(0, 4), (0, 4)])\n        False\n\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4)])\n        False\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (1, 4)])\n        True\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (2, 4)])\n        False\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (0, 4), (3, 4)])\n        False\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (1, 4)])\n        False\n        >>> SeedProgress.can_skip([(0, 4), (0, 4), (2, 4)], [(0, 4), (1, 4), (0, 4)])\n        False\n        "
    if (current_progress is None):
        return False
    if (old_progress is None):
        return False
    if (old_progress == []):
        return True
    for (old, current) in izip_longest(old_progress, current_progress, fillvalue=None):
        if (old is None):
            return False
        if (current is None):
            return False
        if (old < current):
            return False
        if (old > current):
            return True
    return False