import pytest
from BetweenDates import is_between_dates
TEST_INPUTS = [
("2020-04-06T12:00:00", "2020-04-01T12:00:00", "2020-04-14T12:00:00", True, "sanity 1"),
("2020-04-04T12:00:00", "2020-04-01T10:00:00", "2020-04-04T16:00:00", True, "sanity 2"),
("2020-04-06T12:00:00", "2020-04-01T12:00:00", "2020-06-04T12:00:00", True, "sanity 3"),
("2020-04-04T12:00:00", "2020-04-04T12:00:00", "2020-04-04T12:00:00", True, "exact same date"),
("2020-04-04T12:00:00", "2020-04-04T12:00:00", "2020-04-04T12:00:00", True, "same as begin date"),
("2020-04-04T12:00:00", "2020-04-04T12:00:00", "2020-04-04T12:00:00", True, "same as end date"),
("2020-04-01T12:00:00", "2020-04-04T12:00:00", "2020-05-04T12:00:00", False, "before begin date"),
("2020-05-04T12:00:00", "2020-04-04T12:00:00", "2020-04-14T12:00:00", False, "after end date"),
("2020-04-04T12:00:00+01:00", "2020-04-01T12:00:00+01:00", "2020-06-04T12:00:00Z", True, "timezone 1"),
("2020-04-04T12:00:00+01:00", "2020-04-01T12:00:00Z", "2020-04-04T12:00:00Z", True, "timezone 2"),
("2020-04-04T12:00:00-01:00", "2020-04-01T12:00:00Z", "2020-04-04T12:00:00Z", False, "timezone 3"),
]
@pytest.mark.parametrize("value, begin_date, end_date, expected_result, test_title", TEST_INPUTS)
def test_is_between_dates(value, begin_date, end_date, expected_result, test_title):
assert is_between_dates(value, begin_date, end_date) == expected_result, test_title