diff --git a/__pycache__/test_times.cpython-39-pytest-7.1.1.pyc b/__pycache__/test_times.cpython-39-pytest-7.1.1.pyc new file mode 100644 index 0000000..4f7ed4d Binary files /dev/null and b/__pycache__/test_times.cpython-39-pytest-7.1.1.pyc differ diff --git a/__pycache__/times.cpython-39.pyc b/__pycache__/times.cpython-39.pyc new file mode 100644 index 0000000..8881ba5 Binary files /dev/null and b/__pycache__/times.cpython-39.pyc differ diff --git a/test_times.py b/test_times.py new file mode 100644 index 0000000..b3a5e3b --- /dev/null +++ b/test_times.py @@ -0,0 +1,8 @@ +from times import compute_overlap_time, time_range + +def test_given_input(): + large = time_range("2010-01-12 10:00:00", "2010-01-12 12:00:00") + short = time_range("2010-01-12 10:30:00", "2010-01-12 10:45:00", 2, 60) + result = compute_overlap_time(large, short) + expected = [('2010-01-12 10:30:00', '2010-01-12 10:37:00'), ('2010-01-12 10:38:00', '2010-01-12 10:45:00')] + assert result == expected diff --git a/times.py b/times.py index d57f401..ef1fc99 100644 --- a/times.py +++ b/times.py @@ -6,10 +6,12 @@ def time_range(start_time, end_time, number_of_intervals=1, gap_between_interval end_time_s = datetime.datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S") d = (end_time_s - start_time_s).total_seconds() / number_of_intervals + gap_between_intervals_s * (1 / number_of_intervals - 1) sec_range = [(start_time_s + datetime.timedelta(seconds=i * d + i * gap_between_intervals_s), - start_time_s + datetime.timedelta(seconds=(i + 1) * d + i * gap_between_intervals_s)) + start_time_s + datetime.timedelta(seconds=(i + 1) * d + i * gap_between_intervals_s)) for i in range(number_of_intervals)] return [(ta.strftime("%Y-%m-%d %H:%M:%S"), tb.strftime("%Y-%m-%d %H:%M:%S")) for ta, tb in sec_range] +[("2010-01-12 10:00:00", "2010-01-12 12:00:00")] +[("2010-01-12 10:00:00", "2010-01-12 12:00:00"), ("2010-01-12 10:30:00", "2010-01-12 10:45:00")] def compute_overlap_time(range1, range2): overlap_time = []