holidays 5.7.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +1 -1
  3. data/CHANGELOG.md +11 -0
  4. data/lib/generated_definitions/north_america.rb +1 -1
  5. data/lib/generated_definitions/tr.rb +1 -0
  6. data/lib/generated_definitions/us.rb +1 -1
  7. data/lib/holidays/definition/context/generator.rb +5 -36
  8. data/lib/holidays/definition/decorator/test.rb +37 -0
  9. data/lib/holidays/definition/entity/test.rb +11 -0
  10. data/lib/holidays/definition/generator/test.rb +51 -0
  11. data/lib/holidays/definition/parser/test.rb +86 -0
  12. data/lib/holidays/definition/validator/test.rb +71 -0
  13. data/lib/holidays/errors.rb +3 -0
  14. data/lib/holidays/factory/definition.rb +24 -0
  15. data/lib/holidays/version.rb +1 -1
  16. data/test/coverage_report.rb +1 -0
  17. data/test/data/test_custom_year_range_holiday_defs.yaml +7 -0
  18. data/test/data/test_multiple_custom_holiday_defs.yaml +7 -4
  19. data/test/data/test_single_custom_holiday_defs.yaml +7 -4
  20. data/test/data/test_single_custom_holiday_with_custom_procs.yaml +11 -7
  21. data/test/defs/test_defs_ar.rb +33 -19
  22. data/test/defs/test_defs_at.rb +14 -11
  23. data/test/defs/test_defs_au.rb +172 -141
  24. data/test/defs/test_defs_be_fr.rb +23 -14
  25. data/test/defs/test_defs_be_nl.rb +23 -14
  26. data/test/defs/test_defs_bg.rb +29 -17
  27. data/test/defs/test_defs_br.rb +33 -19
  28. data/test/defs/test_defs_ca.rb +175 -176
  29. data/test/defs/test_defs_ch.rb +29 -23
  30. data/test/defs/test_defs_cl.rb +49 -27
  31. data/test/defs/test_defs_cr.rb +17 -11
  32. data/test/defs/test_defs_cz.rb +25 -15
  33. data/test/defs/test_defs_de.rb +52 -61
  34. data/test/defs/test_defs_dk.rb +31 -19
  35. data/test/defs/test_defs_ecb_target.rb +14 -10
  36. data/test/defs/test_defs_ee.rb +28 -20
  37. data/test/defs/test_defs_el.rb +29 -17
  38. data/test/defs/test_defs_es.rb +114 -52
  39. data/test/defs/test_defs_europe.rb +1154 -715
  40. data/test/defs/test_defs_federal_reserve.rb +99 -57
  41. data/test/defs/test_defs_fedex.rb +19 -12
  42. data/test/defs/test_defs_fi.rb +47 -27
  43. data/test/defs/test_defs_fr.rb +29 -24
  44. data/test/defs/test_defs_gb.rb +90 -51
  45. data/test/defs/test_defs_ge.rb +40 -28
  46. data/test/defs/test_defs_hk.rb +47 -26
  47. data/test/defs/test_defs_hr.rb +32 -18
  48. data/test/defs/test_defs_hu.rb +26 -16
  49. data/test/defs/test_defs_ie.rb +41 -25
  50. data/test/defs/test_defs_is.rb +39 -22
  51. data/test/defs/test_defs_it.rb +23 -14
  52. data/test/defs/test_defs_jp.rb +112 -59
  53. data/test/defs/test_defs_kr.rb +25 -17
  54. data/test/defs/test_defs_li.rb +20 -20
  55. data/test/defs/test_defs_lt.rb +51 -30
  56. data/test/defs/test_defs_lu.rb +17 -12
  57. data/test/defs/test_defs_ma.rb +17 -11
  58. data/test/defs/test_defs_mt_en.rb +28 -19
  59. data/test/defs/test_defs_mt_mt.rb +28 -19
  60. data/test/defs/test_defs_mx.rb +33 -22
  61. data/test/defs/test_defs_my.rb +11 -8
  62. data/test/defs/test_defs_nerc.rb +17 -11
  63. data/test/defs/test_defs_nl.rb +21 -13
  64. data/test/defs/test_defs_no.rb +31 -18
  65. data/test/defs/test_defs_north_america.rb +507 -393
  66. data/test/defs/test_defs_nyse.rb +26 -15
  67. data/test/defs/test_defs_nz.rb +47 -28
  68. data/test/defs/test_defs_pe.rb +35 -20
  69. data/test/defs/test_defs_ph.rb +17 -11
  70. data/test/defs/test_defs_pl.rb +200 -119
  71. data/test/defs/test_defs_pt.rb +33 -24
  72. data/test/defs/test_defs_ro.rb +39 -24
  73. data/test/defs/test_defs_rs_cyrl.rb +33 -26
  74. data/test/defs/test_defs_rs_la.rb +33 -26
  75. data/test/defs/test_defs_ru.rb +22 -16
  76. data/test/defs/test_defs_scandinavia.rb +193 -116
  77. data/test/defs/test_defs_se.rb +47 -28
  78. data/test/defs/test_defs_sg.rb +13 -9
  79. data/test/defs/test_defs_si.rb +93 -24
  80. data/test/defs/test_defs_sk.rb +29 -17
  81. data/test/defs/test_defs_tn.rb +15 -10
  82. data/test/defs/test_defs_tr.rb +39 -30
  83. data/test/defs/test_defs_united_nations.rb +0 -1
  84. data/test/defs/test_defs_ups.rb +19 -12
  85. data/test/defs/test_defs_us.rb +333 -217
  86. data/test/defs/test_defs_ve.rb +23 -16
  87. data/test/defs/test_defs_vi.rb +10 -8
  88. data/test/defs/test_defs_za.rb +23 -14
  89. data/test/holidays/definition/context/test_generator.rb +40 -13
  90. data/test/holidays/definition/decorator/test_test.rb +123 -0
  91. data/test/holidays/definition/generator/test_test.rb +113 -0
  92. data/test/holidays/definition/parser/test_test.rb +142 -0
  93. data/test/holidays/definition/validator/test_region.rb +5 -0
  94. data/test/holidays/definition/validator/test_test.rb +60 -0
  95. metadata +15 -8
  96. data/test/holidays/factory/test_date_calculator.rb +0 -32
  97. data/test/holidays/factory/test_definition.rb +0 -62
  98. data/test/holidays/factory/test_finder.rb +0 -25
@@ -7,26 +7,35 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class Mt_mtDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_mt_mt
10
- { Date.civil(2017, 1, 1) => 'L-Ewwel tas-Sena',
11
- Date.civil(2017, 2, 10) => "Nawfraġju ta' San Pawl",
12
- Date.civil(2017, 3, 19) => 'San Ġużepp',
13
- Date.civil(2017, 3, 31) => 'Jum il-Ħelsien',
14
- Date.civil(2017, 5, 1) => 'Jum il-Ħaddiem',
15
- Date.civil(2017, 6, 7) => 'Sette Giugno',
16
- Date.civil(2017, 6, 29) => 'L-Imnarja',
17
- Date.civil(2017, 8, 15) => 'Santa Marija',
18
- Date.civil(2017, 9, 8) => 'Jum il-Vitorja',
19
- Date.civil(2017, 9, 21) => 'Jum l-Indipendenza',
20
- Date.civil(2017, 12, 8) => 'Il-Kunċizzjoni',
21
- Date.civil(2017, 12, 13) => 'Jum ir-Repubblika',
22
- Date.civil(2017, 12, 25) => 'Il-Milied',
23
- }.each do |date, name|
24
- assert_equal name, (Holidays.on(date, :mt_mt)[0] || {})[:name]
25
- end
10
+ assert_equal "L-Ewwel tas-Sena", (Holidays.on(Date.civil(2017, 1, 1), [:mt_mt])[0] || {})[:name]
26
11
 
27
- [Date.civil(2017, 4, 14), Date.civil(2018, 3, 30), Date.civil(2019, 4, 19)].each do |date|
28
- assert_equal 'Il-Ġimgħa l-Kbira', Holidays.on(date, :mt_mt)[0][:name]
29
- end
12
+ assert_equal "Nawfraġju ta' San Pawl", (Holidays.on(Date.civil(2017, 2, 10), [:mt_mt])[0] || {})[:name]
13
+
14
+ assert_equal "San Ġużepp", (Holidays.on(Date.civil(2017, 3, 19), [:mt_mt])[0] || {})[:name]
15
+
16
+ assert_equal "Jum il-Ħelsien", (Holidays.on(Date.civil(2017, 3, 31), [:mt_mt])[0] || {})[:name]
17
+
18
+ assert_equal "Jum il-Ħaddiem", (Holidays.on(Date.civil(2017, 5, 1), [:mt_mt])[0] || {})[:name]
19
+
20
+ assert_equal "Sette Giugno", (Holidays.on(Date.civil(2017, 6, 7), [:mt_mt])[0] || {})[:name]
21
+
22
+ assert_equal "L-Imnarja", (Holidays.on(Date.civil(2017, 6, 29), [:mt_mt])[0] || {})[:name]
23
+
24
+ assert_equal "Santa Marija", (Holidays.on(Date.civil(2017, 8, 15), [:mt_mt])[0] || {})[:name]
25
+
26
+ assert_equal "Jum il-Vitorja", (Holidays.on(Date.civil(2017, 9, 8), [:mt_mt])[0] || {})[:name]
27
+
28
+ assert_equal "Jum l-Indipendenza", (Holidays.on(Date.civil(2017, 9, 21), [:mt_mt])[0] || {})[:name]
29
+
30
+ assert_equal "Il-Kunċizzjoni", (Holidays.on(Date.civil(2017, 12, 8), [:mt_mt])[0] || {})[:name]
31
+
32
+ assert_equal "Jum ir-Repubblika", (Holidays.on(Date.civil(2017, 12, 13), [:mt_mt])[0] || {})[:name]
33
+
34
+ assert_equal "Il-Milied", (Holidays.on(Date.civil(2017, 12, 25), [:mt_mt])[0] || {})[:name]
35
+
36
+ assert_equal "Il-Ġimgħa l-Kbira", (Holidays.on(Date.civil(2017, 4, 14), [:mt_mt])[0] || {})[:name]
37
+ assert_equal "Il-Ġimgħa l-Kbira", (Holidays.on(Date.civil(2018, 3, 30), [:mt_mt])[0] || {})[:name]
38
+ assert_equal "Il-Ġimgħa l-Kbira", (Holidays.on(Date.civil(2019, 4, 19), [:mt_mt])[0] || {})[:name]
30
39
 
31
40
  end
32
41
  end
@@ -7,30 +7,41 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class MxDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_mx
10
- {Date.civil(2007,1,1) => 'Año nuevo',
11
- Date.civil(2007,2,5) => 'Día de la Constitución',
12
- Date.civil(2007,5,1) => 'Día del Trabajo',
13
- Date.civil(2007,5,5) => 'Cinco de Mayo',
14
- Date.civil(2007,9,16) => 'Día de la Independencia',
15
- Date.civil(2007,11,1) => 'Todos los Santos',
16
- Date.civil(2007,11,2) => 'Los Fieles Difuntos',
17
- Date.civil(2007,11,19) => 'Día de la Revolución',
18
- Date.civil(2007,12,25) => 'Navidad'}.each do |date, name|
19
- assert_equal name, (Holidays.on(date, :mx, :informal)[0] || {})[:name]
20
- end
10
+ assert_equal "Año nuevo", (Holidays.on(Date.civil(2007, 1, 1), [:mx], [:informal])[0] || {})[:name]
21
11
 
12
+ assert_equal "Día de la Constitución", (Holidays.on(Date.civil(2007, 2, 5), [:mx], [:informal])[0] || {})[:name]
22
13
 
23
- {Date.civil(2013,2,2) => 'Groundhog Day',
24
- Date.civil(2013,2,14) => 'Valentine\'s Day',
25
- Date.civil(2013,3,17) => 'St. Patrick\'s Day',
26
- Date.civil(2013,4,1) => 'April Fool\'s Day',
27
- Date.civil(2013,4,22) => 'Earth Day',
28
- Date.civil(2013,5,12) => 'Mother\'s Day',
29
- Date.civil(2013,5,18) => 'Armed Forces Day',
30
- Date.civil(2013,6,16) => 'Father\'s Day',
31
- Date.civil(2013,10,31) => 'Halloween'}.each do |date, name|
32
- assert_equal name, (Holidays.on(date, :us, :informal)[0] || {})[:name]
33
- end
14
+ assert_equal "Día del Trabajo", (Holidays.on(Date.civil(2007, 5, 1), [:mx], [:informal])[0] || {})[:name]
15
+
16
+ assert_equal "Cinco de Mayo", (Holidays.on(Date.civil(2007, 5, 5), [:mx], [:informal])[0] || {})[:name]
17
+
18
+ assert_equal "Día de la Independencia", (Holidays.on(Date.civil(2007, 9, 16), [:mx], [:informal])[0] || {})[:name]
19
+
20
+ assert_equal "Todos los Santos", (Holidays.on(Date.civil(2007, 11, 1), [:mx], [:informal])[0] || {})[:name]
21
+
22
+ assert_equal "Los Fieles Difuntos", (Holidays.on(Date.civil(2007, 11, 2), [:mx], [:informal])[0] || {})[:name]
23
+
24
+ assert_equal "Día de la Revolución", (Holidays.on(Date.civil(2007, 11, 19), [:mx], [:informal])[0] || {})[:name]
25
+
26
+ assert_equal "Navidad", (Holidays.on(Date.civil(2007, 12, 25), [:mx], [:informal])[0] || {})[:name]
27
+
28
+ assert_equal "Groundhog Day", (Holidays.on(Date.civil(2013, 2, 2), [:us], [:informal])[0] || {})[:name]
29
+
30
+ assert_equal "Valentine's Day", (Holidays.on(Date.civil(2013, 2, 14), [:us], [:informal])[0] || {})[:name]
31
+
32
+ assert_equal "St. Patrick's Day", (Holidays.on(Date.civil(2013, 3, 17), [:us], [:informal])[0] || {})[:name]
33
+
34
+ assert_equal "April Fool's Day", (Holidays.on(Date.civil(2013, 4, 1), [:us], [:informal])[0] || {})[:name]
35
+
36
+ assert_equal "Earth Day", (Holidays.on(Date.civil(2013, 4, 22), [:us], [:informal])[0] || {})[:name]
37
+
38
+ assert_equal "Mother's Day", (Holidays.on(Date.civil(2013, 5, 12), [:us], [:informal])[0] || {})[:name]
39
+
40
+ assert_equal "Armed Forces Day", (Holidays.on(Date.civil(2013, 5, 18), [:us], [:informal])[0] || {})[:name]
41
+
42
+ assert_equal "Father's Day", (Holidays.on(Date.civil(2013, 6, 16), [:us], [:informal])[0] || {})[:name]
43
+
44
+ assert_equal "Halloween", (Holidays.on(Date.civil(2013, 10, 31), [:us], [:informal])[0] || {})[:name]
34
45
 
35
46
  end
36
47
  end
@@ -7,14 +7,17 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class MyDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_my
10
- {Date.civil(2016,1,1) => "New Year's Day",
11
- Date.civil(2016,5,1) => 'Labour Day',
12
- Date.civil(2016,6,4) => "Agong's Birthday",
13
- Date.civil(2016,8,31) => 'Independence Day',
14
- Date.civil(2016,9,16) => 'Malaysia Day',
15
- Date.civil(2016,12,25) => 'Christmas Day'}.each do |date, name|
16
- assert_equal name, (Holidays.on(date, :my, :informal)[0] || {})[:name]
17
- end
10
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2016, 1, 1), [:my], [:informal])[0] || {})[:name]
11
+
12
+ assert_equal "Labour Day", (Holidays.on(Date.civil(2016, 5, 1), [:my], [:informal])[0] || {})[:name]
13
+
14
+ assert_equal "Agong's Birthday", (Holidays.on(Date.civil(2016, 6, 4), [:my], [:informal])[0] || {})[:name]
15
+
16
+ assert_equal "Independence Day", (Holidays.on(Date.civil(2016, 8, 31), [:my], [:informal])[0] || {})[:name]
17
+
18
+ assert_equal "Malaysia Day", (Holidays.on(Date.civil(2016, 9, 16), [:my], [:informal])[0] || {})[:name]
19
+
20
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2016, 12, 25), [:my], [:informal])[0] || {})[:name]
18
21
 
19
22
  end
20
23
  end
@@ -7,17 +7,23 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class NercDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_nerc
10
- {Date.civil(2013,1,1) => 'New Year\'s Day',
11
- Date.civil(2017,1,2) => 'New Year\'s Day',
12
- Date.civil(2013,5,27) => 'Memorial Day',
13
- Date.civil(2013,7,4) => 'Independence Day',
14
- Date.civil(2010,7,5) => 'Independence Day',
15
- Date.civil(2013,9,2) => 'Labor Day',
16
- Date.civil(2013,11,28) => 'Thanksgiving',
17
- Date.civil(2013,12,25) => 'Christmas Day',
18
- Date.civil(2011,12,26) => 'Christmas Day'}.each do |date, name|
19
- assert_equal name, (Holidays.on(date, :nerc, :observed)[0] || {})[:name]
20
- end
10
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2013, 1, 1), [:nerc], [:observed])[0] || {})[:name]
11
+
12
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2017, 1, 2), [:nerc], [:observed])[0] || {})[:name]
13
+
14
+ assert_equal "Memorial Day", (Holidays.on(Date.civil(2013, 5, 27), [:nerc], [:observed])[0] || {})[:name]
15
+
16
+ assert_equal "Independence Day", (Holidays.on(Date.civil(2013, 7, 4), [:nerc], [:observed])[0] || {})[:name]
17
+
18
+ assert_equal "Independence Day", (Holidays.on(Date.civil(2010, 7, 5), [:nerc], [:observed])[0] || {})[:name]
19
+
20
+ assert_equal "Labor Day", (Holidays.on(Date.civil(2013, 9, 2), [:nerc], [:observed])[0] || {})[:name]
21
+
22
+ assert_equal "Thanksgiving", (Holidays.on(Date.civil(2013, 11, 28), [:nerc], [:observed])[0] || {})[:name]
23
+
24
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2013, 12, 25), [:nerc], [:observed])[0] || {})[:name]
25
+
26
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2011, 12, 26), [:nerc], [:observed])[0] || {})[:name]
21
27
 
22
28
  end
23
29
  end
@@ -7,19 +7,27 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class NlDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_nl
10
- {Date.civil(2008,1,1) => 'Nieuwjaarsdag',
11
- Date.civil(2008,3,21) => 'Goede Vrijdag',
12
- Date.civil(2008,3,23) => 'Eerste Paasdag',
13
- Date.civil(2008,3,24) => 'Tweede Paasdag',
14
- Date.civil(2008,4,27) => 'Koningsdag',
15
- Date.civil(2008,5,1) => 'Hemelvaartsdag', # Ascension, Easter+39
16
- Date.civil(2008,5,5) => 'Bevrijdingsdag',
17
- Date.civil(2008,5,11) => 'Eerste Pinksterdag', # Pentecost, Easter+49
18
- Date.civil(2008,5,12) => 'Tweede Pinksterdag', # Pentecost, Easter+50
19
- Date.civil(2008,12,25) => 'Eerste Kerstdag',
20
- Date.civil(2008,12,26) => 'Tweede Kerstdag'}.each do |date, name|
21
- assert_equal name, (Holidays.on(date, :nl, :informal)[0] || {})[:name]
22
- end
10
+ assert_equal "Nieuwjaarsdag", (Holidays.on(Date.civil(2008, 1, 1), [:nl], [:informal])[0] || {})[:name]
11
+
12
+ assert_equal "Goede Vrijdag", (Holidays.on(Date.civil(2008, 3, 21), [:nl], [:informal])[0] || {})[:name]
13
+
14
+ assert_equal "Eerste Paasdag", (Holidays.on(Date.civil(2008, 3, 23), [:nl], [:informal])[0] || {})[:name]
15
+
16
+ assert_equal "Tweede Paasdag", (Holidays.on(Date.civil(2008, 3, 24), [:nl], [:informal])[0] || {})[:name]
17
+
18
+ assert_equal "Koningsdag", (Holidays.on(Date.civil(2008, 4, 27), [:nl], [:informal])[0] || {})[:name]
19
+
20
+ assert_equal "Hemelvaartsdag", (Holidays.on(Date.civil(2008, 5, 1), [:nl], [:informal])[0] || {})[:name]
21
+
22
+ assert_equal "Bevrijdingsdag", (Holidays.on(Date.civil(2008, 5, 5), [:nl], [:informal])[0] || {})[:name]
23
+
24
+ assert_equal "Eerste Pinksterdag", (Holidays.on(Date.civil(2008, 5, 11), [:nl], [:informal])[0] || {})[:name]
25
+
26
+ assert_equal "Tweede Pinksterdag", (Holidays.on(Date.civil(2008, 5, 12), [:nl], [:informal])[0] || {})[:name]
27
+
28
+ assert_equal "Eerste Kerstdag", (Holidays.on(Date.civil(2008, 12, 25), [:nl], [:informal])[0] || {})[:name]
29
+
30
+ assert_equal "Tweede Kerstdag", (Holidays.on(Date.civil(2008, 12, 26), [:nl], [:informal])[0] || {})[:name]
23
31
 
24
32
  end
25
33
  end
@@ -7,24 +7,37 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class NoDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_no
10
- {Date.civil(2010,1,1) => 'Nyttårsdag',
11
- Date.civil(2010,5,1) => '1. mai',
12
- Date.civil(2010,5,17) => '17. mai',
13
- Date.civil(2010,12,24) => 'Julaften',
14
- Date.civil(2010,12,25) => '1. juledag',
15
- Date.civil(2010,12,26) => '2. juledag',
16
- Date.civil(2010,12,31) => 'Nyttårsaften',
17
- Date.civil(2010,2,14) => 'Fastelavn',
18
- Date.civil(2010,3,28) => 'Palmesøndag',
19
- Date.civil(2010,4,1) => 'Skjærtorsdag',
20
- Date.civil(2010,4,2) => 'Langfredag',
21
- Date.civil(2010,4,4) => '1. påskedag',
22
- Date.civil(2010,4,5) => '2. påskedag',
23
- Date.civil(2010,5,13) => 'Kristi Himmelfartsdag',
24
- Date.civil(2010,5,23) => '1. pinsedag',
25
- Date.civil(2010,5,24) => '2. pinsedag'}.each do |date, name|
26
- assert_equal name, (Holidays.on(date, :no, :informal)[0] || {})[:name]
27
- end
10
+ assert_equal "Nyttårsdag", (Holidays.on(Date.civil(2010, 1, 1), [:no], [:informal])[0] || {})[:name]
11
+
12
+ assert_equal "1. mai", (Holidays.on(Date.civil(2010, 5, 1), [:no], [:informal])[0] || {})[:name]
13
+
14
+ assert_equal "17. mai", (Holidays.on(Date.civil(2010, 5, 17), [:no], [:informal])[0] || {})[:name]
15
+
16
+ assert_equal "Julaften", (Holidays.on(Date.civil(2010, 12, 24), [:no], [:informal])[0] || {})[:name]
17
+
18
+ assert_equal "1. juledag", (Holidays.on(Date.civil(2010, 12, 25), [:no], [:informal])[0] || {})[:name]
19
+
20
+ assert_equal "2. juledag", (Holidays.on(Date.civil(2010, 12, 26), [:no], [:informal])[0] || {})[:name]
21
+
22
+ assert_equal "Nyttårsaften", (Holidays.on(Date.civil(2010, 12, 31), [:no], [:informal])[0] || {})[:name]
23
+
24
+ assert_equal "Fastelavn", (Holidays.on(Date.civil(2010, 2, 14), [:no], [:informal])[0] || {})[:name]
25
+
26
+ assert_equal "Palmesøndag", (Holidays.on(Date.civil(2010, 3, 28), [:no], [:informal])[0] || {})[:name]
27
+
28
+ assert_equal "Skjærtorsdag", (Holidays.on(Date.civil(2010, 4, 1), [:no], [:informal])[0] || {})[:name]
29
+
30
+ assert_equal "Langfredag", (Holidays.on(Date.civil(2010, 4, 2), [:no], [:informal])[0] || {})[:name]
31
+
32
+ assert_equal "1. påskedag", (Holidays.on(Date.civil(2010, 4, 4), [:no], [:informal])[0] || {})[:name]
33
+
34
+ assert_equal "2. påskedag", (Holidays.on(Date.civil(2010, 4, 5), [:no], [:informal])[0] || {})[:name]
35
+
36
+ assert_equal "Kristi Himmelfartsdag", (Holidays.on(Date.civil(2010, 5, 13), [:no], [:informal])[0] || {})[:name]
37
+
38
+ assert_equal "1. pinsedag", (Holidays.on(Date.civil(2010, 5, 23), [:no], [:informal])[0] || {})[:name]
39
+
40
+ assert_equal "2. pinsedag", (Holidays.on(Date.civil(2010, 5, 24), [:no], [:informal])[0] || {})[:name]
28
41
 
29
42
  end
30
43
  end
@@ -7,466 +7,580 @@ require File.expand_path(File.dirname(__FILE__)) + '/../test_helper'
7
7
  class North_americaDefinitionTests < Test::Unit::TestCase # :nodoc:
8
8
 
9
9
  def test_north_america
10
- {Date.civil(2008,1,1) => 'New Year\'s Day',
11
- Date.civil(2008,3,21) => 'Good Friday',
12
- Date.civil(2013,3,31) => 'Easter Sunday',
13
- Date.civil(2008,3,24) => 'Easter Monday',
14
- Date.civil(2008,7,1) => 'Canada Day',
15
- Date.civil(2008,9,1) => 'Labour Day',
16
- Date.civil(2008,12,25) => 'Christmas Day'}.each do |date, name|
17
- assert_equal name, (Holidays.on(date, :ca, :informal)[0] || {})[:name]
18
- end
10
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2008, 1, 1), [:ca], [:informal])[0] || {})[:name]
19
11
 
20
- # Family Day in Alberta - Should only be active on 1990 or later
21
- [
22
- Date.civil(1990,2,19),
23
- Date.civil(2013,2,18),
24
- Date.civil(2014,2,17),
25
- Date.civil(2044,2,15),
26
- ].each do |date|
27
- assert_equal 'Family Day', Holidays.on(date, :ca_ab)[0][:name]
28
- end
12
+ assert_equal "Good Friday", (Holidays.on(Date.civil(2008, 3, 21), [:ca], [:informal])[0] || {})[:name]
29
13
 
30
- # Family Day in Alberta - should not be active before 1990
31
- [
32
- Date.civil(1970,2,16),
33
- Date.civil(1988,2,15),
34
- Date.civil(1989,2,20),
35
- ].each do |date|
36
- assert_equal [], Holidays.on(date, :ca_ab)
37
- end
14
+ assert_equal "Easter Sunday", (Holidays.on(Date.civil(2013, 3, 31), [:ca], [:informal])[0] || {})[:name]
38
15
 
39
- # Family Day in Saskatchewan - Should only be active on 2007 or later
40
- [
41
- Date.civil(2007,2,19),
42
- Date.civil(2013,2,18),
43
- Date.civil(2014,2,17),
44
- Date.civil(2044,2,15),
45
- ].each do |date|
46
- assert_equal 'Family Day', Holidays.on(date, :ca_sk)[0][:name]
47
- end
16
+ assert_equal "Easter Monday", (Holidays.on(Date.civil(2008, 3, 24), [:ca], [:informal])[0] || {})[:name]
48
17
 
49
- # Family Day in Saskatchewan - should not be active before 2007
50
- [
51
- Date.civil(1970,2,16),
52
- Date.civil(1988,2,15),
53
- Date.civil(1989,2,20),
54
- Date.civil(2006,2,20),
55
- ].each do |date|
56
- assert_equal [], Holidays.on(date, :ca_sk)
57
- end
18
+ assert_equal "Canada Day", (Holidays.on(Date.civil(2008, 7, 1), [:ca], [:informal])[0] || {})[:name]
58
19
 
59
- # Family Day in Ontario - Should only be active on 2008 or later
60
- [
61
- Date.civil(2008,2,18),
62
- Date.civil(2013,2,18),
63
- Date.civil(2014,2,17),
64
- Date.civil(2044,2,15),
65
- ].each do |date|
66
- assert_equal 'Family Day', Holidays.on(date, :ca_on)[0][:name]
67
- end
20
+ assert_equal "Labour Day", (Holidays.on(Date.civil(2008, 9, 1), [:ca], [:informal])[0] || {})[:name]
68
21
 
69
- # Family Day in Ontario - should not be active before 2008
70
- [
71
- Date.civil(1970,2,16),
72
- Date.civil(1988,2,15),
73
- Date.civil(1989,2,20),
74
- Date.civil(2006,2,20),
75
- Date.civil(2007,2,19),
76
- ].each do |date|
77
- assert_equal [], Holidays.on(date, :ca_on)
78
- end
22
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2008, 12, 25), [:ca], [:informal])[0] || {})[:name]
79
23
 
80
- # Family Day in BC - Should only be active on 2013 or later
81
- [
82
- Date.civil(2013,2,11),
83
- Date.civil(2014,2,10),
84
- Date.civil(2044,2,8),
85
- ].each do |date|
86
- assert_equal 'Family Day', Holidays.on(date, :ca_bc)[0][:name]
87
- end
24
+ assert_equal "Family Day", (Holidays.on(Date.civil(1990, 2, 19), [:ca_ab])[0] || {})[:name]
88
25
 
89
- # Family Day in BC - should not be active before 2013
90
- [
91
- Date.civil(2000,2,14),
92
- Date.civil(2011,2,14),
93
- Date.civil(2012,2,13),
94
- ].each do |date|
95
- assert_equal [], Holidays.on(date, :ca_bc)
96
- end
26
+ assert_equal "Family Day", (Holidays.on(Date.civil(2013, 2, 18), [:ca_ab])[0] || {})[:name]
97
27
 
98
- # Nova Scotia Heritage Day - should only be active on 2015 and later
99
- [
100
- Date.civil(2015,2,16),
101
- Date.civil(2016,2,15),
102
- Date.civil(2017,2,20),
103
- Date.civil(2044,2,15),
104
- ].each do |date|
105
- assert_equal 'Nova Scotia Heritage Day', Holidays.on(date, :ca_ns)[0][:name]
106
- end
28
+ assert_equal "Family Day", (Holidays.on(Date.civil(2014, 2, 17), [:ca_ab])[0] || {})[:name]
107
29
 
108
- # Nova Scotia Heritage Day - should not be active before 2015
109
- [
110
- Date.civil(2000,2,21),
111
- Date.civil(2012,2,20),
112
- Date.civil(2013,2,18),
113
- Date.civil(2014,2,17),
114
- ].each do |date|
115
- assert_equal [], Holidays.on(date, :ca_ns)
116
- end
30
+ assert_equal "Family Day", (Holidays.on(Date.civil(2044, 2, 15), [:ca_ab])[0] || {})[:name]
117
31
 
118
- # Islander Day in PE
119
- [ Date.civil(2013,2,18), Date.civil(2014,2,17) ].each do |date|
120
- assert_equal 'Islander Day', Holidays.on(date, :ca_pe)[0][:name]
121
- end
32
+ assert_nil (Holidays.on(Date.civil(1970, 2, 16), [:ca_ab])[0] || {})[:name]
122
33
 
34
+ assert_nil (Holidays.on(Date.civil(1988, 2, 15), [:ca_ab])[0] || {})[:name]
123
35
 
124
- # Victoria Day
125
- [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_sk, :ca_yt].each do |r|
126
- [
127
- Date.civil(2004,5,24), Date.civil(2005,5,23), Date.civil(2006,5,22),
128
- Date.civil(2007,5,21), Date.civil(2008,5,19)
129
- ].each do |date|
130
- assert_equal 'Victoria Day', Holidays.on(date, r)[0][:name]
131
- end
132
- end
36
+ assert_nil (Holidays.on(Date.civil(1989, 2, 20), [:ca_ab])[0] || {})[:name]
133
37
 
134
- # First Monday in August
135
- [Date.civil(2013,8,5), Date.civil(2014,8,4), Date.civil(2015,8,3)].each do |date|
136
- { :ca_bc => 'B.C. Day',
137
- :ca_sk => 'Saskatchewan Day',
138
- :ca_ab => 'Heritage Day',
139
- :ca_ns => 'Natal Day',
140
- :ca_nt => 'Civic Holiday',
141
- :ca_nu => 'Civic Holiday',
142
- :ca_pe => 'Civic Holiday',
143
- :ca_nb => 'New Brunswick Day'
144
- }.each do |region, name|
145
- assert_equal name, Holidays.on(date, region)[0][:name]
146
- end
147
- end
38
+ assert_equal "Family Day", (Holidays.on(Date.civil(2007, 2, 19), [:ca_sk])[0] || {})[:name]
148
39
 
149
- # Civic Holiday is only by convention in :ca_on
150
- [Date.civil(2013,8,5), Date.civil(2014,8,4), Date.civil(2015,8,3)].each do |date|
151
- assert_equal 'Civic Holiday', Holidays.on(date, :ca_on, :informal)[0][:name]
152
- end
40
+ assert_equal "Family Day", (Holidays.on(Date.civil(2013, 2, 18), [:ca_sk])[0] || {})[:name]
153
41
 
154
- # Remembrance Day in all Canadian provinces
155
- # except (Nova Scotia, Manitoba, Ontario, and Quebec)
156
- [
157
- :ca_ab,
158
- :ca_sk,
159
- :ca_bc,
160
- :ca_pe,
161
- :ca_nl,
162
- :ca_nt,
163
- :ca_nu,
164
- :ca_nb,
165
- :ca_yt
166
- ].each do |province|
167
- # Remembrance Day observed
168
- [Date.civil(2010, 11, 11), Date.civil(2012, 11, 12), Date.civil(2017, 11, 13)].each do |date|
169
- assert_equal 'Remembrance Day', Holidays.on(date, province, :observed)[0][:name]
170
- end
42
+ assert_equal "Family Day", (Holidays.on(Date.civil(2014, 2, 17), [:ca_sk])[0] || {})[:name]
171
43
 
172
- # Remembrance Day
173
- assert_equal "Remembrance Day", Holidays.on(Date.civil(2016,11,11), province)[0][:name]
174
- end
44
+ assert_equal "Family Day", (Holidays.on(Date.civil(2044, 2, 15), [:ca_sk])[0] || {})[:name]
175
45
 
176
- # New years observed date
177
- [Date.civil(2011, 1, 3), Date.civil(2012, 1, 2), Date.civil(2016, 1, 1)].each do |date|
178
- assert_equal 'New Year\'s Day', Holidays.on(date, :ca, :observed)[0][:name]
179
- end
46
+ assert_nil (Holidays.on(Date.civil(1970, 2, 16), [:ca_sk])[0] || {})[:name]
180
47
 
181
- # Canada Day observed date
182
- [Date.civil(2011, 7, 1), Date.civil(2012, 7, 2), Date.civil(2017, 7, 3)].each do |date|
183
- assert_equal 'Canada Day', Holidays.on(date, :ca, :observed)[0][:name]
184
- end
48
+ assert_nil (Holidays.on(Date.civil(1988, 2, 15), [:ca_sk])[0] || {})[:name]
185
49
 
186
- # Christmas observed date
187
- [Date.civil(2010, 12, 27), Date.civil(2012, 12, 25), Date.civil(2016, 12, 26)].each do |date|
188
- assert_equal 'Christmas Day', Holidays.on(date, :ca, :observed)[0][:name]
189
- end
50
+ assert_nil (Holidays.on(Date.civil(1989, 2, 20), [:ca_sk])[0] || {})[:name]
190
51
 
191
- # Boxing Day observed date
192
- [Date.civil(2010, 12, 28), Date.civil(2012, 12, 26), Date.civil(2016, 12, 27),
193
- Date.civil(2015, 12, 28)].each do |date|
194
- assert_equal 'Boxing Day', Holidays.on(date, :ca_on, :observed)[0][:name]
195
- end
52
+ assert_nil (Holidays.on(Date.civil(2006, 2, 20), [:ca_sk])[0] || {})[:name]
196
53
 
54
+ assert_equal "Family Day", (Holidays.on(Date.civil(2008, 2, 18), [:ca_on])[0] || {})[:name]
197
55
 
198
- {Date.civil(2007,1,1) => 'Año nuevo',
199
- Date.civil(2007,2,5) => 'Día de la Constitución',
200
- Date.civil(2007,5,1) => 'Día del Trabajo',
201
- Date.civil(2007,5,5) => 'Cinco de Mayo',
202
- Date.civil(2007,9,16) => 'Día de la Independencia',
203
- Date.civil(2007,11,1) => 'Todos los Santos',
204
- Date.civil(2007,11,2) => 'Los Fieles Difuntos',
205
- Date.civil(2007,11,19) => 'Día de la Revolución',
206
- Date.civil(2007,12,25) => 'Navidad'}.each do |date, name|
207
- assert_equal name, (Holidays.on(date, :mx, :informal)[0] || {})[:name]
208
- end
56
+ assert_equal "Family Day", (Holidays.on(Date.civil(2013, 2, 18), [:ca_on])[0] || {})[:name]
209
57
 
58
+ assert_equal "Family Day", (Holidays.on(Date.civil(2014, 2, 17), [:ca_on])[0] || {})[:name]
210
59
 
211
- [Date.civil(2017, 2, 28), Date.civil(2018, 2, 13), Date.civil(2019, 3, 5)].each do |date|
212
- assert_equal [], Holidays.on(date, [:us])
213
- assert_equal 'Shrove Tuesday', Holidays.on(date, [:us_fl])[0][:name]
214
- assert_equal 'Mardi Gras Day', Holidays.on(date, [:us_la])[0][:name]
215
- end
216
- states_good_friday = %i{us_ct us_de us_gu us_hi us_in us_ky us_la us_nj us_nc us_nd us_pr us_tn}
217
- [Date.civil(2017, 4, 14), Date.civil(2018, 3, 30), Date.civil(2019, 4, 19)].each do |date|
218
- assert_equal [], Holidays.on(date, [:us])
219
- assert_equal 'Good Friday', Holidays.on(date, :us, :informal)[0][:name]
220
- assert_equal 'Good Friday', Holidays.on(date, states_good_friday)[0][:name]
221
- end
222
- [Date.civil(2017, 4, 16), Date.civil(2018, 4, 1), Date.civil(2019, 4, 21)].each do |date|
223
- assert_equal [], Holidays.on(date, [:us])
224
- assert_equal 'Easter Sunday', Holidays.on(date, :us, :informal)[0][:name]
225
- end
60
+ assert_equal "Family Day", (Holidays.on(Date.civil(2044, 2, 15), [:ca_on])[0] || {})[:name]
226
61
 
227
- assert_equal "New Year's Day", Holidays.on(Date.civil(2017, 1, 1), [:us])[0][:name]
228
- assert_equal "New Year's Day", Holidays.on(Date.civil(2017, 1, 2), :observed, [:us])[0][:name]
62
+ assert_nil (Holidays.on(Date.civil(1970, 2, 16), [:ca_on])[0] || {})[:name]
229
63
 
230
- [Date.civil(2017, 1, 16), Date.civil(2018, 1, 15), Date.civil(2019, 1, 21)].each do |date|
231
- assert_equal 'Martin Luther King, Jr. Day', Holidays.on(date, [:us])[0][:name]
232
- end
233
- [Date.civil(2016, 1, 18), Date.civil(2017, 1, 16), Date.civil(2018, 1, 15)].each do |date|
234
- assert_equal 'Martin Luther King, Jr. Day', Holidays.on(date, [:us])[0][:name]
235
- assert_equal "Martin Luther King's and Robert E. Lee's Birthdays", Holidays.on(date, [:us_ms])[0][:name]
236
- end
237
- [Date.civil(2016, 1, 18), Date.civil(2017, 1, 16), Date.civil(2018, 1, 15)].each do |date|
238
- assert_equal 'Martin Luther King, Jr. Day', Holidays.on(date, [:us])[0][:name]
239
- assert_equal 'Idaho Human Rights Day', Holidays.on(date, [:us_id])[0][:name]
240
- end
241
- [Date.civil(2016, 1, 18), Date.civil(2017, 1, 16), Date.civil(2018, 1, 15)].each do |date|
242
- assert_equal 'Martin Luther King, Jr. Day', Holidays.on(date, [:us])[0][:name]
243
- assert_equal 'Civil Rights Day', Holidays.on(date, [:us_ar])[0][:name]
244
- end
64
+ assert_nil (Holidays.on(Date.civil(1988, 2, 15), [:ca_on])[0] || {})[:name]
245
65
 
246
- states_inauguration = %i{us_tx us_dc us_la us_md us_va}
247
- [Date.civil(2017, 1, 20), Date.civil(2021, 1, 20)].each do |date|
248
- assert_equal [], Holidays.on(date, [:us])
249
- assert_equal 'Inauguration Day', Holidays.on(date, states_inauguration)[0][:name]
250
- end
251
- assert_equal 'Inauguration Day', Holidays.on(Date.civil(2025, 1, 20), states_inauguration)[1][:name]
66
+ assert_nil (Holidays.on(Date.civil(1989, 2, 20), [:ca_on])[0] || {})[:name]
252
67
 
253
- [Date.civil(2017, 1, 13), Date.civil(2018, 1, 12), Date.civil(2019, 1, 18)].each do |date|
254
- assert_equal [], Holidays.on(date, [:us])
255
- assert_equal 'Lee-Jackson Day', Holidays.on(date, [:us_va])[0][:name]
256
- end
68
+ assert_nil (Holidays.on(Date.civil(2006, 2, 20), [:ca_on])[0] || {})[:name]
257
69
 
258
- assert_equal 'Confederate Heroes Day', Holidays.on(Date.civil(2017, 1, 19), [:us_tx])[0][:name]
70
+ assert_nil (Holidays.on(Date.civil(2007, 2, 19), [:ca_on])[0] || {})[:name]
259
71
 
260
- [Date.civil(2008, 2, 18), Date.civil(2017, 2, 20), Date.civil(2018, 2, 19)].each do |date|
261
- assert_equal "Presidents' Day", Holidays.on(date, [:us])[0][:name]
262
- end
263
- [Date.civil(2017, 3, 6), Date.civil(2018, 3, 5), Date.civil(2019, 3, 4)].each do |date|
264
- assert_equal [], Holidays.on(date, [:us])
265
- assert_equal 'Casimir Pulaski Day', Holidays.on(date, [:us_il])[0][:name]
266
- end
267
- [Date.civil(2017, 3, 7), Date.civil(2018, 3, 6), Date.civil(2019, 3, 5)].each do |date|
268
- assert_equal [], Holidays.on(date, [:us])
269
- assert_equal 'Town Meeting Day', Holidays.on(date, [:us_vt])[0][:name]
270
- end
72
+ assert_equal "Family Day", (Holidays.on(Date.civil(2013, 2, 11), [:ca_bc])[0] || {})[:name]
271
73
 
272
- assert_equal 'Texas Independence Day', Holidays.on(Date.civil(2017, 3, 2), [:us_tx])[0][:name]
74
+ assert_equal "Family Day", (Holidays.on(Date.civil(2014, 2, 10), [:ca_bc])[0] || {})[:name]
273
75
 
274
- [Date.civil(2017, 3, 27), Date.civil(2018, 3, 26), Date.civil(2022, 3, 25)].each do |date|
275
- assert_equal [], Holidays.on(date, [:us])
276
- assert_equal 'Prince Jonah Kuhio Kalanianaole Day', Holidays.on(date, [:us_hi], :observed)[0][:name]
277
- end
278
- assert_equal [], Holidays.on(Date.civil(2017, 3, 26), [:us])
279
- assert_equal 'Prince Jonah Kuhio Kalanianaole Day', Holidays.on(Date.civil(2017, 3, 26), [:us_hi])[0][:name]
76
+ assert_equal "Family Day", (Holidays.on(Date.civil(2044, 2, 8), [:ca_bc])[0] || {})[:name]
280
77
 
281
- [Date.civil(2017, 3, 27), Date.civil(2018, 3, 26), Date.civil(2019, 3, 25)].each do |date|
282
- assert_equal [], Holidays.on(date, [:us])
283
- assert_equal "Seward's Day", Holidays.on(date, [:us_ak])[0][:name]
284
- end
78
+ assert_nil (Holidays.on(Date.civil(2000, 2, 14), [:ca_bc])[0] || {})[:name]
285
79
 
286
- assert_equal 'César Chávez Day', Holidays.on(Date.civil(2017, 3, 31), [:us_ca])[0][:name]
80
+ assert_nil (Holidays.on(Date.civil(2011, 2, 14), [:ca_bc])[0] || {})[:name]
287
81
 
288
- [Date.civil(2023, 4, 17), Date.civil(2022, 4, 15), Date.civil(2028, 4, 17)].each do |date|
289
- assert_equal 'Emancipation Day', Holidays.on(date, [:us_dc, :us_ca], :observed)[0][:name]
290
- end
291
- assert_equal 'Emancipation Day', Holidays.on(Date.civil(2017, 4, 16), [:us_dc, :us_ca])[0][:name]
82
+ assert_nil (Holidays.on(Date.civil(2012, 2, 13), [:ca_bc])[0] || {})[:name]
292
83
 
293
- [Date.civil(2017, 4, 17), Date.civil(2018, 4, 16), Date.civil(2019, 4, 15)].each do |date|
294
- assert_equal [], Holidays.on(date, [:us])
295
- assert_equal "Patriots' Day", Holidays.on(date, [:us_me, :us_ma])[0][:name]
296
- end
84
+ assert_equal "Nova Scotia Heritage Day", (Holidays.on(Date.civil(2015, 2, 16), [:ca_ns])[0] || {})[:name]
297
85
 
298
- assert_equal 'San Jacinto Day', Holidays.on(Date.civil(2017, 4, 21), [:us_tx])[0][:name]
86
+ assert_equal "Nova Scotia Heritage Day", (Holidays.on(Date.civil(2016, 2, 15), [:ca_ns])[0] || {})[:name]
299
87
 
300
- [Date.civil(2017, 4, 24), Date.civil(2018, 4, 30), Date.civil(2019, 4, 29)].each do |date|
301
- assert_equal [], Holidays.on(date, [:us])
302
- assert_equal 'Confederate Memorial Day', Holidays.on(date, [:us_al, :us_ms])[0][:name]
303
- end
304
- [Date.civil(2015, 4, 27), Date.civil(2020, 4, 27), Date.civil(2026, 4, 27)].each do |date|
305
- assert_equal [], Holidays.on(Date.civil(2020, 4, 27), [:us])
306
- assert_equal 'Confederate Memorial Day', Holidays.on(Date.civil(2020, 4, 27), [:us_fl], :observed)[0][:name]
307
- end
308
- assert_equal [], Holidays.on(Date.civil(2017, 4, 26), [:us])
309
- assert_equal 'Confederate Memorial Day', Holidays.on(Date.civil(2017, 4, 26), [:us_fl])[0][:name]
88
+ assert_equal "Nova Scotia Heritage Day", (Holidays.on(Date.civil(2017, 2, 20), [:ca_ns])[0] || {})[:name]
310
89
 
311
- [Date.civil(2015, 4, 20), Date.civil(2021, 4, 26)].each do |date|
312
- assert_equal [], Holidays.on(Date.civil(2015, 4, 20), [:us])
313
- assert_equal 'State Holiday', Holidays.on(date, [:us_ga])[0][:name]
314
- end
90
+ assert_equal "Nova Scotia Heritage Day", (Holidays.on(Date.civil(2044, 2, 15), [:ca_ns])[0] || {})[:name]
315
91
 
316
- assert_equal 'Arbor Day', Holidays.on(Date.civil(2017, 4, 28), [:us_ne])[0][:name]
317
- assert_equal 'Truman Day', Holidays.on(Date.civil(2017, 5, 8), [:us_mo])[0][:name]
318
- assert_equal 'Confederate Memorial Day', Holidays.on(Date.civil(2017, 5, 10), [:us_sc])[0][:name]
92
+ assert_nil (Holidays.on(Date.civil(2000, 2, 21), [:ca_ns])[0] || {})[:name]
319
93
 
320
- [Date.civil(2017, 5, 29), Date.civil(2018, 5, 28), Date.civil(2019, 5, 27)].each do |date|
321
- assert_equal 'Memorial Day', Holidays.on(date, [:us])[0][:name]
322
- end
94
+ assert_nil (Holidays.on(Date.civil(2012, 2, 20), [:ca_ns])[0] || {})[:name]
323
95
 
324
- [Date.civil(2017, 6, 5), Date.civil(2018, 6, 4), Date.civil(2019, 6, 3)].each do |date|
325
- assert_equal [], Holidays.on(date, [:us])
326
- assert_equal "Jefferson Davis' Birthday", Holidays.on(date, [:us_al])[0][:name]
327
- end
328
- assert_equal 'Birthday of Jefferson Davis', Holidays.on(Date.civil(2017, 6, 3), [:us_fl])[0][:name]
96
+ assert_nil (Holidays.on(Date.civil(2013, 2, 18), [:ca_ns])[0] || {})[:name]
329
97
 
330
- [Date.civil(2017, 6, 12), Date.civil(2018, 6, 11), Date.civil(2022, 6, 10)].each do |date|
331
- assert_equal [], Holidays.on(date, [:us])
332
- assert_equal 'King Kamehameha I Day', Holidays.on(date, [:us_hi], :observed)[0][:name]
333
- end
334
- assert_equal [], Holidays.on(Date.civil(2017, 6, 11), [:us])
335
- assert_equal 'King Kamehameha I Day', Holidays.on(Date.civil(2017, 6, 11), [:us_hi])[0][:name]
98
+ assert_nil (Holidays.on(Date.civil(2014, 2, 17), [:ca_ns])[0] || {})[:name]
336
99
 
337
- assert_equal 'Emancipation Day in Texas', Holidays.on(Date.civil(2017, 6, 19), [:us_tx])[0][:name]
100
+ assert_equal "Islander Day", (Holidays.on(Date.civil(2013, 2, 18), [:ca_pe])[0] || {})[:name]
338
101
 
339
- [Date.civil(2017, 6, 20), Date.civil(2020, 6, 19), Date.civil(2021, 6, 21)].each do |date|
340
- assert_equal [], Holidays.on(date, [:us])
341
- assert_equal 'West Virginia Day', Holidays.on(date, [:us_wv], :observed)[0][:name]
342
- end
343
- assert_equal [], Holidays.on(Date.civil(2017, 6, 20), [:us])
344
- assert_equal 'West Virginia Day', Holidays.on(Date.civil(2017, 6, 20), [:us_wv])[0][:name]
102
+ assert_equal "Islander Day", (Holidays.on(Date.civil(2014, 2, 17), [:ca_pe])[0] || {})[:name]
345
103
 
346
- assert_equal 'Emancipation Day', Holidays.on(Date.civil(2017, 7, 3), [:us_vi])[0][:name]
104
+ assert_equal "Victoria Day", (Holidays.on(Date.civil(2004, 5, 24), [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_sk, :ca_yt])[0] || {})[:name]
105
+ assert_equal "Victoria Day", (Holidays.on(Date.civil(2005, 5, 23), [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_sk, :ca_yt])[0] || {})[:name]
106
+ assert_equal "Victoria Day", (Holidays.on(Date.civil(2006, 5, 22), [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_sk, :ca_yt])[0] || {})[:name]
107
+ assert_equal "Victoria Day", (Holidays.on(Date.civil(2007, 5, 21), [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_sk, :ca_yt])[0] || {})[:name]
108
+ assert_equal "Victoria Day", (Holidays.on(Date.civil(2008, 5, 19), [:ca_ab, :ca_bc, :ca_mb, :ca_nt, :ca_nu, :ca_on, :ca_sk, :ca_yt])[0] || {})[:name]
347
109
 
348
- [Date.civil(2020, 7, 4), Date.civil(2021, 7, 4), Date.civil(2026, 7, 4)].each do |date|
349
- assert_equal 'Independence Day', Holidays.on(date, [:us])[0][:name]
350
- assert_equal 'Independence Day', Holidays.on(date, [:us_va])[0][:name]
351
- end
352
- [Date.civil(2020, 7, 3), Date.civil(2021, 7, 5), Date.civil(2026, 7, 3)].each do |date|
353
- assert_equal [], Holidays.on(date, [:us])
354
- assert_equal 'Independence Day (Holiday)', Holidays.on(date, [:us_va])[0][:name]
355
- end
110
+ assert_equal "B.C. Day", (Holidays.on(Date.civil(2013, 8, 5), [:ca_bc])[0] || {})[:name]
356
111
 
357
- assert_equal 'Pioneer Day', Holidays.on(Date.civil(2017, 7, 24), [:us_ut])[0][:name]
112
+ assert_equal "Saskatchewan Day", (Holidays.on(Date.civil(2013, 8, 5), [:ca_sk])[0] || {})[:name]
358
113
 
359
- [Date.civil(2017, 8, 14), Date.civil(2020, 8, 10), Date.civil(2021, 8, 9)].each do |date|
360
- assert_equal [], Holidays.on(date, [:us])
361
- assert_equal 'Victory Day', Holidays.on(date, [:us_ri])[0][:name]
362
- end
114
+ assert_equal "Heritage Day", (Holidays.on(Date.civil(2013, 8, 5), [:ca_ab])[0] || {})[:name]
363
115
 
364
- [Date.civil(2017, 8, 16), Date.civil(2020, 8, 17), Date.civil(2025, 8, 15)].each do |date|
365
- assert_equal [], Holidays.on(date, [:us])
366
- assert_equal 'Bennington Battle Day', Holidays.on(date, [:us_vt], :observed)[0][:name]
367
- end
368
- assert_equal [], Holidays.on(Date.civil(2017, 8, 16), [:us])
369
- assert_equal 'Bennington Battle Day', Holidays.on(Date.civil(2017, 8, 16), [:us_vt])[0][:name]
116
+ assert_equal "Natal Day", (Holidays.on(Date.civil(2013, 8, 5), [:ca_ns])[0] || {})[:name]
370
117
 
371
- [Date.civil(2017, 8, 18), Date.civil(2020, 8, 21), Date.civil(2025, 8, 15)].each do |date|
372
- assert_equal [], Holidays.on(date, [:us])
373
- assert_equal 'Statehood Day', Holidays.on(date, [:us_hi])[0][:name]
374
- end
118
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2013, 8, 5), [:ca_on], [:informal])[0] || {})[:name]
119
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2014, 8, 4), [:ca_on], [:informal])[0] || {})[:name]
120
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2015, 8, 3), [:ca_on], [:informal])[0] || {})[:name]
375
121
 
376
- assert_equal 'Lyndon Baines Johnson Day', Holidays.on(Date.civil(2017, 8, 27), [:us_tx])[0][:name]
122
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2013, 8, 5), [:ca_nt])[0] || {})[:name]
377
123
 
378
- [Date.civil(2017, 9, 4), Date.civil(2018, 9, 3), Date.civil(2019, 9, 2)].each do |date|
379
- assert_equal 'Labor Day', Holidays.on(date, [:us])[0][:name]
380
- end
381
- [Date.civil(2017, 9, 21), Date.civil(2018, 9, 10), Date.civil(2019, 9, 30)].each do |date|
382
- assert_equal [], Holidays.on(date, [:us])
383
- assert_equal 'Rosh Hashanah', Holidays.on(date, [:us_tx])[0][:name]
384
- end
385
- [Date.civil(2017, 9, 30), Date.civil(2018, 9, 19), Date.civil(2019, 10, 9)].each do |date|
386
- assert_equal [], Holidays.on(date, [:us])
387
- assert_equal 'Yom Kippur', Holidays.on(date, [:us_tx])[0][:name]
388
- end
124
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2013, 8, 5), [:ca_nu])[0] || {})[:name]
389
125
 
390
- states_columbus_day_formal =
391
- %i{us_al us_az us_co us_ct us_dc us_ga us_id us_il us_in us_ma us_md us_me us_mo us_mt us_ne
392
- us_nj us_nm us_ny us_oh us_pa us_ri us_ut us_va us_wv}
393
- states_columbus_day_informal =
394
- %i{us_ak us_ar us_ca us_de us_fl us_hi us_mi us_mn us_nd us_nv us_or us_sd us_tx us_vt us_wa us_wi us_wy}
395
-
396
- [Date.civil(2017, 10, 9), Date.civil(2018, 10, 8), Date.civil(2019, 10, 14)].each do |date|
397
- assert_equal [], Holidays.on(date, [:us])
398
- assert_equal [], Holidays.on(date, states_columbus_day_informal)
399
- assert_equal 'Columbus Day', Holidays.on(date, states_columbus_day_formal)[0][:name]
400
- assert_equal 'Columbus Day', Holidays.on(date, states_columbus_day_informal, :informal)[0][:name]
401
- end
126
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2013, 8, 5), [:ca_pe])[0] || {})[:name]
402
127
 
403
- assert_equal 'Alaska Day', Holidays.on(Date.civil(2017, 10, 18), [:us_ak])[0][:name]
128
+ assert_equal "New Brunswick Day", (Holidays.on(Date.civil(2013, 8, 5), [:ca_nb])[0] || {})[:name]
404
129
 
405
- [Date.civil(2017, 10, 27), Date.civil(2018, 10, 26), Date.civil(2019, 10, 25)].each do |date|
406
- assert_equal [], Holidays.on(date, [:us])
407
- assert_equal 'Nevada Day', Holidays.on(date, :us_nv)[0][:name]
408
- end
130
+ assert_equal "B.C. Day", (Holidays.on(Date.civil(2014, 8, 4), [:ca_bc])[0] || {})[:name]
409
131
 
410
- states_election_day = %i{us_de us_hi us_il us_in us_mt us_nj us_ny us_pa us_ri}
411
- [Date.civil(2017, 11, 7), Date.civil(2018, 11, 6), Date.civil(2021, 11, 2)].each do |date|
412
- assert_equal [], Holidays.on(date, [:us])
413
- assert_equal 'Election Day', Holidays.on(date, states_election_day)[0][:name]
414
- end
132
+ assert_equal "Saskatchewan Day", (Holidays.on(Date.civil(2014, 8, 4), [:ca_sk])[0] || {})[:name]
415
133
 
416
- [Date.civil(2017, 11, 10), Date.civil(2018, 11, 12), Date.civil(2019, 11, 11)].each do |date|
417
- assert_equal 'Veterans Day', Holidays.on(date, [:us], :observed)[0][:name]
418
- end
419
- assert_equal 'Veterans Day', Holidays.on(Date.civil(2017, 11, 11), [:us])[0][:name]
134
+ assert_equal "Heritage Day", (Holidays.on(Date.civil(2014, 8, 4), [:ca_ab])[0] || {})[:name]
420
135
 
421
- [Date.civil(2017, 11, 23), Date.civil(2018, 11, 22), Date.civil(2019, 11, 28)].each do |date|
422
- assert_equal 'Thanksgiving', Holidays.on(date, [:us])[0][:name]
423
- end
136
+ assert_equal "Natal Day", (Holidays.on(Date.civil(2014, 8, 4), [:ca_ns])[0] || {})[:name]
424
137
 
425
- states_black_friday =
426
- %i{us_ca us_de us_fl us_ia us_il us_ks us_ky us_me us_mi us_mn us_ms us_ne us_nh us_nc us_pa
427
- us_sc us_ok us_tn us_tx us_va us_wa us_wv}
428
-
429
- [Date.civil(2017, 11, 24), Date.civil(2018, 11, 23), Date.civil(2019, 11, 29)].each do |date|
430
- assert_equal [], Holidays.on(date, [:us])
431
- assert_equal 'Family Day', Holidays.on(date, [:us_nv])[0][:name]
432
- assert_equal 'State Holiday', Holidays.on(date, [:us_ga])[0][:name]
433
- assert_equal "Presidents' Day", Holidays.on(date, [:us_nm])[0][:name]
434
- assert_equal "Lincoln's Birthday", Holidays.on(date, [:us_in])[0][:name]
435
- assert_equal 'American Indian Heritage Day', Holidays.on(date, [:us_md])[0][:name]
436
- assert_equal 'Day after Thanksgiving (Black Friday)', Holidays.on(date, states_black_friday)[0][:name]
437
- end
138
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2014, 8, 4), [:ca_nt])[0] || {})[:name]
438
139
 
439
- states_xmas_eve = %i{us_ar us_mi us_nc us_sc us_tx us_wi}
440
- states_xmas_eve_holiday = %i{us_mi us_sc us_va}
441
- [Date.civil(2022, 12, 23), Date.civil(2023, 12, 22), Date.civil(2028, 12, 22)].each do |date|
442
- assert_equal 'Christmas Eve (Holiday)', Holidays.on(date, states_xmas_eve_holiday)[0][:name]
443
- end
444
- assert_equal 'Christmas Eve', Holidays.on(Date.civil(2017, 12, 24), states_xmas_eve)[0][:name]
445
- assert_equal 'Christmas Eve', Holidays.on(Date.civil(2017, 12, 24), states_xmas_eve_holiday)[0][:name]
140
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2014, 8, 4), [:ca_nu])[0] || {})[:name]
446
141
 
447
- [Date.civil(2021, 12, 27), Date.civil(2022, 12, 26), Date.civil(2027, 12, 27)].each do |date|
448
- assert_equal [], Holidays.on(date, [:us])
449
- assert_equal 'Christmas Day', Holidays.on(date, [:us], :observed)[0][:name]
450
- end
451
- assert_equal 'Christmas Day', Holidays.on(Date.civil(2017, 12, 25), [:us])[0][:name]
142
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2014, 8, 4), [:ca_pe])[0] || {})[:name]
452
143
 
453
- states_day_after_christmas = %i{us_ar us_nc us_ok us_sc us_tn us_tx}
454
- assert_equal 'Day after Christmas', Holidays.on(Date.civil(2017, 12, 26), states_day_after_christmas)[0][:name]
144
+ assert_equal "New Brunswick Day", (Holidays.on(Date.civil(2014, 8, 4), [:ca_nb])[0] || {})[:name]
455
145
 
456
- assert_equal "New Year's Eve", Holidays.on(Date.civil(2017, 12, 31), [:us_mi, :us_wi])[0][:name]
146
+ assert_equal "B.C. Day", (Holidays.on(Date.civil(2015, 8, 3), [:ca_bc])[0] || {})[:name]
457
147
 
148
+ assert_equal "Saskatchewan Day", (Holidays.on(Date.civil(2015, 8, 3), [:ca_sk])[0] || {})[:name]
458
149
 
459
- {Date.civil(2013,2,2) => 'Groundhog Day',
460
- Date.civil(2013,2,14) => 'Valentine\'s Day',
461
- Date.civil(2013,3,17) => 'St. Patrick\'s Day',
462
- Date.civil(2013,4,1) => 'April Fool\'s Day',
463
- Date.civil(2013,4,22) => 'Earth Day',
464
- Date.civil(2013,5,12) => 'Mother\'s Day',
465
- Date.civil(2013,5,18) => 'Armed Forces Day',
466
- Date.civil(2013,6,16) => 'Father\'s Day',
467
- Date.civil(2013,10,31) => 'Halloween'}.each do |date, name|
468
- assert_equal name, (Holidays.on(date, :us, :informal)[0] || {})[:name]
469
- end
150
+ assert_equal "Heritage Day", (Holidays.on(Date.civil(2015, 8, 3), [:ca_ab])[0] || {})[:name]
151
+
152
+ assert_equal "Natal Day", (Holidays.on(Date.civil(2015, 8, 3), [:ca_ns])[0] || {})[:name]
153
+
154
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2015, 8, 3), [:ca_nt])[0] || {})[:name]
155
+
156
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2015, 8, 3), [:ca_nu])[0] || {})[:name]
157
+
158
+ assert_equal "Civic Holiday", (Holidays.on(Date.civil(2015, 8, 3), [:ca_pe])[0] || {})[:name]
159
+
160
+ assert_equal "New Brunswick Day", (Holidays.on(Date.civil(2015, 8, 3), [:ca_nb])[0] || {})[:name]
161
+
162
+ assert_equal "Remembrance Day", (Holidays.on(Date.civil(2010, 11, 11), [:ca_ab, :ca_sk, :ca_bc, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_nb, :ca_yt], [:observed])[0] || {})[:name]
163
+ assert_equal "Remembrance Day", (Holidays.on(Date.civil(2012, 11, 12), [:ca_ab, :ca_sk, :ca_bc, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_nb, :ca_yt], [:observed])[0] || {})[:name]
164
+ assert_equal "Remembrance Day", (Holidays.on(Date.civil(2017, 11, 13), [:ca_ab, :ca_sk, :ca_bc, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_nb, :ca_yt], [:observed])[0] || {})[:name]
165
+
166
+ assert_equal "Remembrance Day", (Holidays.on(Date.civil(2016, 11, 11), [:ca_ab, :ca_sk, :ca_bc, :ca_pe, :ca_nl, :ca_nt, :ca_nu, :ca_nb, :ca_yt])[0] || {})[:name]
167
+
168
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2011, 1, 3), [:ca], [:observed])[0] || {})[:name]
169
+
170
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2012, 1, 2), [:ca], [:observed])[0] || {})[:name]
171
+
172
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2016, 1, 1), [:ca], [:observed])[0] || {})[:name]
173
+
174
+ assert_equal "Canada Day", (Holidays.on(Date.civil(2011, 7, 1), [:ca], [:observed])[0] || {})[:name]
175
+
176
+ assert_equal "Canada Day", (Holidays.on(Date.civil(2012, 7, 2), [:ca], [:observed])[0] || {})[:name]
177
+
178
+ assert_equal "Canada Day", (Holidays.on(Date.civil(2017, 7, 3), [:ca], [:observed])[0] || {})[:name]
179
+
180
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2010, 12, 27), [:ca], [:observed])[0] || {})[:name]
181
+
182
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2012, 12, 25), [:ca], [:observed])[0] || {})[:name]
183
+
184
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2016, 12, 26), [:ca], [:observed])[0] || {})[:name]
185
+
186
+ assert_equal "Boxing Day", (Holidays.on(Date.civil(2010, 12, 28), [:ca_on], [:observed])[0] || {})[:name]
187
+ assert_equal "Boxing Day", (Holidays.on(Date.civil(2012, 12, 26), [:ca_on], [:observed])[0] || {})[:name]
188
+ assert_equal "Boxing Day", (Holidays.on(Date.civil(2015, 12, 28), [:ca_on], [:observed])[0] || {})[:name]
189
+ assert_equal "Boxing Day", (Holidays.on(Date.civil(2016, 12, 27), [:ca_on], [:observed])[0] || {})[:name]
190
+
191
+ assert_equal "Año nuevo", (Holidays.on(Date.civil(2007, 1, 1), [:mx], [:informal])[0] || {})[:name]
192
+
193
+ assert_equal "Día de la Constitución", (Holidays.on(Date.civil(2007, 2, 5), [:mx], [:informal])[0] || {})[:name]
194
+
195
+ assert_equal "Día del Trabajo", (Holidays.on(Date.civil(2007, 5, 1), [:mx], [:informal])[0] || {})[:name]
196
+
197
+ assert_equal "Cinco de Mayo", (Holidays.on(Date.civil(2007, 5, 5), [:mx], [:informal])[0] || {})[:name]
198
+
199
+ assert_equal "Día de la Independencia", (Holidays.on(Date.civil(2007, 9, 16), [:mx], [:informal])[0] || {})[:name]
200
+
201
+ assert_equal "Todos los Santos", (Holidays.on(Date.civil(2007, 11, 1), [:mx], [:informal])[0] || {})[:name]
202
+
203
+ assert_equal "Los Fieles Difuntos", (Holidays.on(Date.civil(2007, 11, 2), [:mx], [:informal])[0] || {})[:name]
204
+
205
+ assert_equal "Día de la Revolución", (Holidays.on(Date.civil(2007, 11, 19), [:mx], [:informal])[0] || {})[:name]
206
+
207
+ assert_equal "Navidad", (Holidays.on(Date.civil(2007, 12, 25), [:mx], [:informal])[0] || {})[:name]
208
+
209
+ assert_equal "Shrove Tuesday", (Holidays.on(Date.civil(2017, 2, 28), [:us_fl])[0] || {})[:name]
210
+ assert_equal "Shrove Tuesday", (Holidays.on(Date.civil(2018, 2, 13), [:us_fl])[0] || {})[:name]
211
+ assert_equal "Shrove Tuesday", (Holidays.on(Date.civil(2019, 3, 5), [:us_fl])[0] || {})[:name]
212
+
213
+ assert_equal "Mardi Gras Day", (Holidays.on(Date.civil(2017, 2, 28), [:us_la])[0] || {})[:name]
214
+ assert_equal "Mardi Gras Day", (Holidays.on(Date.civil(2018, 2, 13), [:us_la])[0] || {})[:name]
215
+ assert_equal "Mardi Gras Day", (Holidays.on(Date.civil(2019, 3, 5), [:us_la])[0] || {})[:name]
216
+
217
+ assert_nil (Holidays.on(Date.civil(2017, 2, 28), [:us])[0] || {})[:name]
218
+ assert_nil (Holidays.on(Date.civil(2018, 2, 13), [:us])[0] || {})[:name]
219
+ assert_nil (Holidays.on(Date.civil(2019, 3, 5), [:us])[0] || {})[:name]
220
+
221
+ assert_equal "Good Friday", (Holidays.on(Date.civil(2017, 4, 14), [:us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_la, :us_nj, :us_nc, :us_nd, :us_pr, :us_tn])[0] || {})[:name]
222
+ assert_equal "Good Friday", (Holidays.on(Date.civil(2018, 3, 30), [:us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_la, :us_nj, :us_nc, :us_nd, :us_pr, :us_tn])[0] || {})[:name]
223
+ assert_equal "Good Friday", (Holidays.on(Date.civil(2019, 4, 19), [:us_ct, :us_de, :us_gu, :us_hi, :us_in, :us_ky, :us_la, :us_nj, :us_nc, :us_nd, :us_pr, :us_tn])[0] || {})[:name]
224
+
225
+ assert_equal "Good Friday", (Holidays.on(Date.civil(2017, 4, 14), [:us], [:informal])[0] || {})[:name]
226
+ assert_equal "Good Friday", (Holidays.on(Date.civil(2018, 3, 30), [:us], [:informal])[0] || {})[:name]
227
+ assert_equal "Good Friday", (Holidays.on(Date.civil(2019, 4, 19), [:us], [:informal])[0] || {})[:name]
228
+
229
+ assert_nil (Holidays.on(Date.civil(2017, 2, 28), [:us])[0] || {})[:name]
230
+ assert_nil (Holidays.on(Date.civil(2018, 2, 13), [:us])[0] || {})[:name]
231
+ assert_nil (Holidays.on(Date.civil(2019, 3, 5), [:us])[0] || {})[:name]
232
+
233
+ assert_nil (Holidays.on(Date.civil(2017, 4, 16), [:us])[0] || {})[:name]
234
+ assert_nil (Holidays.on(Date.civil(2018, 4, 1), [:us])[0] || {})[:name]
235
+ assert_nil (Holidays.on(Date.civil(2019, 4, 21), [:us])[0] || {})[:name]
236
+
237
+ assert_equal "Easter Sunday", (Holidays.on(Date.civil(2017, 4, 16), [:us], [:informal])[0] || {})[:name]
238
+ assert_equal "Easter Sunday", (Holidays.on(Date.civil(2018, 4, 1), [:us], [:informal])[0] || {})[:name]
239
+ assert_equal "Easter Sunday", (Holidays.on(Date.civil(2019, 4, 21), [:us], [:informal])[0] || {})[:name]
240
+
241
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2017, 1, 1), [:us])[0] || {})[:name]
242
+
243
+ assert_equal "New Year's Day", (Holidays.on(Date.civil(2017, 1, 2), [:us], [:observed])[0] || {})[:name]
244
+
245
+ assert_equal "Martin Luther King, Jr. Day", (Holidays.on(Date.civil(2017, 1, 16), [:us])[0] || {})[:name]
246
+ assert_equal "Martin Luther King, Jr. Day", (Holidays.on(Date.civil(2018, 1, 15), [:us])[0] || {})[:name]
247
+ assert_equal "Martin Luther King, Jr. Day", (Holidays.on(Date.civil(2019, 1, 21), [:us])[0] || {})[:name]
248
+
249
+ assert_equal "Martin Luther King, Jr. Day", (Holidays.on(Date.civil(2016, 1, 18), [:us])[0] || {})[:name]
250
+ assert_equal "Martin Luther King, Jr. Day", (Holidays.on(Date.civil(2017, 1, 16), [:us])[0] || {})[:name]
251
+ assert_equal "Martin Luther King, Jr. Day", (Holidays.on(Date.civil(2018, 1, 15), [:us])[0] || {})[:name]
252
+
253
+ assert_equal "Martin Luther King's and Robert E. Lee's Birthdays", (Holidays.on(Date.civil(2016, 1, 18), [:us_ms])[0] || {})[:name]
254
+ assert_equal "Martin Luther King's and Robert E. Lee's Birthdays", (Holidays.on(Date.civil(2017, 1, 16), [:us_ms])[0] || {})[:name]
255
+ assert_equal "Martin Luther King's and Robert E. Lee's Birthdays", (Holidays.on(Date.civil(2018, 1, 15), [:us_ms])[0] || {})[:name]
256
+
257
+ assert_equal "Idaho Human Rights Day", (Holidays.on(Date.civil(2016, 1, 18), [:us_id])[0] || {})[:name]
258
+ assert_equal "Idaho Human Rights Day", (Holidays.on(Date.civil(2017, 1, 16), [:us_id])[0] || {})[:name]
259
+ assert_equal "Idaho Human Rights Day", (Holidays.on(Date.civil(2018, 1, 15), [:us_id])[0] || {})[:name]
260
+
261
+ assert_equal "Civil Rights Day", (Holidays.on(Date.civil(2016, 1, 18), [:us_ar])[0] || {})[:name]
262
+ assert_equal "Civil Rights Day", (Holidays.on(Date.civil(2017, 1, 16), [:us_ar])[0] || {})[:name]
263
+ assert_equal "Civil Rights Day", (Holidays.on(Date.civil(2018, 1, 15), [:us_ar])[0] || {})[:name]
264
+
265
+ assert_nil (Holidays.on(Date.civil(2017, 1, 20), [:us])[0] || {})[:name]
266
+ assert_nil (Holidays.on(Date.civil(2021, 1, 20), [:us])[0] || {})[:name]
267
+
268
+ assert_equal "Inauguration Day", (Holidays.on(Date.civil(2017, 1, 20), [:us_tx, :us_dc, :us_la, :us_md, :us_va])[0] || {})[:name]
269
+ assert_equal "Inauguration Day", (Holidays.on(Date.civil(2021, 1, 20), [:us_tx, :us_dc, :us_la, :us_md, :us_va])[0] || {})[:name]
270
+
271
+ assert_nil (Holidays.on(Date.civil(2017, 1, 13), [:us])[0] || {})[:name]
272
+ assert_nil (Holidays.on(Date.civil(2018, 1, 12), [:us])[0] || {})[:name]
273
+ assert_nil (Holidays.on(Date.civil(2019, 1, 18), [:us])[0] || {})[:name]
274
+
275
+ assert_equal "Lee-Jackson Day", (Holidays.on(Date.civil(2017, 1, 13), [:us_va])[0] || {})[:name]
276
+ assert_equal "Lee-Jackson Day", (Holidays.on(Date.civil(2018, 1, 12), [:us_va])[0] || {})[:name]
277
+ assert_equal "Lee-Jackson Day", (Holidays.on(Date.civil(2019, 1, 18), [:us_va])[0] || {})[:name]
278
+
279
+ assert_equal "Confederate Heroes Day", (Holidays.on(Date.civil(2017, 1, 19), [:us_tx])[0] || {})[:name]
280
+
281
+ assert_equal "Presidents' Day", (Holidays.on(Date.civil(2008, 2, 18), [:us])[0] || {})[:name]
282
+ assert_equal "Presidents' Day", (Holidays.on(Date.civil(2017, 2, 20), [:us])[0] || {})[:name]
283
+ assert_equal "Presidents' Day", (Holidays.on(Date.civil(2018, 2, 19), [:us])[0] || {})[:name]
284
+
285
+ assert_nil (Holidays.on(Date.civil(2017, 3, 6), [:us])[0] || {})[:name]
286
+ assert_nil (Holidays.on(Date.civil(2018, 3, 5), [:us])[0] || {})[:name]
287
+ assert_nil (Holidays.on(Date.civil(2019, 3, 4), [:us])[0] || {})[:name]
288
+
289
+ assert_equal "Casimir Pulaski Day", (Holidays.on(Date.civil(2017, 3, 6), [:us_il])[0] || {})[:name]
290
+ assert_equal "Casimir Pulaski Day", (Holidays.on(Date.civil(2018, 3, 5), [:us_il])[0] || {})[:name]
291
+ assert_equal "Casimir Pulaski Day", (Holidays.on(Date.civil(2019, 3, 4), [:us_il])[0] || {})[:name]
292
+
293
+ assert_nil (Holidays.on(Date.civil(2017, 3, 7), [:us])[0] || {})[:name]
294
+ assert_nil (Holidays.on(Date.civil(2018, 3, 6), [:us])[0] || {})[:name]
295
+ assert_nil (Holidays.on(Date.civil(2019, 3, 5), [:us])[0] || {})[:name]
296
+
297
+ assert_equal "Town Meeting Day", (Holidays.on(Date.civil(2017, 3, 7), [:us_vt])[0] || {})[:name]
298
+ assert_equal "Town Meeting Day", (Holidays.on(Date.civil(2018, 3, 6), [:us_vt])[0] || {})[:name]
299
+ assert_equal "Town Meeting Day", (Holidays.on(Date.civil(2019, 3, 5), [:us_vt])[0] || {})[:name]
300
+
301
+ assert_equal "Texas Independence Day", (Holidays.on(Date.civil(2017, 3, 2), [:us_tx])[0] || {})[:name]
302
+
303
+ assert_nil (Holidays.on(Date.civil(2017, 3, 27), [:us], [:observed])[0] || {})[:name]
304
+ assert_nil (Holidays.on(Date.civil(2018, 3, 26), [:us], [:observed])[0] || {})[:name]
305
+ assert_nil (Holidays.on(Date.civil(2022, 3, 25), [:us], [:observed])[0] || {})[:name]
306
+
307
+ assert_equal "Prince Jonah Kuhio Kalanianaole Day", (Holidays.on(Date.civil(2017, 3, 27), [:us_hi], [:observed])[0] || {})[:name]
308
+ assert_equal "Prince Jonah Kuhio Kalanianaole Day", (Holidays.on(Date.civil(2018, 3, 26), [:us_hi], [:observed])[0] || {})[:name]
309
+ assert_equal "Prince Jonah Kuhio Kalanianaole Day", (Holidays.on(Date.civil(2022, 3, 25), [:us_hi], [:observed])[0] || {})[:name]
310
+
311
+ assert_nil (Holidays.on(Date.civil(2017, 3, 26), [:us])[0] || {})[:name]
312
+
313
+ assert_equal "Prince Jonah Kuhio Kalanianaole Day", (Holidays.on(Date.civil(2017, 3, 26), [:us_hi])[0] || {})[:name]
314
+
315
+ assert_nil (Holidays.on(Date.civil(2017, 3, 27), [:us])[0] || {})[:name]
316
+ assert_nil (Holidays.on(Date.civil(2018, 3, 26), [:us])[0] || {})[:name]
317
+ assert_nil (Holidays.on(Date.civil(2019, 3, 25), [:us])[0] || {})[:name]
318
+
319
+ assert_equal "Seward's Day", (Holidays.on(Date.civil(2017, 3, 27), [:us_ak])[0] || {})[:name]
320
+ assert_equal "Seward's Day", (Holidays.on(Date.civil(2018, 3, 26), [:us_ak])[0] || {})[:name]
321
+ assert_equal "Seward's Day", (Holidays.on(Date.civil(2019, 3, 25), [:us_ak])[0] || {})[:name]
322
+
323
+ assert_equal "César Chávez Day", (Holidays.on(Date.civil(2017, 3, 31), [:us_ca])[0] || {})[:name]
324
+
325
+ assert_equal "Emancipation Day", (Holidays.on(Date.civil(2023, 4, 17), [:us_dc, :us_ca], [:observed])[0] || {})[:name]
326
+ assert_equal "Emancipation Day", (Holidays.on(Date.civil(2022, 4, 15), [:us_dc, :us_ca], [:observed])[0] || {})[:name]
327
+ assert_equal "Emancipation Day", (Holidays.on(Date.civil(2028, 4, 17), [:us_dc, :us_ca], [:observed])[0] || {})[:name]
328
+
329
+ assert_equal "Emancipation Day", (Holidays.on(Date.civil(2017, 4, 16), [:us_dc, :us_ca])[0] || {})[:name]
330
+
331
+ assert_nil (Holidays.on(Date.civil(2017, 4, 17), [:us])[0] || {})[:name]
332
+ assert_nil (Holidays.on(Date.civil(2018, 4, 16), [:us])[0] || {})[:name]
333
+ assert_nil (Holidays.on(Date.civil(2019, 4, 15), [:us])[0] || {})[:name]
334
+
335
+ assert_equal "Patriots' Day", (Holidays.on(Date.civil(2017, 4, 17), [:us_me, :us_ma])[0] || {})[:name]
336
+ assert_equal "Patriots' Day", (Holidays.on(Date.civil(2018, 4, 16), [:us_me, :us_ma])[0] || {})[:name]
337
+ assert_equal "Patriots' Day", (Holidays.on(Date.civil(2019, 4, 15), [:us_me, :us_ma])[0] || {})[:name]
338
+
339
+ assert_equal "San Jacinto Day", (Holidays.on(Date.civil(2017, 4, 21), [:us_tx])[0] || {})[:name]
340
+
341
+ assert_nil (Holidays.on(Date.civil(2017, 4, 24), [:us])[0] || {})[:name]
342
+ assert_nil (Holidays.on(Date.civil(2018, 4, 30), [:us])[0] || {})[:name]
343
+ assert_nil (Holidays.on(Date.civil(2019, 4, 29), [:us])[0] || {})[:name]
344
+
345
+ assert_equal "Confederate Memorial Day", (Holidays.on(Date.civil(2017, 4, 24), [:us_al, :us_ms])[0] || {})[:name]
346
+ assert_equal "Confederate Memorial Day", (Holidays.on(Date.civil(2018, 4, 30), [:us_al, :us_ms])[0] || {})[:name]
347
+ assert_equal "Confederate Memorial Day", (Holidays.on(Date.civil(2019, 4, 29), [:us_al, :us_ms])[0] || {})[:name]
348
+
349
+ assert_nil (Holidays.on(Date.civil(2015, 4, 27), [:us])[0] || {})[:name]
350
+ assert_nil (Holidays.on(Date.civil(2020, 4, 27), [:us])[0] || {})[:name]
351
+ assert_nil (Holidays.on(Date.civil(2026, 4, 27), [:us])[0] || {})[:name]
352
+
353
+ assert_equal "Confederate Memorial Day", (Holidays.on(Date.civil(2015, 4, 27), [:us_fl], [:observed])[0] || {})[:name]
354
+ assert_equal "Confederate Memorial Day", (Holidays.on(Date.civil(2020, 4, 27), [:us_fl], [:observed])[0] || {})[:name]
355
+ assert_equal "Confederate Memorial Day", (Holidays.on(Date.civil(2026, 4, 27), [:us_fl], [:observed])[0] || {})[:name]
356
+
357
+ assert_nil (Holidays.on(Date.civil(2017, 4, 26), [:us])[0] || {})[:name]
358
+
359
+ assert_equal "Confederate Memorial Day", (Holidays.on(Date.civil(2017, 4, 26), [:us_fl])[0] || {})[:name]
360
+
361
+ assert_nil (Holidays.on(Date.civil(2015, 4, 20), [:us])[0] || {})[:name]
362
+ assert_nil (Holidays.on(Date.civil(2021, 4, 26), [:us])[0] || {})[:name]
363
+
364
+ assert_equal "State Holiday", (Holidays.on(Date.civil(2015, 4, 20), [:us_ga])[0] || {})[:name]
365
+ assert_equal "State Holiday", (Holidays.on(Date.civil(2021, 4, 26), [:us_ga])[0] || {})[:name]
366
+
367
+ assert_equal "Arbor Day", (Holidays.on(Date.civil(2017, 4, 28), [:us_ne])[0] || {})[:name]
368
+
369
+ assert_equal "Truman Day", (Holidays.on(Date.civil(2017, 5, 8), [:us_mo])[0] || {})[:name]
370
+
371
+ assert_equal "Confederate Memorial Day", (Holidays.on(Date.civil(2017, 5, 10), [:us_sc])[0] || {})[:name]
372
+
373
+ assert_equal "Memorial Day", (Holidays.on(Date.civil(2017, 5, 29), [:us])[0] || {})[:name]
374
+ assert_equal "Memorial Day", (Holidays.on(Date.civil(2018, 5, 28), [:us])[0] || {})[:name]
375
+ assert_equal "Memorial Day", (Holidays.on(Date.civil(2019, 5, 27), [:us])[0] || {})[:name]
376
+
377
+ assert_nil (Holidays.on(Date.civil(2017, 6, 5), [:us])[0] || {})[:name]
378
+ assert_nil (Holidays.on(Date.civil(2018, 6, 4), [:us])[0] || {})[:name]
379
+ assert_nil (Holidays.on(Date.civil(2019, 6, 3), [:us])[0] || {})[:name]
380
+
381
+ assert_equal "Jefferson Davis' Birthday", (Holidays.on(Date.civil(2017, 6, 5), [:us_al])[0] || {})[:name]
382
+ assert_equal "Jefferson Davis' Birthday", (Holidays.on(Date.civil(2018, 6, 4), [:us_al])[0] || {})[:name]
383
+ assert_equal "Jefferson Davis' Birthday", (Holidays.on(Date.civil(2019, 6, 3), [:us_al])[0] || {})[:name]
384
+
385
+ assert_equal "Birthday of Jefferson Davis", (Holidays.on(Date.civil(2017, 6, 3), [:us_fl])[0] || {})[:name]
386
+
387
+ assert_nil (Holidays.on(Date.civil(2017, 6, 12), [:us])[0] || {})[:name]
388
+ assert_nil (Holidays.on(Date.civil(2018, 6, 11), [:us])[0] || {})[:name]
389
+ assert_nil (Holidays.on(Date.civil(2022, 6, 10), [:us])[0] || {})[:name]
390
+
391
+ assert_equal "King Kamehameha I Day", (Holidays.on(Date.civil(2017, 6, 12), [:us_hi], [:observed])[0] || {})[:name]
392
+ assert_equal "King Kamehameha I Day", (Holidays.on(Date.civil(2018, 6, 11), [:us_hi], [:observed])[0] || {})[:name]
393
+ assert_equal "King Kamehameha I Day", (Holidays.on(Date.civil(2022, 6, 10), [:us_hi], [:observed])[0] || {})[:name]
394
+
395
+ assert_nil (Holidays.on(Date.civil(2017, 6, 11), [:us])[0] || {})[:name]
396
+
397
+ assert_equal "King Kamehameha I Day", (Holidays.on(Date.civil(2017, 6, 11), [:us_hi])[0] || {})[:name]
398
+
399
+ assert_equal "Emancipation Day in Texas", (Holidays.on(Date.civil(2017, 6, 19), [:us_tx])[0] || {})[:name]
400
+
401
+ assert_nil (Holidays.on(Date.civil(2017, 6, 20), [:us])[0] || {})[:name]
402
+ assert_nil (Holidays.on(Date.civil(2020, 6, 19), [:us])[0] || {})[:name]
403
+ assert_nil (Holidays.on(Date.civil(2021, 6, 21), [:us])[0] || {})[:name]
404
+
405
+ assert_equal "West Virginia Day", (Holidays.on(Date.civil(2017, 6, 20), [:us_wv], [:observed])[0] || {})[:name]
406
+ assert_equal "West Virginia Day", (Holidays.on(Date.civil(2020, 6, 19), [:us_wv], [:observed])[0] || {})[:name]
407
+ assert_equal "West Virginia Day", (Holidays.on(Date.civil(2021, 6, 21), [:us_wv], [:observed])[0] || {})[:name]
408
+
409
+ assert_equal "West Virginia Day", (Holidays.on(Date.civil(2017, 6, 20), [:us_wv])[0] || {})[:name]
410
+
411
+ assert_equal "Emancipation Day", (Holidays.on(Date.civil(2017, 7, 3), [:us_vi])[0] || {})[:name]
412
+
413
+ assert_equal "Independence Day", (Holidays.on(Date.civil(2020, 7, 4), [:us, :us_va])[0] || {})[:name]
414
+ assert_equal "Independence Day", (Holidays.on(Date.civil(2021, 7, 4), [:us, :us_va])[0] || {})[:name]
415
+ assert_equal "Independence Day", (Holidays.on(Date.civil(2026, 7, 4), [:us, :us_va])[0] || {})[:name]
416
+
417
+ assert_nil (Holidays.on(Date.civil(2020, 7, 3), [:us])[0] || {})[:name]
418
+ assert_nil (Holidays.on(Date.civil(2021, 7, 5), [:us])[0] || {})[:name]
419
+ assert_nil (Holidays.on(Date.civil(2026, 7, 3), [:us])[0] || {})[:name]
420
+
421
+ assert_equal "Independence Day (Holiday)", (Holidays.on(Date.civil(2020, 7, 3), [:us_va])[0] || {})[:name]
422
+ assert_equal "Independence Day (Holiday)", (Holidays.on(Date.civil(2021, 7, 5), [:us_va])[0] || {})[:name]
423
+ assert_equal "Independence Day (Holiday)", (Holidays.on(Date.civil(2026, 7, 3), [:us_va])[0] || {})[:name]
424
+
425
+ assert_equal "Pioneer Day", (Holidays.on(Date.civil(2020, 7, 24), [:us_ut])[0] || {})[:name]
426
+
427
+ assert_nil (Holidays.on(Date.civil(2017, 8, 14), [:us])[0] || {})[:name]
428
+ assert_nil (Holidays.on(Date.civil(2020, 8, 10), [:us])[0] || {})[:name]
429
+ assert_nil (Holidays.on(Date.civil(2021, 8, 9), [:us])[0] || {})[:name]
430
+
431
+ assert_equal "Victory Day", (Holidays.on(Date.civil(2017, 8, 14), [:us_ri])[0] || {})[:name]
432
+ assert_equal "Victory Day", (Holidays.on(Date.civil(2020, 8, 10), [:us_ri])[0] || {})[:name]
433
+ assert_equal "Victory Day", (Holidays.on(Date.civil(2021, 8, 9), [:us_ri])[0] || {})[:name]
434
+
435
+ assert_nil (Holidays.on(Date.civil(2017, 8, 16), [:us])[0] || {})[:name]
436
+ assert_nil (Holidays.on(Date.civil(2020, 8, 17), [:us])[0] || {})[:name]
437
+ assert_nil (Holidays.on(Date.civil(2025, 8, 15), [:us])[0] || {})[:name]
438
+
439
+ assert_equal "Bennington Battle Day", (Holidays.on(Date.civil(2017, 8, 16), [:us_vt], [:observed])[0] || {})[:name]
440
+ assert_equal "Bennington Battle Day", (Holidays.on(Date.civil(2020, 8, 17), [:us_vt], [:observed])[0] || {})[:name]
441
+ assert_equal "Bennington Battle Day", (Holidays.on(Date.civil(2025, 8, 15), [:us_vt], [:observed])[0] || {})[:name]
442
+
443
+ assert_equal "Bennington Battle Day", (Holidays.on(Date.civil(2017, 8, 16), [:us_vt])[0] || {})[:name]
444
+
445
+ assert_nil (Holidays.on(Date.civil(2017, 8, 18), [:us])[0] || {})[:name]
446
+ assert_nil (Holidays.on(Date.civil(2020, 8, 21), [:us])[0] || {})[:name]
447
+ assert_nil (Holidays.on(Date.civil(2025, 8, 15), [:us])[0] || {})[:name]
448
+
449
+ assert_equal "Statehood Day", (Holidays.on(Date.civil(2017, 8, 18), [:us_hi])[0] || {})[:name]
450
+ assert_equal "Statehood Day", (Holidays.on(Date.civil(2020, 8, 21), [:us_hi])[0] || {})[:name]
451
+ assert_equal "Statehood Day", (Holidays.on(Date.civil(2025, 8, 15), [:us_hi])[0] || {})[:name]
452
+
453
+ assert_equal "Lyndon Baines Johnson Day", (Holidays.on(Date.civil(2017, 8, 27), [:us_tx])[0] || {})[:name]
454
+
455
+ assert_equal "Labor Day", (Holidays.on(Date.civil(2017, 9, 4), [:us])[0] || {})[:name]
456
+ assert_equal "Labor Day", (Holidays.on(Date.civil(2018, 9, 3), [:us])[0] || {})[:name]
457
+ assert_equal "Labor Day", (Holidays.on(Date.civil(2019, 9, 2), [:us])[0] || {})[:name]
458
+
459
+ assert_nil (Holidays.on(Date.civil(2017, 9, 21), [:us])[0] || {})[:name]
460
+ assert_nil (Holidays.on(Date.civil(2018, 9, 10), [:us])[0] || {})[:name]
461
+ assert_nil (Holidays.on(Date.civil(2019, 9, 30), [:us])[0] || {})[:name]
462
+
463
+ assert_equal "Rosh Hashanah", (Holidays.on(Date.civil(2017, 9, 21), [:us_tx])[0] || {})[:name]
464
+ assert_equal "Rosh Hashanah", (Holidays.on(Date.civil(2018, 9, 10), [:us_tx])[0] || {})[:name]
465
+ assert_equal "Rosh Hashanah", (Holidays.on(Date.civil(2019, 9, 30), [:us_tx])[0] || {})[:name]
466
+
467
+ assert_nil (Holidays.on(Date.civil(2017, 9, 30), [:us])[0] || {})[:name]
468
+ assert_nil (Holidays.on(Date.civil(2018, 9, 19), [:us])[0] || {})[:name]
469
+ assert_nil (Holidays.on(Date.civil(2019, 10, 9), [:us])[0] || {})[:name]
470
+
471
+ assert_equal "Yom Kippur", (Holidays.on(Date.civil(2017, 9, 30), [:us_tx])[0] || {})[:name]
472
+ assert_equal "Yom Kippur", (Holidays.on(Date.civil(2018, 9, 19), [:us_tx])[0] || {})[:name]
473
+ assert_equal "Yom Kippur", (Holidays.on(Date.civil(2019, 10, 9), [:us_tx])[0] || {})[:name]
474
+
475
+ assert_nil (Holidays.on(Date.civil(2017, 10, 9), [:us])[0] || {})[:name]
476
+ assert_nil (Holidays.on(Date.civil(2018, 10, 8), [:us])[0] || {})[:name]
477
+ assert_nil (Holidays.on(Date.civil(2019, 10, 14), [:us])[0] || {})[:name]
478
+
479
+ assert_equal "Columbus Day", (Holidays.on(Date.civil(2017, 10, 9), [:us_al, :us_az, :us_co, :us_ct, :us_dc, :us_ga, :us_id, :us_il, :us_in, :us_ma, :us_md, :us_me, :us_mo, :us_mt, :us_ne, :us_nj, :us_nm, :us_ny, :us_oh, :us_pa, :us_ri, :us_ut, :us_va, :us_wv])[0] || {})[:name]
480
+ assert_equal "Columbus Day", (Holidays.on(Date.civil(2018, 10, 8), [:us_al, :us_az, :us_co, :us_ct, :us_dc, :us_ga, :us_id, :us_il, :us_in, :us_ma, :us_md, :us_me, :us_mo, :us_mt, :us_ne, :us_nj, :us_nm, :us_ny, :us_oh, :us_pa, :us_ri, :us_ut, :us_va, :us_wv])[0] || {})[:name]
481
+ assert_equal "Columbus Day", (Holidays.on(Date.civil(2019, 10, 14), [:us_al, :us_az, :us_co, :us_ct, :us_dc, :us_ga, :us_id, :us_il, :us_in, :us_ma, :us_md, :us_me, :us_mo, :us_mt, :us_ne, :us_nj, :us_nm, :us_ny, :us_oh, :us_pa, :us_ri, :us_ut, :us_va, :us_wv])[0] || {})[:name]
482
+
483
+ assert_equal "Columbus Day", (Holidays.on(Date.civil(2017, 10, 9), [:us_ak, :us_ar, :us_ca, :us_de, :us_fl, :us_hi, :us_mi, :us_mn, :us_nd, :us_nv, :us_or, :us_sd, :us_tx, :us_vt, :us_wa, :us_wi, :us_wy], [:informal])[0] || {})[:name]
484
+ assert_equal "Columbus Day", (Holidays.on(Date.civil(2018, 10, 8), [:us_ak, :us_ar, :us_ca, :us_de, :us_fl, :us_hi, :us_mi, :us_mn, :us_nd, :us_nv, :us_or, :us_sd, :us_tx, :us_vt, :us_wa, :us_wi, :us_wy], [:informal])[0] || {})[:name]
485
+ assert_equal "Columbus Day", (Holidays.on(Date.civil(2019, 10, 14), [:us_ak, :us_ar, :us_ca, :us_de, :us_fl, :us_hi, :us_mi, :us_mn, :us_nd, :us_nv, :us_or, :us_sd, :us_tx, :us_vt, :us_wa, :us_wi, :us_wy], [:informal])[0] || {})[:name]
486
+
487
+ assert_nil (Holidays.on(Date.civil(2017, 10, 9), [:us_ak, :us_ar, :us_ca, :us_de, :us_fl, :us_hi, :us_mi, :us_mn, :us_nd, :us_nv, :us_or, :us_sd, :us_tx, :us_vt, :us_wa, :us_wi, :us_wy])[0] || {})[:name]
488
+ assert_nil (Holidays.on(Date.civil(2018, 10, 8), [:us_ak, :us_ar, :us_ca, :us_de, :us_fl, :us_hi, :us_mi, :us_mn, :us_nd, :us_nv, :us_or, :us_sd, :us_tx, :us_vt, :us_wa, :us_wi, :us_wy])[0] || {})[:name]
489
+ assert_nil (Holidays.on(Date.civil(2019, 10, 14), [:us_ak, :us_ar, :us_ca, :us_de, :us_fl, :us_hi, :us_mi, :us_mn, :us_nd, :us_nv, :us_or, :us_sd, :us_tx, :us_vt, :us_wa, :us_wi, :us_wy])[0] || {})[:name]
490
+
491
+ assert_equal "Alaska Day", (Holidays.on(Date.civil(2017, 10, 18), [:us_ak])[0] || {})[:name]
492
+
493
+ assert_nil (Holidays.on(Date.civil(2017, 10, 27), [:us])[0] || {})[:name]
494
+ assert_nil (Holidays.on(Date.civil(2018, 10, 26), [:us])[0] || {})[:name]
495
+ assert_nil (Holidays.on(Date.civil(2019, 10, 25), [:us])[0] || {})[:name]
496
+
497
+ assert_equal "Nevada Day", (Holidays.on(Date.civil(2017, 10, 27), [:us_nv])[0] || {})[:name]
498
+ assert_equal "Nevada Day", (Holidays.on(Date.civil(2018, 10, 26), [:us_nv])[0] || {})[:name]
499
+ assert_equal "Nevada Day", (Holidays.on(Date.civil(2019, 10, 25), [:us_nv])[0] || {})[:name]
500
+
501
+ assert_nil (Holidays.on(Date.civil(2017, 11, 7), [:us])[0] || {})[:name]
502
+ assert_nil (Holidays.on(Date.civil(2018, 11, 6), [:us])[0] || {})[:name]
503
+ assert_nil (Holidays.on(Date.civil(2021, 11, 2), [:us])[0] || {})[:name]
504
+
505
+ assert_equal "Election Day", (Holidays.on(Date.civil(2017, 11, 7), [:us_de, :us_hi, :us_il, :us_in, :us_mt, :us_nj, :us_ny, :us_pa, :us_ri])[0] || {})[:name]
506
+ assert_equal "Election Day", (Holidays.on(Date.civil(2018, 11, 6), [:us_de, :us_hi, :us_il, :us_in, :us_mt, :us_nj, :us_ny, :us_pa, :us_ri])[0] || {})[:name]
507
+ assert_equal "Election Day", (Holidays.on(Date.civil(2021, 11, 2), [:us_de, :us_hi, :us_il, :us_in, :us_mt, :us_nj, :us_ny, :us_pa, :us_ri])[0] || {})[:name]
508
+
509
+ assert_equal "Veterans Day", (Holidays.on(Date.civil(2017, 11, 10), [:us], [:observed])[0] || {})[:name]
510
+ assert_equal "Veterans Day", (Holidays.on(Date.civil(2018, 11, 12), [:us], [:observed])[0] || {})[:name]
511
+ assert_equal "Veterans Day", (Holidays.on(Date.civil(2019, 11, 11), [:us], [:observed])[0] || {})[:name]
512
+
513
+ assert_equal "Veterans Day", (Holidays.on(Date.civil(2017, 11, 11), [:us])[0] || {})[:name]
514
+
515
+ assert_equal "Thanksgiving", (Holidays.on(Date.civil(2017, 11, 23), [:us])[0] || {})[:name]
516
+ assert_equal "Thanksgiving", (Holidays.on(Date.civil(2018, 11, 22), [:us])[0] || {})[:name]
517
+ assert_equal "Thanksgiving", (Holidays.on(Date.civil(2019, 11, 28), [:us])[0] || {})[:name]
518
+
519
+ assert_nil (Holidays.on(Date.civil(2017, 11, 24), [:us])[0] || {})[:name]
520
+ assert_nil (Holidays.on(Date.civil(2018, 11, 23), [:us])[0] || {})[:name]
521
+ assert_nil (Holidays.on(Date.civil(2019, 11, 29), [:us])[0] || {})[:name]
522
+
523
+ assert_equal "Family Day", (Holidays.on(Date.civil(2017, 11, 24), [:us_nv])[0] || {})[:name]
524
+ assert_equal "Family Day", (Holidays.on(Date.civil(2018, 11, 23), [:us_nv])[0] || {})[:name]
525
+ assert_equal "Family Day", (Holidays.on(Date.civil(2019, 11, 29), [:us_nv])[0] || {})[:name]
526
+
527
+ assert_equal "State Holiday", (Holidays.on(Date.civil(2017, 11, 24), [:us_ga])[0] || {})[:name]
528
+ assert_equal "State Holiday", (Holidays.on(Date.civil(2018, 11, 23), [:us_ga])[0] || {})[:name]
529
+ assert_equal "State Holiday", (Holidays.on(Date.civil(2019, 11, 29), [:us_ga])[0] || {})[:name]
530
+
531
+ assert_equal "Presidents' Day", (Holidays.on(Date.civil(2017, 11, 24), [:us_nm])[0] || {})[:name]
532
+ assert_equal "Presidents' Day", (Holidays.on(Date.civil(2018, 11, 23), [:us_nm])[0] || {})[:name]
533
+ assert_equal "Presidents' Day", (Holidays.on(Date.civil(2019, 11, 29), [:us_nm])[0] || {})[:name]
534
+
535
+ assert_equal "Lincoln's Birthday", (Holidays.on(Date.civil(2017, 11, 24), [:us_in])[0] || {})[:name]
536
+ assert_equal "Lincoln's Birthday", (Holidays.on(Date.civil(2018, 11, 23), [:us_in])[0] || {})[:name]
537
+ assert_equal "Lincoln's Birthday", (Holidays.on(Date.civil(2019, 11, 29), [:us_in])[0] || {})[:name]
538
+
539
+ assert_equal "American Indian Heritage Day", (Holidays.on(Date.civil(2017, 11, 24), [:us_md])[0] || {})[:name]
540
+ assert_equal "American Indian Heritage Day", (Holidays.on(Date.civil(2018, 11, 23), [:us_md])[0] || {})[:name]
541
+ assert_equal "American Indian Heritage Day", (Holidays.on(Date.civil(2019, 11, 29), [:us_md])[0] || {})[:name]
542
+
543
+ assert_equal "Day after Thanksgiving (Black Friday)", (Holidays.on(Date.civil(2017, 11, 24), [:us_ca, :us_de, :us_fl, :us_ia, :us_il, :us_ks, :us_ky, :us_me, :us_mi, :us_mn, :us_ms, :us_ne, :us_nh, :us_nc, :us_pa, :us_sc, :us_ok, :us_tn, :us_tx, :us_va, :us_wa, :us_wv])[0] || {})[:name]
544
+ assert_equal "Day after Thanksgiving (Black Friday)", (Holidays.on(Date.civil(2018, 11, 23), [:us_ca, :us_de, :us_fl, :us_ia, :us_il, :us_ks, :us_ky, :us_me, :us_mi, :us_mn, :us_ms, :us_ne, :us_nh, :us_nc, :us_pa, :us_sc, :us_ok, :us_tn, :us_tx, :us_va, :us_wa, :us_wv])[0] || {})[:name]
545
+ assert_equal "Day after Thanksgiving (Black Friday)", (Holidays.on(Date.civil(2019, 11, 29), [:us_ca, :us_de, :us_fl, :us_ia, :us_il, :us_ks, :us_ky, :us_me, :us_mi, :us_mn, :us_ms, :us_ne, :us_nh, :us_nc, :us_pa, :us_sc, :us_ok, :us_tn, :us_tx, :us_va, :us_wa, :us_wv])[0] || {})[:name]
546
+
547
+ assert_equal "Christmas Eve (Holiday)", (Holidays.on(Date.civil(2022, 12, 23), [:us_mi, :us_sc, :us_va])[0] || {})[:name]
548
+ assert_equal "Christmas Eve (Holiday)", (Holidays.on(Date.civil(2023, 12, 22), [:us_mi, :us_sc, :us_va])[0] || {})[:name]
549
+ assert_equal "Christmas Eve (Holiday)", (Holidays.on(Date.civil(2028, 12, 22), [:us_mi, :us_sc, :us_va])[0] || {})[:name]
550
+
551
+ assert_equal "Christmas Eve", (Holidays.on(Date.civil(2017, 12, 24), [:us_ar, :us_mi, :us_nc, :us_va, :us_sc, :us_tx, :us_wi])[0] || {})[:name]
552
+
553
+ assert_nil (Holidays.on(Date.civil(2021, 12, 27), [:us])[0] || {})[:name]
554
+ assert_nil (Holidays.on(Date.civil(2022, 12, 26), [:us])[0] || {})[:name]
555
+ assert_nil (Holidays.on(Date.civil(2027, 12, 27), [:us])[0] || {})[:name]
556
+
557
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2021, 12, 27), [:us], [:observed])[0] || {})[:name]
558
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2022, 12, 26), [:us], [:observed])[0] || {})[:name]
559
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2027, 12, 27), [:us], [:observed])[0] || {})[:name]
560
+
561
+ assert_equal "Christmas Day", (Holidays.on(Date.civil(2017, 12, 25), [:us])[0] || {})[:name]
562
+
563
+ assert_equal "Day after Christmas", (Holidays.on(Date.civil(2017, 12, 26), [:us_ar, :us_nc, :us_ok, :us_sc, :us_tn, :us_tx])[0] || {})[:name]
564
+
565
+ assert_equal "New Year's Eve", (Holidays.on(Date.civil(2017, 12, 31), [:us_mi, :us_wi])[0] || {})[:name]
566
+
567
+ assert_equal "Groundhog Day", (Holidays.on(Date.civil(2013, 2, 2), [:us], [:informal])[0] || {})[:name]
568
+
569
+ assert_equal "Valentine's Day", (Holidays.on(Date.civil(2013, 2, 14), [:us], [:informal])[0] || {})[:name]
570
+
571
+ assert_equal "St. Patrick's Day", (Holidays.on(Date.civil(2013, 3, 17), [:us], [:informal])[0] || {})[:name]
572
+
573
+ assert_equal "April Fool's Day", (Holidays.on(Date.civil(2013, 4, 1), [:us], [:informal])[0] || {})[:name]
574
+
575
+ assert_equal "Earth Day", (Holidays.on(Date.civil(2013, 4, 22), [:us], [:informal])[0] || {})[:name]
576
+
577
+ assert_equal "Mother's Day", (Holidays.on(Date.civil(2013, 5, 12), [:us], [:informal])[0] || {})[:name]
578
+
579
+ assert_equal "Armed Forces Day", (Holidays.on(Date.civil(2013, 5, 18), [:us], [:informal])[0] || {})[:name]
580
+
581
+ assert_equal "Father's Day", (Holidays.on(Date.civil(2013, 6, 16), [:us], [:informal])[0] || {})[:name]
582
+
583
+ assert_equal "Halloween", (Holidays.on(Date.civil(2013, 10, 31), [:us], [:informal])[0] || {})[:name]
470
584
 
471
585
  end
472
586
  end