month.rb 0.11.0 → 0.11.2

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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +74 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +21 -0
  5. data/README.md +145 -0
  6. data/TODO.txt +26 -0
  7. data/lib/Month/VERSION.rb +1 -1
  8. data/month.rb.gemspec +44 -0
  9. data/test/tc_Date_to_month.rb +21 -0
  10. data/test/tc_Month_begin_date.rb +21 -0
  11. data/test/tc_Month_beginning.rb +21 -0
  12. data/test/tc_Month_beginning_of_month.rb +21 -0
  13. data/test/tc_Month_beginning_of_the_month.rb +21 -0
  14. data/test/tc_Month_cdate.rb +34 -0
  15. data/test/tc_Month_cdates.rb +111 -0
  16. data/test/tc_Month_comparator.rb +17 -0
  17. data/test/tc_Month_date.rb +34 -0
  18. data/test/tc_Month_dates.rb +111 -0
  19. data/test/tc_Month_day.rb +226 -0
  20. data/test/tc_Month_day_long.rb +152 -0
  21. data/test/tc_Month_day_short.rb +152 -0
  22. data/test/tc_Month_day_shortest.rb +152 -0
  23. data/test/tc_Month_days.rb +21 -0
  24. data/test/tc_Month_days_in_month.rb +21 -0
  25. data/test/tc_Month_days_in_the_month.rb +21 -0
  26. data/test/tc_Month_each_day.rb +21 -0
  27. data/test/tc_Month_end.rb +21 -0
  28. data/test/tc_Month_end_date.rb +21 -0
  29. data/test/tc_Month_end_of_month.rb +21 -0
  30. data/test/tc_Month_end_of_the_month.rb +21 -0
  31. data/test/tc_Month_eqlQ.rb +13 -0
  32. data/test/tc_Month_finish.rb +21 -0
  33. data/test/tc_Month_finish_date.rb +21 -0
  34. data/test/tc_Month_finish_of_month.rb +21 -0
  35. data/test/tc_Month_finish_of_the_month.rb +21 -0
  36. data/test/tc_Month_initialize.rb +28 -0
  37. data/test/tc_Month_last.rb +11 -0
  38. data/test/tc_Month_last_month.rb +11 -0
  39. data/test/tc_Month_method_missing.rb +116 -0
  40. data/test/tc_Month_minus.rb +23 -0
  41. data/test/tc_Month_next.rb +12 -0
  42. data/test/tc_Month_next_month.rb +12 -0
  43. data/test/tc_Month_plus.rb +23 -0
  44. data/test/tc_Month_prev.rb +11 -0
  45. data/test/tc_Month_prev_month.rb +11 -0
  46. data/test/tc_Month_previous.rb +11 -0
  47. data/test/tc_Month_previous_month.rb +11 -0
  48. data/test/tc_Month_prior.rb +11 -0
  49. data/test/tc_Month_prior_month.rb +11 -0
  50. data/test/tc_Month_self.begin_date.rb +46 -0
  51. data/test/tc_Month_self.beginning.rb +46 -0
  52. data/test/tc_Month_self.beginning_of_month.rb +46 -0
  53. data/test/tc_Month_self.beginning_of_the_month.rb +46 -0
  54. data/test/tc_Month_self.cdate.rb +33 -0
  55. data/test/tc_Month_self.cdates.rb +325 -0
  56. data/test/tc_Month_self.date.rb +33 -0
  57. data/test/tc_Month_self.dates.rb +325 -0
  58. data/test/tc_Month_self.day.rb +226 -0
  59. data/test/tc_Month_self.day_long.rb +152 -0
  60. data/test/tc_Month_self.day_short.rb +152 -0
  61. data/test/tc_Month_self.day_shortest.rb +152 -0
  62. data/test/tc_Month_self.days.rb +124 -0
  63. data/test/tc_Month_self.days_in_month.rb +124 -0
  64. data/test/tc_Month_self.days_in_the_month.rb +124 -0
  65. data/test/tc_Month_self.end.rb +21 -0
  66. data/test/tc_Month_self.end_date.rb +21 -0
  67. data/test/tc_Month_self.end_of_month.rb +21 -0
  68. data/test/tc_Month_self.end_of_the_month.rb +21 -0
  69. data/test/tc_Month_self.finish.rb +21 -0
  70. data/test/tc_Month_self.finish_date.rb +21 -0
  71. data/test/tc_Month_self.finish_of_month.rb +21 -0
  72. data/test/tc_Month_self.finish_of_the_month.rb +21 -0
  73. data/test/tc_Month_self.from_date.rb +21 -0
  74. data/test/tc_Month_self.last.rb +47 -0
  75. data/test/tc_Month_self.last_month.rb +47 -0
  76. data/test/tc_Month_self.method_missing.rb +227 -0
  77. data/test/tc_Month_self.next.rb +23 -0
  78. data/test/tc_Month_self.next_month.rb +23 -0
  79. data/test/tc_Month_self.now.rb +9 -0
  80. data/test/tc_Month_self.of.rb +78 -0
  81. data/test/tc_Month_self.prev.rb +23 -0
  82. data/test/tc_Month_self.prev_month.rb +23 -0
  83. data/test/tc_Month_self.previous.rb +23 -0
  84. data/test/tc_Month_self.previous_month.rb +23 -0
  85. data/test/tc_Month_self.prior.rb +23 -0
  86. data/test/tc_Month_self.prior_month.rb +23 -0
  87. data/test/tc_Month_self.start.rb +21 -0
  88. data/test/tc_Month_self.start_date.rb +21 -0
  89. data/test/tc_Month_self.start_of_month.rb +21 -0
  90. data/test/tc_Month_self.start_of_the_month.rb +21 -0
  91. data/test/tc_Month_self.succ.rb +23 -0
  92. data/test/tc_Month_self.succ_month.rb +23 -0
  93. data/test/tc_Month_self.successor.rb +23 -0
  94. data/test/tc_Month_self.successor_month.rb +23 -0
  95. data/test/tc_Month_self.this.rb +23 -0
  96. data/test/tc_Month_self.to_i.rb +100 -0
  97. data/test/tc_Month_self.to_long.rb +100 -0
  98. data/test/tc_Month_self.to_num.rb +100 -0
  99. data/test/tc_Month_self.to_number.rb +100 -0
  100. data/test/tc_Month_self.to_short.rb +100 -0
  101. data/test/tc_Month_self.today.rb +9 -0
  102. data/test/tc_Month_self.wday.rb +292 -0
  103. data/test/tc_Month_start.rb +21 -0
  104. data/test/tc_Month_start_date.rb +21 -0
  105. data/test/tc_Month_start_of_month.rb +21 -0
  106. data/test/tc_Month_start_of_the_month.rb +21 -0
  107. data/test/tc_Month_succ.rb +11 -0
  108. data/test/tc_Month_succ_month.rb +11 -0
  109. data/test/tc_Month_successor.rb +11 -0
  110. data/test/tc_Month_successor_month.rb +11 -0
  111. data/test/tc_Month_to_date.rb +17 -0
  112. data/test/tc_Month_to_i.rb +20 -0
  113. data/test/tc_Month_to_long.rb +20 -0
  114. data/test/tc_Month_to_num.rb +20 -0
  115. data/test/tc_Month_to_number.rb +20 -0
  116. data/test/tc_Month_to_s.rb +40 -0
  117. data/test/tc_Month_to_short.rb +20 -0
  118. data/test/tc_gemspec.rb +42 -0
  119. data/test/ts_Month.rb +14 -0
  120. metadata +126 -5
@@ -0,0 +1,23 @@
1
+ # test/tc_Month_plus.rb
2
+
3
+ class TC_Month_plus < Minitest::Test
4
+
5
+ def test_plus_method
6
+ assert_equal Month.new(2011, 5), Month.new(2011, 1).plus(4)
7
+ assert_equal Month.new(2012, 1), Month.new(2011, 12).plus(1)
8
+ assert_equal Month.new(2012, 1), Month.new(2011, 11).plus(2)
9
+ assert_equal Month.new(2012, 11), Month.new(2011, 11).plus(12)
10
+ assert_equal Month.new(2013, 11), Month.new(2011, 11).plus(24)
11
+ assert_equal Month.new(2011, 1), Month.new(2010, 12).plus(1)
12
+ end
13
+
14
+ def test_plus_literal
15
+ assert_equal Month.new(2011, 5), Month.new(2011, 1) + 4
16
+ assert_equal Month.new(2012, 1), Month.new(2011, 12) + 1
17
+ assert_equal Month.new(2012, 1), Month.new(2011, 11) + 2
18
+ assert_equal Month.new(2012, 11), Month.new(2011, 11) + 12
19
+ assert_equal Month.new(2013, 11), Month.new(2011, 11) + 24
20
+ assert_equal Month.new(2011, 1), Month.new(2010, 12) + 1
21
+ end
22
+
23
+ end
@@ -0,0 +1,11 @@
1
+ # test/tc_Month_prev.rb
2
+
3
+ class TC_Month_prev < Minitest::Test
4
+
5
+ def test_prev
6
+ assert_equal Month.new(2010, 12), Month.new(2011, 1).prev
7
+ assert_equal Month.new(2011, 11), Month.new(2011, 12).prev
8
+ assert_equal Month.new(2011, 10), Month.new(2011, 11).prev
9
+ end
10
+
11
+ end
@@ -0,0 +1,11 @@
1
+ # test/tc_Month_prev_month.rb
2
+
3
+ class TC_Month_prev_month < Minitest::Test
4
+
5
+ def test_prev_month
6
+ assert_equal Month.new(2010, 12), Month.new(2011, 1).prev_month
7
+ assert_equal Month.new(2011, 11), Month.new(2011, 12).prev_month
8
+ assert_equal Month.new(2011, 10), Month.new(2011, 11).prev_month
9
+ end
10
+
11
+ end
@@ -0,0 +1,11 @@
1
+ # test/tc_Month_previous.rb
2
+
3
+ class TC_Month_previous < Minitest::Test
4
+
5
+ def test_previous
6
+ assert_equal Month.new(2010, 12), Month.new(2011, 1).previous
7
+ assert_equal Month.new(2011, 11), Month.new(2011, 12).previous
8
+ assert_equal Month.new(2011, 10), Month.new(2011, 11).previous
9
+ end
10
+
11
+ end
@@ -0,0 +1,11 @@
1
+ # test/tc_Month_previous_month.rb
2
+
3
+ class TC_Month_previous_month < Minitest::Test
4
+
5
+ def test_previous_month
6
+ assert_equal Month.new(2010, 12), Month.new(2011, 1).previous_month
7
+ assert_equal Month.new(2011, 11), Month.new(2011, 12).previous_month
8
+ assert_equal Month.new(2011, 10), Month.new(2011, 11).previous_month
9
+ end
10
+
11
+ end
@@ -0,0 +1,11 @@
1
+ # test/tc_Month_prior.rb
2
+
3
+ class TC_Month_prior < Minitest::Test
4
+
5
+ def test_prior
6
+ assert_equal Month.new(2010, 12), Month.new(2011, 1).prior
7
+ assert_equal Month.new(2011, 11), Month.new(2011, 12).prior
8
+ assert_equal Month.new(2011, 10), Month.new(2011, 11).prior
9
+ end
10
+
11
+ end
@@ -0,0 +1,11 @@
1
+ # test/tc_Month_prior_month.rb
2
+
3
+ class TC_Month_prior_month < Minitest::Test
4
+
5
+ def test_prior_month
6
+ assert_equal Month.new(2010, 12), Month.new(2011, 1).prior_month
7
+ assert_equal Month.new(2011, 11), Month.new(2011, 12).prior_month
8
+ assert_equal Month.new(2011, 10), Month.new(2011, 11).prior_month
9
+ end
10
+
11
+ end
@@ -0,0 +1,46 @@
1
+ # test/tc_Month_self.begin_date.rb
2
+
3
+ class TC_Month_self_begin_date < Minitest::Test
4
+
5
+ def test_no_arguments
6
+ this_year, this_month = Date.today.year, Date.today.month
7
+ assert_equal Date.new(this_year, this_month, 1), Month.begin_date
8
+ end
9
+
10
+ def test_one_argument
11
+ this_year = Date.today.year
12
+ assert_equal Date.new(this_year, 1, 1), Month.begin_date(1)
13
+ assert_equal Date.new(this_year, 2, 1), Month.begin_date(2)
14
+ assert_equal Date.new(this_year, 3, 1), Month.begin_date(3)
15
+ assert_equal Date.new(this_year, 4, 1), Month.begin_date(4)
16
+ assert_equal Date.new(this_year, 5, 1), Month.begin_date(5)
17
+ assert_equal Date.new(this_year, 6, 1), Month.begin_date(6)
18
+ assert_equal Date.new(this_year, 7, 1), Month.begin_date(7)
19
+ assert_equal Date.new(this_year, 8, 1), Month.begin_date(8)
20
+ assert_equal Date.new(this_year, 9, 1), Month.begin_date(9)
21
+ assert_equal Date.new(this_year, 10, 1), Month.begin_date(10)
22
+ assert_equal Date.new(this_year, 11, 1), Month.begin_date(11)
23
+ assert_equal Date.new(this_year, 12, 1), Month.begin_date(12)
24
+ end
25
+
26
+ def test_two_arguments
27
+ assert_equal Date.new(2006, 1, 1), Month.begin_date(2006, 1)
28
+ assert_equal Date.new(2006, 2, 1), Month.begin_date(2006, 2)
29
+ assert_equal Date.new(2008, 2, 1), Month.begin_date(2008, 2)
30
+ assert_equal Date.new(2006, 3, 1), Month.begin_date(2006, 3)
31
+ assert_equal Date.new(2006, 4, 1), Month.begin_date(2006, 4)
32
+ assert_equal Date.new(2006, 5, 1), Month.begin_date(2006, 5)
33
+ assert_equal Date.new(2006, 6, 1), Month.begin_date(2006, 6)
34
+ assert_equal Date.new(2006, 7, 1), Month.begin_date(2006, 7)
35
+ assert_equal Date.new(2006, 8, 1), Month.begin_date(2006, 8)
36
+ assert_equal Date.new(2006, 9, 1), Month.begin_date(2006, 9)
37
+ assert_equal Date.new(2006, 10, 1), Month.begin_date(2006, 10)
38
+ assert_equal Date.new(2006, 11, 1), Month.begin_date(2006, 11)
39
+ assert_equal Date.new(2006, 12, 1), Month.begin_date(2006, 12)
40
+ end
41
+
42
+ def test_three_arguments
43
+ assert_raises(ArgumentError){Month.begin_date(1, 2, 3)}
44
+ end
45
+
46
+ end
@@ -0,0 +1,46 @@
1
+ # test/tc_Month_self.beginning.rb
2
+
3
+ class TC_Month_self_beginning < Minitest::Test
4
+
5
+ def test_no_arguments
6
+ this_year, this_month = Date.today.year, Date.today.month
7
+ assert_equal Date.new(this_year, this_month, 1), Month.beginning
8
+ end
9
+
10
+ def test_one_argument
11
+ this_year = Date.today.year
12
+ assert_equal Date.new(this_year, 1, 1), Month.beginning(1)
13
+ assert_equal Date.new(this_year, 2, 1), Month.beginning(2)
14
+ assert_equal Date.new(this_year, 3, 1), Month.beginning(3)
15
+ assert_equal Date.new(this_year, 4, 1), Month.beginning(4)
16
+ assert_equal Date.new(this_year, 5, 1), Month.beginning(5)
17
+ assert_equal Date.new(this_year, 6, 1), Month.beginning(6)
18
+ assert_equal Date.new(this_year, 7, 1), Month.beginning(7)
19
+ assert_equal Date.new(this_year, 8, 1), Month.beginning(8)
20
+ assert_equal Date.new(this_year, 9, 1), Month.beginning(9)
21
+ assert_equal Date.new(this_year, 10, 1), Month.beginning(10)
22
+ assert_equal Date.new(this_year, 11, 1), Month.beginning(11)
23
+ assert_equal Date.new(this_year, 12, 1), Month.beginning(12)
24
+ end
25
+
26
+ def test_two_arguments
27
+ assert_equal Date.new(2006, 1, 1), Month.beginning(2006, 1)
28
+ assert_equal Date.new(2006, 2, 1), Month.beginning(2006, 2)
29
+ assert_equal Date.new(2008, 2, 1), Month.beginning(2008, 2)
30
+ assert_equal Date.new(2006, 3, 1), Month.beginning(2006, 3)
31
+ assert_equal Date.new(2006, 4, 1), Month.beginning(2006, 4)
32
+ assert_equal Date.new(2006, 5, 1), Month.beginning(2006, 5)
33
+ assert_equal Date.new(2006, 6, 1), Month.beginning(2006, 6)
34
+ assert_equal Date.new(2006, 7, 1), Month.beginning(2006, 7)
35
+ assert_equal Date.new(2006, 8, 1), Month.beginning(2006, 8)
36
+ assert_equal Date.new(2006, 9, 1), Month.beginning(2006, 9)
37
+ assert_equal Date.new(2006, 10, 1), Month.beginning(2006, 10)
38
+ assert_equal Date.new(2006, 11, 1), Month.beginning(2006, 11)
39
+ assert_equal Date.new(2006, 12, 1), Month.beginning(2006, 12)
40
+ end
41
+
42
+ def test_three_arguments
43
+ assert_raises(ArgumentError){Month.beginning(1, 2, 3)}
44
+ end
45
+
46
+ end
@@ -0,0 +1,46 @@
1
+ # test/tc_Month_self.beginning_of_month.rb
2
+
3
+ class TC_Month_self_beginning_of_month < Minitest::Test
4
+
5
+ def test_no_arguments
6
+ this_year, this_month = Date.today.year, Date.today.month
7
+ assert_equal Date.new(this_year, this_month, 1), Month.beginning_of_month
8
+ end
9
+
10
+ def test_one_argument
11
+ this_year = Date.today.year
12
+ assert_equal Date.new(this_year, 1, 1), Month.beginning_of_month(1)
13
+ assert_equal Date.new(this_year, 2, 1), Month.beginning_of_month(2)
14
+ assert_equal Date.new(this_year, 3, 1), Month.beginning_of_month(3)
15
+ assert_equal Date.new(this_year, 4, 1), Month.beginning_of_month(4)
16
+ assert_equal Date.new(this_year, 5, 1), Month.beginning_of_month(5)
17
+ assert_equal Date.new(this_year, 6, 1), Month.beginning_of_month(6)
18
+ assert_equal Date.new(this_year, 7, 1), Month.beginning_of_month(7)
19
+ assert_equal Date.new(this_year, 8, 1), Month.beginning_of_month(8)
20
+ assert_equal Date.new(this_year, 9, 1), Month.beginning_of_month(9)
21
+ assert_equal Date.new(this_year, 10, 1), Month.beginning_of_month(10)
22
+ assert_equal Date.new(this_year, 11, 1), Month.beginning_of_month(11)
23
+ assert_equal Date.new(this_year, 12, 1), Month.beginning_of_month(12)
24
+ end
25
+
26
+ def test_two_arguments
27
+ assert_equal Date.new(2006, 1, 1), Month.beginning_of_month(2006, 1)
28
+ assert_equal Date.new(2006, 2, 1), Month.beginning_of_month(2006, 2)
29
+ assert_equal Date.new(2008, 2, 1), Month.beginning_of_month(2008, 2)
30
+ assert_equal Date.new(2006, 3, 1), Month.beginning_of_month(2006, 3)
31
+ assert_equal Date.new(2006, 4, 1), Month.beginning_of_month(2006, 4)
32
+ assert_equal Date.new(2006, 5, 1), Month.beginning_of_month(2006, 5)
33
+ assert_equal Date.new(2006, 6, 1), Month.beginning_of_month(2006, 6)
34
+ assert_equal Date.new(2006, 7, 1), Month.beginning_of_month(2006, 7)
35
+ assert_equal Date.new(2006, 8, 1), Month.beginning_of_month(2006, 8)
36
+ assert_equal Date.new(2006, 9, 1), Month.beginning_of_month(2006, 9)
37
+ assert_equal Date.new(2006, 10, 1), Month.beginning_of_month(2006, 10)
38
+ assert_equal Date.new(2006, 11, 1), Month.beginning_of_month(2006, 11)
39
+ assert_equal Date.new(2006, 12, 1), Month.beginning_of_month(2006, 12)
40
+ end
41
+
42
+ def test_three_arguments
43
+ assert_raises(ArgumentError){Month.beginning_of_month(1, 2, 3)}
44
+ end
45
+
46
+ end
@@ -0,0 +1,46 @@
1
+ # test/tc_Month_self.beginning_of_the_month.rb
2
+
3
+ class TC_Month_self_beginning_of_the_month < Minitest::Test
4
+
5
+ def test_no_arguments
6
+ this_year, this_month = Date.today.year, Date.today.month
7
+ assert_equal Date.new(this_year, this_month, 1), Month.beginning_of_the_month
8
+ end
9
+
10
+ def test_one_argument
11
+ this_year = Date.today.year
12
+ assert_equal Date.new(this_year, 1, 1), Month.beginning_of_the_month(1)
13
+ assert_equal Date.new(this_year, 2, 1), Month.beginning_of_the_month(2)
14
+ assert_equal Date.new(this_year, 3, 1), Month.beginning_of_the_month(3)
15
+ assert_equal Date.new(this_year, 4, 1), Month.beginning_of_the_month(4)
16
+ assert_equal Date.new(this_year, 5, 1), Month.beginning_of_the_month(5)
17
+ assert_equal Date.new(this_year, 6, 1), Month.beginning_of_the_month(6)
18
+ assert_equal Date.new(this_year, 7, 1), Month.beginning_of_the_month(7)
19
+ assert_equal Date.new(this_year, 8, 1), Month.beginning_of_the_month(8)
20
+ assert_equal Date.new(this_year, 9, 1), Month.beginning_of_the_month(9)
21
+ assert_equal Date.new(this_year, 10, 1), Month.beginning_of_the_month(10)
22
+ assert_equal Date.new(this_year, 11, 1), Month.beginning_of_the_month(11)
23
+ assert_equal Date.new(this_year, 12, 1), Month.beginning_of_the_month(12)
24
+ end
25
+
26
+ def test_two_arguments
27
+ assert_equal Date.new(2006, 1, 1), Month.beginning_of_the_month(2006, 1)
28
+ assert_equal Date.new(2006, 2, 1), Month.beginning_of_the_month(2006, 2)
29
+ assert_equal Date.new(2008, 2, 1), Month.beginning_of_the_month(2008, 2)
30
+ assert_equal Date.new(2006, 3, 1), Month.beginning_of_the_month(2006, 3)
31
+ assert_equal Date.new(2006, 4, 1), Month.beginning_of_the_month(2006, 4)
32
+ assert_equal Date.new(2006, 5, 1), Month.beginning_of_the_month(2006, 5)
33
+ assert_equal Date.new(2006, 6, 1), Month.beginning_of_the_month(2006, 6)
34
+ assert_equal Date.new(2006, 7, 1), Month.beginning_of_the_month(2006, 7)
35
+ assert_equal Date.new(2006, 8, 1), Month.beginning_of_the_month(2006, 8)
36
+ assert_equal Date.new(2006, 9, 1), Month.beginning_of_the_month(2006, 9)
37
+ assert_equal Date.new(2006, 10, 1), Month.beginning_of_the_month(2006, 10)
38
+ assert_equal Date.new(2006, 11, 1), Month.beginning_of_the_month(2006, 11)
39
+ assert_equal Date.new(2006, 12, 1), Month.beginning_of_the_month(2006, 12)
40
+ end
41
+
42
+ def test_three_arguments
43
+ assert_raises(ArgumentError){Month.beginning_of_the_month(1, 2, 3)}
44
+ end
45
+
46
+ end
@@ -0,0 +1,33 @@
1
+ # test/tc_Month_self.cdate.rb
2
+
3
+ if __FILE__ == $0
4
+ require 'minitest/autorun'
5
+ $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
6
+ require 'Month/Constants'
7
+ require 'Month/self.cdate'
8
+ end
9
+
10
+ class TC_Month_self_cdate < Minitest::Test
11
+
12
+ def test_self_cdate
13
+ assert_equal 3, Month.cdate('First', 'Monday', 2011, 1)
14
+ assert_equal 14, Month.cdate('Second', 'Monday', 2011, 2)
15
+ assert_equal 21, Month.cdate('Third', 'Monday', 2011, 3)
16
+ assert_equal 25, Month.cdate('Fourth', 'Monday', 2011, 4)
17
+ assert_equal 30, Month.cdate('Fifth', 'Monday', 2011, 5)
18
+ assert_equal 27, Month.cdate('Last', 'Monday', 2011, 6)
19
+ assert_equal 18, Month.cdate('Second Last', 'Monday', 2011, 7)
20
+ assert_equal 15, Month.cdate('Third Last', 'Monday', 2011, 8)
21
+ assert_equal 5, Month.cdate('Fourth Last', 'Monday', 2011, 9)
22
+ assert_equal 2, Month.cdate('First', 'Sunday', 2011, 1)
23
+ assert_equal 13, Month.cdate('Second', 'Sunday', 2011, 2)
24
+ assert_equal 20, Month.cdate('Third', 'Sunday', 2011, 3)
25
+ assert_equal 24, Month.cdate('Fourth', 'Sunday', 2011, 4)
26
+ assert_equal 29, Month.cdate('Fifth', 'Sunday', 2011, 5)
27
+ assert_equal 26, Month.cdate('Last', 'Sunday', 2011, 6)
28
+ assert_equal 24, Month.cdate('Second Last', 'Sunday', 2011, 7)
29
+ assert_equal 14, Month.cdate('Third Last', 'Sunday', 2011, 8)
30
+ assert_equal 4, Month.cdate('Fourth Last', 'Sunday', 2011, 9)
31
+ end
32
+
33
+ end
@@ -0,0 +1,325 @@
1
+ # test/tc_Month_self.cdates.rb
2
+
3
+ if __FILE__ == $0
4
+ require 'minitest/autorun'
5
+ $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
6
+ require 'Month/Constants'
7
+ require 'Month/self.cdates'
8
+ end
9
+
10
+ class TC_Month_self_cdates < Minitest::Test
11
+
12
+ def test_no_day
13
+ assert_equal (1..31).collect{|date| date}, Month.cdates(2006, 10)
14
+ end
15
+
16
+ def test_date_objects_true_no_day
17
+ assert_equal (1..31).collect{|date| Date.new(2006, 10, date)}, Month.cdates(2006, 10, :date_objects => true)
18
+ end
19
+
20
+ def test_day_capitalized_long
21
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 'Sunday')
22
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 'Monday')
23
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 'Tuesday')
24
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 'Wednesday')
25
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 'Thursday')
26
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 'Friday')
27
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 'Saturday')
28
+ end
29
+
30
+ def test_day_downcase_long
31
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 'sunday')
32
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 'monday')
33
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 'tuesday')
34
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 'wednesday')
35
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 'thursday')
36
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 'friday')
37
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 'saturday')
38
+ end
39
+
40
+ def test_day_capitalized_short
41
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 'Sun')
42
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 'Mon')
43
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 'Tue')
44
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 'Wed')
45
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 'Thu')
46
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 'Fri')
47
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 'Sat')
48
+ end
49
+
50
+ def test_day_downcase_short
51
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 'sun')
52
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 'mon')
53
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 'tue')
54
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 'wed')
55
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 'thu')
56
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 'fri')
57
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 'sat')
58
+ end
59
+
60
+ def test_day_as_num_as_num
61
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 7)
62
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 1)
63
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 2)
64
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 3)
65
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 4)
66
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 5)
67
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 6)
68
+ end
69
+
70
+ def test_day_as_num_as_string
71
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => '7')
72
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => '1')
73
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => '2')
74
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => '3')
75
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => '4')
76
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => '5')
77
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => '6')
78
+ end
79
+
80
+ def test_day_capitalized_long_with_num_month_as_num
81
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 'Sunday')
82
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 'Monday')
83
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 'Tuesday')
84
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 'Wednesday')
85
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 'Thursday')
86
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 'Friday')
87
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 'Saturday')
88
+ end
89
+
90
+ def test_day_downcase_long_with_num_month_as_num
91
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 'sunday')
92
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 'monday')
93
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 'tuesday')
94
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 'wednesday')
95
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 'thursday')
96
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 'friday')
97
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 'saturday')
98
+ end
99
+
100
+ def test_day_capitalized_short_with_num_month_as_num
101
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 'Sun')
102
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 'Mon')
103
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 'Tue')
104
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 'Wed')
105
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 'Thu')
106
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 'Fri')
107
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 'Sat')
108
+ end
109
+
110
+ def test_day_downcase_short_with_num_month_as_num
111
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 'sun')
112
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 'mon')
113
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 'tue')
114
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 'wed')
115
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 'thu')
116
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 'fri')
117
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 'sat')
118
+ end
119
+
120
+ def test_day_as_num_as_num_with_num_month_as_num
121
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => 7)
122
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => 1)
123
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => 2)
124
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => 3)
125
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => 4)
126
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => 5)
127
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => 6)
128
+ end
129
+
130
+ def test_day_as_num_as_string_with_num_month_as_num
131
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 10, :day => '7')
132
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 10, :day => '1')
133
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 10, :day => '2')
134
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 10, :day => '3')
135
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 10, :day => '4')
136
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 10, :day => '5')
137
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 10, :day => '6')
138
+ end
139
+
140
+ def test_day_capitalized_long_with_num_month_as_string
141
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, '10', :day => 'Sunday')
142
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, '10', :day => 'Monday')
143
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, '10', :day => 'Tuesday')
144
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, '10', :day => 'Wednesday')
145
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, '10', :day => 'Thursday')
146
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, '10', :day => 'Friday')
147
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, '10', :day => 'Saturday')
148
+ end
149
+
150
+ def test_day_downcase_long_with_num_month_as_string
151
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, '10', :day => 'sunday')
152
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, '10', :day => 'monday')
153
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, '10', :day => 'tuesday')
154
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, '10', :day => 'wednesday')
155
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, '10', :day => 'thursday')
156
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, '10', :day => 'friday')
157
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, '10', :day => 'saturday')
158
+ end
159
+
160
+ def test_day_capitalized_short_with_num_month_as_string
161
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, '10', :day => 'Sun')
162
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, '10', :day => 'Mon')
163
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, '10', :day => 'Tue')
164
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, '10', :day => 'Wed')
165
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, '10', :day => 'Thu')
166
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, '10', :day => 'Fri')
167
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, '10', :day => 'Sat')
168
+ end
169
+
170
+ def test_day_downcase_short_with_num_month_as_string
171
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, '10', :day => 'sun')
172
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, '10', :day => 'mon')
173
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, '10', :day => 'tue')
174
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, '10', :day => 'wed')
175
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, '10', :day => 'thu')
176
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, '10', :day => 'fri')
177
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, '10', :day => 'sat')
178
+ end
179
+
180
+ def test_day_as_num_as_num_with_num_month_as_string
181
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, '10', :day => 7)
182
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, '10', :day => 1)
183
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, '10', :day => 2)
184
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, '10', :day => 3)
185
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, '10', :day => 4)
186
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, '10', :day => 5)
187
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, '10', :day => 6)
188
+ end
189
+
190
+ def test_day_as_num_as_string_with_num_month_as_string
191
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, '10', :day => '7')
192
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, '10', :day => '1')
193
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, '10', :day => '2')
194
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, '10', :day => '3')
195
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, '10', :day => '4')
196
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, '10', :day => '5')
197
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, '10', :day => '6')
198
+ end
199
+
200
+ def test_day_capitalized_long_with_month_long
201
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'October', :day => 'Sunday')
202
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'October', :day => 'Monday')
203
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'October', :day => 'Tuesday')
204
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'October', :day => 'Wednesday')
205
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'October', :day => 'Thursday')
206
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'October', :day => 'Friday')
207
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'October', :day => 'Saturday')
208
+ end
209
+
210
+ def test_day_downcase_long_with_month_long
211
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'October', :day => 'sunday')
212
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'October', :day => 'monday')
213
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'October', :day => 'tuesday')
214
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'October', :day => 'wednesday')
215
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'October', :day => 'thursday')
216
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'October', :day => 'friday')
217
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'October', :day => 'saturday')
218
+ end
219
+
220
+ def test_day_capitalized_short_with_month_long
221
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'October', :day => 'Sun')
222
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'October', :day => 'Mon')
223
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'October', :day => 'Tue')
224
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'October', :day => 'Wed')
225
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'October', :day => 'Thu')
226
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'October', :day => 'Fri')
227
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'October', :day => 'Sat')
228
+ end
229
+
230
+ def test_day_downcase_short_with_month_long
231
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'October', :day => 'sun')
232
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'October', :day => 'mon')
233
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'October', :day => 'tue')
234
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'October', :day => 'wed')
235
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'October', :day => 'thu')
236
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'October', :day => 'fri')
237
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'October', :day => 'sat')
238
+ end
239
+
240
+ def test_day_as_num_as_num_with_month_long
241
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'October', :day => 7)
242
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'October', :day => 1)
243
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'October', :day => 2)
244
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'October', :day => 3)
245
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'October', :day => 4)
246
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'October', :day => 5)
247
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'October', :day => 6)
248
+ end
249
+
250
+ def test_day_as_num_as_string_with_month_long
251
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'October', :day => '7')
252
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'October', :day => '1')
253
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'October', :day => '2')
254
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'October', :day => '3')
255
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'October', :day => '4')
256
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'October', :day => '5')
257
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'October', :day => '6')
258
+ end
259
+
260
+ def test_day_capitalized_long_with_month_short
261
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'Oct', :day => 'Sunday')
262
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'Oct', :day => 'Monday')
263
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'Oct', :day => 'Tuesday')
264
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'Oct', :day => 'Wednesday')
265
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'Oct', :day => 'Thursday')
266
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'Oct', :day => 'Friday')
267
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'Oct', :day => 'Saturday')
268
+ end
269
+
270
+ def test_day_downcase_long_with_month_short
271
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'Oct', :day => 'sunday')
272
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'Oct', :day => 'monday')
273
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'Oct', :day => 'tuesday')
274
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'Oct', :day => 'wednesday')
275
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'Oct', :day => 'thursday')
276
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'Oct', :day => 'friday')
277
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'Oct', :day => 'saturday')
278
+ end
279
+
280
+ def test_day_capitalized_short_with_month_short
281
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'Oct', :day => 'Sun')
282
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'Oct', :day => 'Mon')
283
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'Oct', :day => 'Tue')
284
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'Oct', :day => 'Wed')
285
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'Oct', :day => 'Thu')
286
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'Oct', :day => 'Fri')
287
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'Oct', :day => 'Sat')
288
+ end
289
+
290
+ def test_day_downcase_short_with_month_short
291
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'Oct', :day => 'sun')
292
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'Oct', :day => 'mon')
293
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'Oct', :day => 'tue')
294
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'Oct', :day => 'wed')
295
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'Oct', :day => 'thu')
296
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'Oct', :day => 'fri')
297
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'Oct', :day => 'sat')
298
+ end
299
+
300
+ def test_day_as_num_as_num_with_month_short
301
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'Oct', :day => 7)
302
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'Oct', :day => 1)
303
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'Oct', :day => 2)
304
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'Oct', :day => 3)
305
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'Oct', :day => 4)
306
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'Oct', :day => 5)
307
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'Oct', :day => 6)
308
+ end
309
+
310
+ def test_day_as_num_as_string_with_month_short
311
+ assert_equal [1, 8, 15, 22, 29], Month.cdates(2006, 'Oct', :day => '7')
312
+ assert_equal [2, 9, 16, 23, 30], Month.cdates(2006, 'Oct', :day => '1')
313
+ assert_equal [3, 10, 17, 24, 31], Month.cdates(2006, 'Oct', :day => '2')
314
+ assert_equal [4, 11, 18, 25], Month.cdates(2006, 'Oct', :day => '3')
315
+ assert_equal [5, 12, 19, 26], Month.cdates(2006, 'Oct', :day => '4')
316
+ assert_equal [6, 13, 20, 27], Month.cdates(2006, 'Oct', :day => '5')
317
+ assert_equal [7, 14, 21, 28], Month.cdates(2006, 'Oct', :day => '6')
318
+ end
319
+
320
+ def test_crap
321
+ assert_nil Month.cdates('random')
322
+ assert_nil Month.cdates(32)
323
+ end
324
+
325
+ end