holidays 4.7.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +3 -0
  3. data/CHANGELOG.md +9 -0
  4. data/CONTRIBUTING.md +21 -11
  5. data/Makefile +9 -6
  6. data/holidays.gemspec +1 -1
  7. data/lib/generated_definitions/MANIFEST +1 -0
  8. data/lib/generated_definitions/REGIONS.rb +1 -1
  9. data/lib/generated_definitions/hk.rb +112 -0
  10. data/lib/generated_definitions/kr.rb +4 -4
  11. data/lib/holidays/errors.rb +1 -0
  12. data/lib/holidays/finder/context/parse_options.rb +8 -3
  13. data/lib/holidays/load_all_definitions.rb +0 -11
  14. data/lib/holidays/version.rb +1 -1
  15. data/test/defs/test_defs_hk.rb +38 -0
  16. data/test/defs/test_defs_jp.rb +1 -0
  17. data/test/defs/test_defs_kr.rb +1 -1
  18. data/test/holidays/definition/validator/test_region.rb +4 -0
  19. data/test/holidays/finder/context/test_parse_options.rb +9 -1
  20. data/test/integration/test_all_regions.rb +4 -4
  21. data/test/integration/test_custom_holidays.rb +4 -4
  22. data/test/integration/test_holidays.rb +6 -6
  23. metadata +6 -60
  24. data/definitions/README.md +0 -353
  25. data/definitions/ar.yaml +0 -93
  26. data/definitions/at.yaml +0 -72
  27. data/definitions/au.yaml +0 -378
  28. data/definitions/be_fr.yaml +0 -69
  29. data/definitions/be_nl.yaml +0 -69
  30. data/definitions/bg.yaml +0 -127
  31. data/definitions/br.yaml +0 -77
  32. data/definitions/ca.yaml +0 -317
  33. data/definitions/ch.yaml +0 -193
  34. data/definitions/cl.yaml +0 -94
  35. data/definitions/cr.yaml +0 -65
  36. data/definitions/cz.yaml +0 -73
  37. data/definitions/de.yaml +0 -209
  38. data/definitions/dk.yaml +0 -130
  39. data/definitions/ecb_target.yaml +0 -44
  40. data/definitions/el.yaml +0 -84
  41. data/definitions/es.yaml +0 -203
  42. data/definitions/federal_reserve.yaml +0 -114
  43. data/definitions/fedex.yaml +0 -62
  44. data/definitions/fi.yaml +0 -115
  45. data/definitions/fr.yaml +0 -79
  46. data/definitions/gb.yaml +0 -151
  47. data/definitions/hr.yaml +0 -79
  48. data/definitions/hu.yaml +0 -63
  49. data/definitions/ie.yaml +0 -89
  50. data/definitions/index.yaml +0 -61
  51. data/definitions/is.yaml +0 -146
  52. data/definitions/it.yaml +0 -67
  53. data/definitions/jp.yaml +0 -321
  54. data/definitions/kr.yaml +0 -282
  55. data/definitions/li.yaml +0 -107
  56. data/definitions/lt.yaml +0 -89
  57. data/definitions/lu.yaml +0 -56
  58. data/definitions/ma.yaml +0 -52
  59. data/definitions/mx.yaml +0 -106
  60. data/definitions/my.yaml +0 -51
  61. data/definitions/nerc.yaml +0 -51
  62. data/definitions/nl.yaml +0 -73
  63. data/definitions/no.yaml +0 -90
  64. data/definitions/north_america_informal.yaml +0 -61
  65. data/definitions/nyse.yaml +0 -64
  66. data/definitions/nz.yaml +0 -163
  67. data/definitions/pe.yaml +0 -119
  68. data/definitions/ph.yaml +0 -94
  69. data/definitions/pl.yaml +0 -320
  70. data/definitions/pt.yaml +0 -89
  71. data/definitions/ro.yaml +0 -78
  72. data/definitions/se.yaml +0 -120
  73. data/definitions/sg.yaml +0 -56
  74. data/definitions/si.yaml +0 -86
  75. data/definitions/sk.yaml +0 -80
  76. data/definitions/united_nations.yaml +0 -189
  77. data/definitions/ups.yaml +0 -62
  78. data/definitions/us.yaml +0 -103
  79. data/definitions/ve.yaml +0 -74
  80. data/definitions/vi.yaml +0 -29
  81. data/definitions/za.yaml +0 -80
@@ -1,69 +0,0 @@
1
- # Belgium holiday definitions for the Ruby Holiday gem in French.
2
- #
3
- # Updated: 2012-06-20.
4
- # Sources:
5
- # - http://en.wikipedia.org/wiki/Public_holidays_in_Belgium
6
- ---
7
- months:
8
- 0:
9
- - name: Pâques
10
- regions: [be_fr]
11
- function: easter(year)
12
- - name: Lundi de Pâques
13
- regions: [be_fr]
14
- function: easter(year)
15
- function_modifier: 1
16
- - name: Ascension
17
- regions: [be_fr]
18
- function: easter(year)
19
- function_modifier: 39
20
- - name: Pentecôte
21
- regions: [be_fr]
22
- function: easter(year)
23
- function_modifier: 49
24
- - name: Lundi de Pentecôte
25
- regions: [be_fr]
26
- function: easter(year)
27
- function_modifier: 50
28
- 1:
29
- - name: Jour de l'an
30
- regions: [be_fr]
31
- mday: 1
32
- 5:
33
- - name: Fête du travail
34
- regions: [be_fr]
35
- mday: 1
36
- 7:
37
- - name: Fête nationale
38
- regions: [be_fr]
39
- mday: 21
40
- 8:
41
- - name: Assomption
42
- regions: [be_fr]
43
- mday: 15
44
- 11:
45
- - name: Toussaint
46
- regions: [be_fr]
47
- mday: 1
48
- - name: Armistice 1918
49
- regions: [be_fr]
50
- mday: 11
51
- 12:
52
- - name: Noël
53
- regions: [be_fr]
54
- mday: 25
55
- tests: |
56
- {Date.civil(2007,1,1) => 'Jour de l\'an',
57
- Date.civil(2007,4,8) => 'Pâques',
58
- Date.civil(2007,4,9) => 'Lundi de Pâques',
59
- Date.civil(2007,5,1) => 'Fête du travail',
60
- Date.civil(2007,5,17) => 'Ascension',
61
- Date.civil(2007,5,27) => 'Pentecôte',
62
- Date.civil(2007,5,28) => 'Lundi de Pentecôte',
63
- Date.civil(2007,7,21) => 'Fête nationale',
64
- Date.civil(2007,8,15) => 'Assomption',
65
- Date.civil(2007,11,1) => 'Toussaint',
66
- Date.civil(2007,11,11) => 'Armistice 1918',
67
- Date.civil(2007,12,25) => 'Noël'}.each do |date, name|
68
- assert_equal name, (Holidays.on(date, :be_fr, :informal)[0] || {})[:name]
69
- end
@@ -1,69 +0,0 @@
1
- # Belgium holiday definitions for the Ruby Holiday gem. In Dutch.
2
- #
3
- # Updated: 2016-02-17.
4
- # Sources:
5
- # - http://en.wikipedia.org/wiki/Public_holidays_in_Belgium
6
- ---
7
- months:
8
- 0:
9
- - name: Pasen
10
- regions: [be_nl]
11
- function: easter(year)
12
- - name: Paasmaandag
13
- regions: [be_nl]
14
- function: easter(year)
15
- function_modifier: 1
16
- - name: O.H. Hemelvaart
17
- regions: [be_nl]
18
- function: easter(year)
19
- function_modifier: 39
20
- - name: Pinksteren
21
- regions: [be_nl]
22
- function: easter(year)
23
- function_modifier: 49
24
- - name: Pinkstermaandag
25
- regions: [be_nl]
26
- function: easter(year)
27
- function_modifier: 50
28
- 1:
29
- - name: Nieuwjaar
30
- regions: [be_nl]
31
- mday: 1
32
- 5:
33
- - name: Feest van de Arbeid
34
- regions: [be_nl]
35
- mday: 1
36
- 7:
37
- - name: Nationale Feestdag
38
- regions: [be_nl]
39
- mday: 21
40
- 8:
41
- - name: O.L.V. Hemelvaart
42
- regions: [be_nl]
43
- mday: 15
44
- 11:
45
- - name: Allerheiligen
46
- regions: [be_nl]
47
- mday: 1
48
- - name: Wapenstilstand 1918
49
- regions: [be_nl]
50
- mday: 11
51
- 12:
52
- - name: Kerstmis
53
- regions: [be_nl]
54
- mday: 25
55
- tests: |
56
- {Date.civil(2007,1,1) => 'Nieuwjaar',
57
- Date.civil(2007,4,8) => 'Pasen',
58
- Date.civil(2007,4,9) => 'Paasmaandag',
59
- Date.civil(2007,5,1) => 'Feest van de Arbeid',
60
- Date.civil(2007,5,17) => 'O.H. Hemelvaart',
61
- Date.civil(2007,5,27) => 'Pinksteren',
62
- Date.civil(2007,5,28) => 'Pinkstermaandag',
63
- Date.civil(2007,7,21) => 'Nationale Feestdag',
64
- Date.civil(2007,8,15) => 'O.L.V. Hemelvaart',
65
- Date.civil(2007,11,1) => 'Allerheiligen',
66
- Date.civil(2007,11,11) => 'Wapenstilstand 1918',
67
- Date.civil(2007,12,25) => 'Kerstmis'}.each do |date, name|
68
- assert_equal name, (Holidays.on(date, :be_nl, :informal)[0] || {})[:name]
69
- end
@@ -1,127 +0,0 @@
1
- # Bulgaria holiday definitions for the Ruby Holiday gem.
2
- #
3
- # Updated: 2015-04-01.
4
- # Source: http://en.wikipedia.org/wiki/Public_holidays_in_Bulgaria
5
- ---
6
- months:
7
- 0:
8
- - name: Good Friday
9
- regions: [bg_en]
10
- function: orthodox_easter_julian(year)
11
- function_modifier: -2
12
- - name: Разпети петък
13
- regions: [bg_bg]
14
- function: orthodox_easter_julian(year)
15
- function_modifier: -2
16
- - name: Holy Saturday
17
- regions: [bg_en]
18
- function: orthodox_easter_julian(year)
19
- function_modifier: -1
20
- - name: Велика събота
21
- regions: [bg_bg]
22
- function: orthodox_easter_julian(year)
23
- function_modifier: -1
24
- - name: Easter Sunday
25
- regions: [bg_en]
26
- function: orthodox_easter_julian(year)
27
- - name: Възкресение Христово. Великден
28
- regions: [bg_bg]
29
- function: orthodox_easter_julian(year)
30
- - name: Easter Monday
31
- regions: [bg_en]
32
- function: orthodox_easter_julian(year)
33
- function_modifier: 1
34
- - name: Възкресение Христово. Великден
35
- regions: [bg_bg]
36
- function: orthodox_easter_julian(year)
37
- function_modifier: 1
38
- 1:
39
- - name: New Year's Day
40
- regions: [bg_en]
41
- mday: 1
42
- - name: Нова година
43
- regions: [bg_bg]
44
- mday: 1
45
- 3:
46
- - name: Liberation Day
47
- regions: [bg_en]
48
- mday: 3
49
- - name: Освобожението на България
50
- regions: [bg_bg]
51
- mday: 3
52
- 5:
53
- - name: Labour Day
54
- regions: [bg_en]
55
- mday: 1
56
- - name: Ден на труда
57
- regions: [bg_bg]
58
- mday: 1
59
- - name: St. George's Day
60
- regions: [bg_en]
61
- mday: 6
62
- - name: Гергьовден. Ден на храбростта
63
- regions: [bg_bg]
64
- mday: 6
65
- - name: Slavic Literacy Day
66
- regions: [bg_en]
67
- mday: 24
68
- - name: Ден на славянската писменост
69
- regions: [bg_bg]
70
- mday: 24
71
- 9:
72
- - name: Unification Day
73
- regions: [bg_en]
74
- mday: 6
75
- - name: Ден на Съединението
76
- regions: [bg_bg]
77
- mday: 6
78
- - name: The Independence Day
79
- regions: [bg_en]
80
- mday: 22
81
- - name: Ден на Независимостта
82
- regions: [bg_bg]
83
- mday: 22
84
- 11:
85
- - name: Revival Leader's Day
86
- regions: [bg_en]
87
- mday: 1
88
- - name: Ден на Народните будители
89
- regions: [bg_bg]
90
- mday: 1
91
- 12:
92
- - name: Christmas Eve
93
- regions: [bg_en]
94
- mday: 24
95
- - name: Бъдни вечер
96
- regions: [bg_bg]
97
- mday: 24
98
- - name: Christmas
99
- regions: [bg_en]
100
- mday: 25
101
- - name: Рождество Христово. Коледа
102
- regions: [bg_bg]
103
- mday: 25
104
- - name: Christmas
105
- regions: [bg_en]
106
- mday: 26
107
- - name: Рождество Христово. Коледа
108
- regions: [bg_bg]
109
- mday: 26
110
- tests: |
111
- {Date.civil(2015,1,1) => "New Year's Day",
112
- Date.civil(2015,3,3) => "Liberation Day",
113
- Date.civil(2015,3,28) => "Good Friday",
114
- Date.civil(2015,3,29) => "Holy Saturday",
115
- Date.civil(2015,3,30) => "Easter Sunday",
116
- Date.civil(2015,3,31) => "Easter Monday",
117
- Date.civil(2015,5,1) => "Labour Day",
118
- Date.civil(2015,5,6) => "St. George's Day",
119
- Date.civil(2015,5,24) => "Slavic Literacy Day",
120
- Date.civil(2015,9,6) => "Unification Day",
121
- Date.civil(2015,9,22) => "The Independence Day",
122
- Date.civil(2015,11,1) => "Revival Leader's Day",
123
- Date.civil(2015,12,24) => "Christmas Eve",
124
- Date.civil(2015,12,25) => "Christmas",
125
- Date.civil(2015,12,26) => "Christmas"}.each do |date, name|
126
- assert_equal name, (Holidays.on(date, :bg_en)[0] || {})[:name]
127
- end
@@ -1,77 +0,0 @@
1
- # Brazilian holiday definitions for the Ruby Holiday gem.
2
- # Provided by Rogério Carrasqueira
3
- #
4
- # Updated: 2008-11-28.
5
- # Sources:
6
- # - http://pt.wikipedia.org/wiki/Feriados_no_Brasil
7
-
8
- ---
9
- months:
10
- 0:
11
- - name: Carnaval # same as Shrove Tuesday
12
- regions: [br]
13
- function: easter(year)
14
- function_modifier: -47
15
- type: informal
16
- - name: Sexta-feira Santa
17
- regions: [br]
18
- function: easter(year)
19
- function_modifier: -2
20
- - name: Páscoa
21
- regions: [br]
22
- function: easter(year)
23
- - name: Corpus Christi
24
- regions: [br]
25
- function: easter(year)
26
- function_modifier: 60
27
- 1:
28
- - name: Dia da Confraternização Universal
29
- regions: [br]
30
- mday: 1
31
- 4:
32
- - name: Dia de Tiradentes
33
- regions: [br]
34
- mday: 21
35
- 5:
36
- - name: Dia do Trabalho
37
- regions: [br]
38
- mday: 1
39
- 9:
40
- - name: Proclamação da Independência
41
- regions: [br]
42
- mday: 7
43
- 10:
44
- - name: Dia de Nossa Senhora Aparecida
45
- regions: [br]
46
- mday: 12
47
- 11:
48
- - name: Dia de Finados
49
- regions: [br]
50
- mday: 2
51
- - name: Proclamação da República
52
- regions: [br]
53
- mday: 15
54
- 12:
55
- - name: Natal
56
- regions: [br]
57
- mday: 25
58
- tests: |
59
- {Date.civil(2008,1,1) => 'Dia da Confraternização Universal',
60
- Date.civil(2005,2,8) => 'Carnaval',
61
- Date.civil(2006,2,28) => 'Carnaval',
62
- Date.civil(2007,2,20) => 'Carnaval',
63
- Date.civil(2008,2,5) => 'Carnaval',
64
- Date.civil(2008,3,21) => 'Sexta-feira Santa',
65
- Date.civil(2008,3,23) => 'Páscoa',
66
- Date.civil(2008,4,21) => 'Dia de Tiradentes',
67
- Date.civil(2008,5,1) => 'Dia do Trabalho',
68
- Date.civil(2005,5,26) => 'Corpus Christi',
69
- Date.civil(2007,6,7) => 'Corpus Christi',
70
- Date.civil(2008,5,22) => 'Corpus Christi',
71
- Date.civil(2008,9,7) => 'Proclamação da Independência',
72
- Date.civil(2008,10,12) => 'Dia de Nossa Senhora Aparecida',
73
- Date.civil(2008,11,2) => 'Dia de Finados',
74
- Date.civil(2008,11,15) => 'Proclamação da República',
75
- Date.civil(2008,12,25) => 'Natal'}.each do |date, name|
76
- assert_equal name, (Holidays.on(date, :br, :informal)[0] || {})[:name]
77
- end
@@ -1,317 +0,0 @@
1
- # Canadian holiday definitions for the Ruby Holiday gem.
2
- # Updated 2016-04-29.
3
- #
4
- # Notes:
5
- # - 'Family Day' in various provinces are only celebrated after certain years: http://www.timeanddate.com/holidays/canada/family-day
6
- ---
7
- months:
8
- 0:
9
- - name: Good Friday
10
- regions: [ca]
11
- function: easter(year)
12
- function_modifier: -2
13
- - name: Easter Sunday
14
- regions: [ca]
15
- function: easter(year)
16
- - name: Easter Monday
17
- regions: [ca]
18
- function: easter(year)
19
- function_modifier: 1
20
- type: informal
21
- 1:
22
- - name: New Year's Day
23
- regions: [ca]
24
- mday: 1
25
- - name: New Year's
26
- regions: [ca_qc]
27
- mday: 2
28
- 2:
29
- - name: Family Day
30
- regions: [ca_ab]
31
- wday: 1
32
- week: 3
33
- year_ranges:
34
- - after: 1990
35
- - name: Family Day
36
- regions: [ca_sk]
37
- wday: 1
38
- week: 3
39
- year_ranges:
40
- - after: 2007
41
- - name: Family Day
42
- regions: [ca_on]
43
- wday: 1
44
- week: 3
45
- year_ranges:
46
- - after: 2008
47
- - name: Family Day
48
- regions: [ca_bc]
49
- wday: 1
50
- week: 2
51
- year_ranges:
52
- - after: 2013
53
- - name: Louis Riel Day
54
- regions: [ca_mb]
55
- wday: 1
56
- week: 3
57
- - name: Nova Scotia Heritage Day
58
- regions: [ca_ns]
59
- wday: 1
60
- week: 3
61
- year_ranges:
62
- - after: 2015
63
- - name: Islander Day
64
- regions: [ca_pe]
65
- wday: 1
66
- week: 3
67
- 3:
68
- - name: St. Patrick's Day
69
- regions: [ca_nf]
70
- mday: 17
71
- 3:
72
- - name: St. George's Day
73
- regions: [ca_nf]
74
- mday: 23
75
- 5:
76
- - name: Victoria Day
77
- regions: [ca]
78
- function: ca_victoria_day(year)
79
- - name: National Patriotes Day
80
- regions: [ca_qc]
81
- function: ca_victoria_day(year)
82
- 6:
83
- - name: Discovery Day
84
- regions: [ca_nf]
85
- mday: 24
86
- - name: Fête Nationale
87
- regions: [ca_qc]
88
- mday: 24
89
- - name: National Aboriginal Day
90
- regions: [ca_nt]
91
- mday: 21
92
- 7:
93
- - name: Canada Day
94
- regions: [ca]
95
- mday: 1
96
- observed: to_monday_if_sunday(date)
97
- - name: Orangemen's Day
98
- regions: [ca_nf]
99
- mday: 12
100
- - name: Nunavut Day
101
- regions: [ca_nu]
102
- mday: 9
103
- 8:
104
- - name: BC Day
105
- week: 1
106
- regions: [ca_bc]
107
- wday: 1
108
- - name: Saskatchewan Day
109
- week: 1
110
- regions: [ca_sk]
111
- wday: 1
112
- - name: Heritage Day
113
- week: 1
114
- regions: [ca_ab]
115
- wday: 1
116
- - name: Natal Day
117
- week: 1
118
- regions: [ca_ns]
119
- wday: 1
120
- - name: Civic Holiday
121
- week: 1
122
- regions: [ca_on, ca_nt, ca_nu, ca_pe] # Appears to be a holiday in Ontario by convention
123
- wday: 1
124
- - name: New Brunswick Day
125
- week: 1
126
- regions: [ca_nb]
127
- wday: 1
128
- - name: Discovery Day
129
- week: 3
130
- regions: [ca_yk]
131
- wday: 1
132
- 9:
133
- - name: Labour Day
134
- week: 1
135
- regions: [ca]
136
- wday: 1
137
- 10:
138
- - name: Thanksgiving
139
- week: 2
140
- regions: [ca]
141
- wday: 1
142
- 11:
143
- - name: Remembrance Day
144
- regions: [ ca_ab, ca_sk, ca_bc, ca_pe, ca_nf, ca_nt, ca_nu, ca_nb, ca_yk]
145
- mday: 11
146
- 12:
147
- - name: Christmas Day
148
- regions: [ca]
149
- mday: 25
150
- - name: Boxing Day
151
- regions: [ca]
152
- mday: 26
153
- methods:
154
- ca_victoria_day:
155
- # Monday on or before May 24
156
- arguments: year
157
- source: |
158
- date = Date.civil(year,5,24)
159
- if date.wday > 1
160
- date -= (date.wday - 1)
161
- elsif date.wday == 0
162
- date -= 6
163
- end
164
- date
165
- tests: |
166
- {Date.civil(2008,1,1) => 'New Year\'s Day',
167
- Date.civil(2008,3,21) => 'Good Friday',
168
- Date.civil(2013,3,31) => 'Easter Sunday',
169
- Date.civil(2008,3,24) => 'Easter Monday',
170
- Date.civil(2008,5,19) => 'Victoria Day',
171
- Date.civil(2008,7,1) => 'Canada Day',
172
- Date.civil(2008,9,1) => 'Labour Day',
173
- Date.civil(2008,10,13) => 'Thanksgiving',
174
- Date.civil(2008,12,25) => 'Christmas Day',
175
- Date.civil(2008,12,26) => 'Boxing Day'}.each do |date, name|
176
- assert_equal name, (Holidays.on(date, :ca, :informal)[0] || {})[:name]
177
- end
178
-
179
- # Family Day in Alberta - Should only be active on 1990 or later
180
- [
181
- Date.civil(1990,2,19),
182
- Date.civil(2013,2,18),
183
- Date.civil(2014,2,17),
184
- Date.civil(2044,2,15),
185
- ].each do |date|
186
- assert_equal 'Family Day', Holidays.on(date, :ca_ab)[0][:name]
187
- end
188
-
189
- # Family Day in Alberta - should not be active before 1990
190
- [
191
- Date.civil(1970,2,16),
192
- Date.civil(1988,2,15),
193
- Date.civil(1989,2,20),
194
- ].each do |date|
195
- assert_equal [], Holidays.on(date, :ca_ab)
196
- end
197
-
198
- # Family Day in Saskatchewan - Should only be active on 2007 or later
199
- [
200
- Date.civil(2007,2,19),
201
- Date.civil(2013,2,18),
202
- Date.civil(2014,2,17),
203
- Date.civil(2044,2,15),
204
- ].each do |date|
205
- assert_equal 'Family Day', Holidays.on(date, :ca_sk)[0][:name]
206
- end
207
-
208
- # Family Day in Saskatchewan - should not be active before 2007
209
- [
210
- Date.civil(1970,2,16),
211
- Date.civil(1988,2,15),
212
- Date.civil(1989,2,20),
213
- Date.civil(2006,2,20),
214
- ].each do |date|
215
- assert_equal [], Holidays.on(date, :ca_sk)
216
- end
217
-
218
- # Family Day in Ontario - Should only be active on 2008 or later
219
- [
220
- Date.civil(2008,2,18),
221
- Date.civil(2013,2,18),
222
- Date.civil(2014,2,17),
223
- Date.civil(2044,2,15),
224
- ].each do |date|
225
- assert_equal 'Family Day', Holidays.on(date, :ca_on)[0][:name]
226
- end
227
-
228
- # Family Day in Ontario - should not be active before 2008
229
- [
230
- Date.civil(1970,2,16),
231
- Date.civil(1988,2,15),
232
- Date.civil(1989,2,20),
233
- Date.civil(2006,2,20),
234
- Date.civil(2007,2,19),
235
- ].each do |date|
236
- assert_equal [], Holidays.on(date, :ca_on)
237
- end
238
-
239
- # Family Day in BC - Should only be active on 2013 or later
240
- [
241
- Date.civil(2013,2,11),
242
- Date.civil(2014,2,10),
243
- Date.civil(2044,2,8),
244
- ].each do |date|
245
- assert_equal 'Family Day', Holidays.on(date, :ca_bc)[0][:name]
246
- end
247
-
248
- # Family Day in BC - should not be active before 2013
249
- [
250
- Date.civil(2000,2,14),
251
- Date.civil(2011,2,14),
252
- Date.civil(2012,2,13),
253
- ].each do |date|
254
- assert_equal [], Holidays.on(date, :ca_bc)
255
- end
256
-
257
- # Nova Scotia Heritage Day - should only be active on 2015 and later
258
- [
259
- Date.civil(2015,2,16),
260
- Date.civil(2016,2,15),
261
- Date.civil(2017,2,20),
262
- Date.civil(2044,2,15),
263
- ].each do |date|
264
- assert_equal 'Nova Scotia Heritage Day', Holidays.on(date, :ca_ns)[0][:name]
265
- end
266
-
267
- # Nova Scotia Heritage Day - should not be active before 2015
268
- [
269
- Date.civil(2000,2,21),
270
- Date.civil(2012,2,20),
271
- Date.civil(2013,2,18),
272
- Date.civil(2014,2,17),
273
- ].each do |date|
274
- assert_equal [], Holidays.on(date, :ca_ns)
275
- end
276
-
277
- # Islander Day in PE
278
- [ Date.civil(2013,2,18), Date.civil(2014,2,17) ].each do |date|
279
- assert_equal 'Islander Day', Holidays.on(date, :ca_pe)[0][:name]
280
- end
281
-
282
- # Victoria Day
283
- [Date.civil(2004,5,24), Date.civil(2005,5,23), Date.civil(2006,5,22),
284
- Date.civil(2007,5,21), Date.civil(2008,5,19)].each do |date|
285
- assert_equal 'Victoria Day', Holidays.on(date, :ca)[0][:name]
286
- end
287
-
288
- # First Monday in August
289
- [Date.civil(2013,8,5), Date.civil(2014,8,4), Date.civil(2015,8,3)].each do |date|
290
- { :ca_bc => 'BC Day',
291
- :ca_sk => 'Saskatchewan Day',
292
- :ca_ab => 'Heritage Day',
293
- :ca_ns => 'Natal Day',
294
- :ca_on => 'Civic Holiday',
295
- :ca_nt => 'Civic Holiday',
296
- :ca_nu => 'Civic Holiday',
297
- :ca_pe => 'Civic Holiday',
298
- :ca_nb => 'New Brunswick Day' }.each do |region, name|
299
- assert_equal name, Holidays.on(date, region)[0][:name]
300
- end
301
- end
302
-
303
- # Remembrance Day in all Canadian provinces
304
- # except (Nova Scotia, Manitoba, Ontario, and Quebec)
305
- [
306
- :ca_ab,
307
- :ca_sk,
308
- :ca_bc,
309
- :ca_pe,
310
- :ca_nf,
311
- :ca_nt,
312
- :ca_nu,
313
- :ca_nb,
314
- :ca_yk
315
- ].each do |province|
316
- assert_equal "Remembrance Day", Holidays.on(Date.civil(2016,11,11), province)[0][:name]
317
- end