1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
| from datetime import datetime
|
| import pytest
|
| from pandas.tseries.holiday import (
| after_nearest_workday,
| before_nearest_workday,
| nearest_workday,
| next_monday,
| next_monday_or_tuesday,
| next_workday,
| previous_friday,
| previous_workday,
| sunday_to_monday,
| weekend_to_monday,
| )
|
| _WEDNESDAY = datetime(2014, 4, 9)
| _THURSDAY = datetime(2014, 4, 10)
| _FRIDAY = datetime(2014, 4, 11)
| _SATURDAY = datetime(2014, 4, 12)
| _SUNDAY = datetime(2014, 4, 13)
| _MONDAY = datetime(2014, 4, 14)
| _TUESDAY = datetime(2014, 4, 15)
| _NEXT_WEDNESDAY = datetime(2014, 4, 16)
|
|
| @pytest.mark.parametrize("day", [_SATURDAY, _SUNDAY])
| def test_next_monday(day):
| assert next_monday(day) == _MONDAY
|
|
| @pytest.mark.parametrize(
| "day,expected", [(_SATURDAY, _MONDAY), (_SUNDAY, _TUESDAY), (_MONDAY, _TUESDAY)]
| )
| def test_next_monday_or_tuesday(day, expected):
| assert next_monday_or_tuesday(day) == expected
|
|
| @pytest.mark.parametrize("day", [_SATURDAY, _SUNDAY])
| def test_previous_friday(day):
| assert previous_friday(day) == _FRIDAY
|
|
| def test_sunday_to_monday():
| assert sunday_to_monday(_SUNDAY) == _MONDAY
|
|
| @pytest.mark.parametrize(
| "day,expected", [(_SATURDAY, _FRIDAY), (_SUNDAY, _MONDAY), (_MONDAY, _MONDAY)]
| )
| def test_nearest_workday(day, expected):
| assert nearest_workday(day) == expected
|
|
| @pytest.mark.parametrize(
| "day,expected", [(_SATURDAY, _MONDAY), (_SUNDAY, _MONDAY), (_MONDAY, _MONDAY)]
| )
| def test_weekend_to_monday(day, expected):
| assert weekend_to_monday(day) == expected
|
|
| @pytest.mark.parametrize(
| "day,expected",
| [
| (_WEDNESDAY, _THURSDAY),
| (_THURSDAY, _FRIDAY),
| (_SATURDAY, _MONDAY),
| (_SUNDAY, _MONDAY),
| (_MONDAY, _TUESDAY),
| (_TUESDAY, _NEXT_WEDNESDAY), # WED is same week as TUE
| ],
| )
| def test_next_workday(day, expected):
| assert next_workday(day) == expected
|
|
| @pytest.mark.parametrize(
| "day,expected", [(_SATURDAY, _FRIDAY), (_SUNDAY, _FRIDAY), (_TUESDAY, _MONDAY)]
| )
| def test_previous_workday(day, expected):
| assert previous_workday(day) == expected
|
|
| @pytest.mark.parametrize(
| "day,expected",
| [
| (_THURSDAY, _WEDNESDAY),
| (_FRIDAY, _THURSDAY),
| (_SATURDAY, _THURSDAY),
| (_SUNDAY, _FRIDAY),
| (_MONDAY, _FRIDAY), # last week Friday
| (_TUESDAY, _MONDAY),
| (_NEXT_WEDNESDAY, _TUESDAY), # WED is same week as TUE
| ],
| )
| def test_before_nearest_workday(day, expected):
| assert before_nearest_workday(day) == expected
|
|
| @pytest.mark.parametrize(
| "day,expected", [(_SATURDAY, _MONDAY), (_SUNDAY, _TUESDAY), (_FRIDAY, _MONDAY)]
| )
| def test_after_nearest_workday(day, expected):
| assert after_nearest_workday(day) == expected
|
|