import pytest
from recurring_ical_events import DATE_MAX


def test_event_is_not_included_if_it_is_later(calendars):
    events = calendars.three_events.between((2000, 1, 1), (2001,1,1))
    assert not events

def test_event_is_not_included_if_it_is_earlier(calendars):
    events = calendars.three_events.between((2030, 1, 1), DATE_MAX)
    assert not events

def test_all_events_in_time_span(calendars):
    events = calendars.three_events.between((2000, 1, 1), DATE_MAX)
    assert len(events) == 3

@pytest.mark.parametrize("count,end",[
    (0, (2019, 3, 3)),
    (1, (2019, 3, 5)),
    (2, (2019, 3, 8)),
])
def test_events_occur_after_and_before_span_end(calendars, count, end):
    events = calendars.three_events.between((2000, 1, 1), end)
    assert len(events) == count

@pytest.mark.parametrize("count,start",[
    (3, (2019, 3, 3)),
    (2, (2019, 3, 5)),
    (1, (2019, 3, 8)),
])
def test_events_occur_after_and_before_span_start(calendars, count, start):
    events = calendars.three_events.between(start, DATE_MAX)
    assert len(events) == count
