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,33 @@
1
+ # test/tc_Month_self.date.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.date'
8
+ end
9
+
10
+ class TC_Month_self_date < Minitest::Test
11
+
12
+ def test_self_date
13
+ assert_equal 3, Month.date('First', 'Monday', 2011, 1)
14
+ assert_equal 14, Month.date('Second', 'Monday', 2011, 2)
15
+ assert_equal 21, Month.date('Third', 'Monday', 2011, 3)
16
+ assert_equal 25, Month.date('Fourth', 'Monday', 2011, 4)
17
+ assert_equal 30, Month.date('Fifth', 'Monday', 2011, 5)
18
+ assert_equal 27, Month.date('Last', 'Monday', 2011, 6)
19
+ assert_equal 18, Month.date('Second Last', 'Monday', 2011, 7)
20
+ assert_equal 15, Month.date('Third Last', 'Monday', 2011, 8)
21
+ assert_equal 5, Month.date('Fourth Last', 'Monday', 2011, 9)
22
+ assert_equal 2, Month.date('First', 'Sunday', 2011, 1)
23
+ assert_equal 13, Month.date('Second', 'Sunday', 2011, 2)
24
+ assert_equal 20, Month.date('Third', 'Sunday', 2011, 3)
25
+ assert_equal 24, Month.date('Fourth', 'Sunday', 2011, 4)
26
+ assert_equal 29, Month.date('Fifth', 'Sunday', 2011, 5)
27
+ assert_equal 26, Month.date('Last', 'Sunday', 2011, 6)
28
+ assert_equal 24, Month.date('Second Last', 'Sunday', 2011, 7)
29
+ assert_equal 14, Month.date('Third Last', 'Sunday', 2011, 8)
30
+ assert_equal 4, Month.date('Fourth Last', 'Sunday', 2011, 9)
31
+ end
32
+
33
+ end
@@ -0,0 +1,325 @@
1
+ # test/tc_Month_self.dates.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.dates'
8
+ end
9
+
10
+ class TC_Month_self_dates < Minitest::Test
11
+
12
+ def test_no_day
13
+ assert_equal (1..31).collect{|date| date}, Month.dates(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.dates(2006, 10, :date_objects => true)
18
+ end
19
+
20
+ def test_day_capitalized_long
21
+ assert_equal [1, 8, 15, 22, 29], Month.dates(2006, 10, :day => 'Sunday')
22
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 'Monday')
23
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 'Tuesday')
24
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 'Wednesday')
25
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 'Thursday')
26
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 'Friday')
27
+ assert_equal [7, 14, 21, 28], Month.dates(2006, 10, :day => 'Saturday')
28
+ end
29
+
30
+ def test_day_downcase_long
31
+ assert_equal [1, 8, 15, 22, 29], Month.dates(2006, 10 , :day => 'sunday')
32
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 'monday')
33
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 'tuesday')
34
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 'wednesday')
35
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 'thursday')
36
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 'friday')
37
+ assert_equal [7, 14, 21, 28], Month.dates(2006, 10, :day => 'saturday')
38
+ end
39
+
40
+ def test_day_capitalized_short
41
+ assert_equal [1, 8, 15, 22, 29], Month.dates(2006, 10, :day => 'Sun')
42
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 'Mon')
43
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 'Tue')
44
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 'Wed')
45
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 'Thu')
46
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 'Fri')
47
+ assert_equal [7, 14, 21, 28], Month.dates(2006, 10, :day => 'Sat')
48
+ end
49
+
50
+ def test_day_downcase_short
51
+ assert_equal [1, 8, 15, 22, 29], Month.dates(2006, 10, :day => 'sun')
52
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 'mon')
53
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 'tue')
54
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 'wed')
55
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 'thu')
56
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 'fri')
57
+ assert_equal [7, 14, 21, 28], Month.dates(2006, 10, :day => 'sat')
58
+ end
59
+
60
+ def test_day_as_num_as_num
61
+ assert_equal [1, 8, 15, 22, 29], Month.dates(2006, 10, :day => 0)
62
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 1)
63
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 2)
64
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 3)
65
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 4)
66
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 5)
67
+ assert_equal [7, 14, 21, 28], Month.dates(2006, 10, :day => 6)
68
+ end
69
+
70
+ def test_day_as_num_as_string
71
+ assert_equal [1, 8, 15, 22, 29], Month.dates(2006, 10, :day => '0')
72
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => '1')
73
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => '2')
74
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => '3')
75
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => '4')
76
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => '5')
77
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 10, :day => 'Sunday')
82
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 'Monday')
83
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 'Tuesday')
84
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 'Wednesday')
85
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 'Thursday')
86
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 'Friday')
87
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 10, :day => 'sunday')
92
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 'monday')
93
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 'tuesday')
94
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 'wednesday')
95
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 'thursday')
96
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 'friday')
97
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 10, :day => 'Sun')
102
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 'Mon')
103
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 'Tue')
104
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 'Wed')
105
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 'Thu')
106
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 'Fri')
107
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 10, :day => 'sun')
112
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 'mon')
113
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 'tue')
114
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 'wed')
115
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 'thu')
116
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 'fri')
117
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 10, :day => 0)
122
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => 1)
123
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => 2)
124
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => 3)
125
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => 4)
126
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => 5)
127
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 10, :day => '0')
132
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 10, :day => '1')
133
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 10, :day => '2')
134
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 10, :day => '3')
135
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 10, :day => '4')
136
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 10, :day => '5')
137
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, '10', :day => 'Sunday')
142
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, '10', :day => 'Monday')
143
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, '10', :day => 'Tuesday')
144
+ assert_equal [4, 11, 18, 25], Month.dates(2006, '10', :day => 'Wednesday')
145
+ assert_equal [5, 12, 19, 26], Month.dates(2006, '10', :day => 'Thursday')
146
+ assert_equal [6, 13, 20, 27], Month.dates(2006, '10', :day => 'Friday')
147
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, '10', :day => 'sunday')
152
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, '10', :day => 'monday')
153
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, '10', :day => 'tuesday')
154
+ assert_equal [4, 11, 18, 25], Month.dates(2006, '10', :day => 'wednesday')
155
+ assert_equal [5, 12, 19, 26], Month.dates(2006, '10', :day => 'thursday')
156
+ assert_equal [6, 13, 20, 27], Month.dates(2006, '10', :day => 'friday')
157
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, '10', :day => 'Sun')
162
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, '10', :day => 'Mon')
163
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, '10', :day => 'Tue')
164
+ assert_equal [4, 11, 18, 25], Month.dates(2006, '10', :day => 'Wed')
165
+ assert_equal [5, 12, 19, 26], Month.dates(2006, '10', :day => 'Thu')
166
+ assert_equal [6, 13, 20, 27], Month.dates(2006, '10', :day => 'Fri')
167
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, '10', :day => 'sun')
172
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, '10', :day => 'mon')
173
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, '10', :day => 'tue')
174
+ assert_equal [4, 11, 18, 25], Month.dates(2006, '10', :day => 'wed')
175
+ assert_equal [5, 12, 19, 26], Month.dates(2006, '10', :day => 'thu')
176
+ assert_equal [6, 13, 20, 27], Month.dates(2006, '10', :day => 'fri')
177
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, '10', :day => 0)
182
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, '10', :day => 1)
183
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, '10', :day => 2)
184
+ assert_equal [4, 11, 18, 25], Month.dates(2006, '10', :day => 3)
185
+ assert_equal [5, 12, 19, 26], Month.dates(2006, '10', :day => 4)
186
+ assert_equal [6, 13, 20, 27], Month.dates(2006, '10', :day => 5)
187
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, '10', :day => '0')
192
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, '10', :day => '1')
193
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, '10', :day => '2')
194
+ assert_equal [4, 11, 18, 25], Month.dates(2006, '10', :day => '3')
195
+ assert_equal [5, 12, 19, 26], Month.dates(2006, '10', :day => '4')
196
+ assert_equal [6, 13, 20, 27], Month.dates(2006, '10', :day => '5')
197
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'October', :day => 'Sunday')
202
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'October', :day => 'Monday')
203
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'October', :day => 'Tuesday')
204
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'October', :day => 'Wednesday')
205
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'October', :day => 'Thursday')
206
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'October', :day => 'Friday')
207
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'October', :day => 'sunday')
212
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'October', :day => 'monday')
213
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'October', :day => 'tuesday')
214
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'October', :day => 'wednesday')
215
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'October', :day => 'thursday')
216
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'October', :day => 'friday')
217
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'October', :day => 'Sun')
222
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'October', :day => 'Mon')
223
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'October', :day => 'Tue')
224
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'October', :day => 'Wed')
225
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'October', :day => 'Thu')
226
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'October', :day => 'Fri')
227
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'October', :day => 'sun')
232
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'October', :day => 'mon')
233
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'October', :day => 'tue')
234
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'October', :day => 'wed')
235
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'October', :day => 'thu')
236
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'October', :day => 'fri')
237
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'October', :day => 0)
242
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'October', :day => 1)
243
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'October', :day => 2)
244
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'October', :day => 3)
245
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'October', :day => 4)
246
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'October', :day => 5)
247
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'October', :day => '0')
252
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'October', :day => '1')
253
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'October', :day => '2')
254
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'October', :day => '3')
255
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'October', :day => '4')
256
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'October', :day => '5')
257
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'Oct', :day => 'Sunday')
262
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'Oct', :day => 'Monday')
263
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'Oct', :day => 'Tuesday')
264
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'Oct', :day => 'Wednesday')
265
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'Oct', :day => 'Thursday')
266
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'Oct', :day => 'Friday')
267
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'Oct', :day => 'sunday')
272
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'Oct', :day => 'monday')
273
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'Oct', :day => 'tuesday')
274
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'Oct', :day => 'wednesday')
275
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'Oct', :day => 'thursday')
276
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'Oct', :day => 'friday')
277
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'Oct', :day => 'Sun')
282
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'Oct', :day => 'Mon')
283
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'Oct', :day => 'Tue')
284
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'Oct', :day => 'Wed')
285
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'Oct', :day => 'Thu')
286
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'Oct', :day => 'Fri')
287
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'Oct', :day => 'sun')
292
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'Oct', :day => 'mon')
293
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'Oct', :day => 'tue')
294
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'Oct', :day => 'wed')
295
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'Oct', :day => 'thu')
296
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'Oct', :day => 'fri')
297
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'Oct', :day => 0)
302
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'Oct', :day => 1)
303
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'Oct', :day => 2)
304
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'Oct', :day => 3)
305
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'Oct', :day => 4)
306
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'Oct', :day => 5)
307
+ assert_equal [7, 14, 21, 28], Month.dates(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.dates(2006, 'Oct', :day => '0')
312
+ assert_equal [2, 9, 16, 23, 30], Month.dates(2006, 'Oct', :day => '1')
313
+ assert_equal [3, 10, 17, 24, 31], Month.dates(2006, 'Oct', :day => '2')
314
+ assert_equal [4, 11, 18, 25], Month.dates(2006, 'Oct', :day => '3')
315
+ assert_equal [5, 12, 19, 26], Month.dates(2006, 'Oct', :day => '4')
316
+ assert_equal [6, 13, 20, 27], Month.dates(2006, 'Oct', :day => '5')
317
+ assert_equal [7, 14, 21, 28], Month.dates(2006, 'Oct', :day => '6')
318
+ end
319
+
320
+ def test_crap
321
+ assert_nil Month.dates('random')
322
+ assert_nil Month.dates(32)
323
+ end
324
+
325
+ end
@@ -0,0 +1,226 @@
1
+ # test/tc_Month_self.day.rb
2
+
3
+ class TC_Month_self_day < Minitest::Test
4
+
5
+ def test_num_as_num
6
+ assert_equal 'Sunday', Month.day(1, 10, 2006)
7
+ assert_equal 'Monday', Month.day(2, 10, 2006)
8
+ assert_equal 'Tuesday', Month.day(3, 10, 2006)
9
+ assert_equal 'Wednesday', Month.day(4, 10, 2006)
10
+ assert_equal 'Thursday', Month.day(5, 10, 2006)
11
+ assert_equal 'Friday', Month.day(6, 10, 2006)
12
+ assert_equal 'Saturday', Month.day(7, 10, 2006)
13
+ assert_equal 'Sunday', Month.day(8, 10, 2006)
14
+ assert_equal 'Monday', Month.day(9, 10, 2006)
15
+ assert_equal 'Tuesday', Month.day(10, 10, 2006)
16
+ assert_equal 'Wednesday', Month.day(11, 10, 2006)
17
+ assert_equal 'Thursday', Month.day(12, 10, 2006)
18
+ assert_equal 'Friday', Month.day(13, 10, 2006)
19
+ assert_equal 'Saturday', Month.day(14, 10, 2006)
20
+ assert_equal 'Sunday', Month.day(15, 10, 2006)
21
+ assert_equal 'Monday', Month.day(16, 10, 2006)
22
+ assert_equal 'Tuesday', Month.day(17, 10, 2006)
23
+ assert_equal 'Wednesday', Month.day(18, 10, 2006)
24
+ assert_equal 'Thursday', Month.day(19, 10, 2006)
25
+ assert_equal 'Friday', Month.day(20, 10, 2006)
26
+ assert_equal 'Saturday', Month.day(21, 10, 2006)
27
+ assert_equal 'Sunday', Month.day(22, 10, 2006)
28
+ assert_equal 'Monday', Month.day(23, 10, 2006)
29
+ assert_equal 'Tuesday', Month.day(24, 10, 2006)
30
+ assert_equal 'Wednesday', Month.day(25, 10, 2006)
31
+ assert_equal 'Thursday', Month.day(26, 10, 2006)
32
+ assert_equal 'Friday', Month.day(27, 10, 2006)
33
+ assert_equal 'Saturday', Month.day(28, 10, 2006)
34
+ assert_equal 'Sunday', Month.day(29, 10, 2006)
35
+ assert_equal 'Monday', Month.day(30, 10, 2006)
36
+ assert_equal 'Tuesday', Month.day(31, 10, 2006)
37
+ assert_equal 'Wednesday', Month.day(1, 11, 2006)
38
+ end
39
+
40
+ def test_num_as_string
41
+ assert_equal 'Sunday', Month.day('1', '10', '2006')
42
+ assert_equal 'Monday', Month.day('2', '10', '2006')
43
+ assert_equal 'Tuesday', Month.day('3', '10', '2006')
44
+ assert_equal 'Wednesday', Month.day('4', '10', '2006')
45
+ assert_equal 'Thursday', Month.day('5', '10', '2006')
46
+ assert_equal 'Friday', Month.day('6', '10', '2006')
47
+ assert_equal 'Saturday', Month.day('7', '10', '2006')
48
+ assert_equal 'Sunday', Month.day('8', '10', '2006')
49
+ assert_equal 'Monday', Month.day('9', '10', '2006')
50
+ assert_equal 'Tuesday', Month.day('10', '10', '2006')
51
+ assert_equal 'Wednesday', Month.day('11', '10', '2006')
52
+ assert_equal 'Thursday', Month.day('12', '10', '2006')
53
+ assert_equal 'Friday', Month.day('13', '10', '2006')
54
+ assert_equal 'Saturday', Month.day('14', '10', '2006')
55
+ assert_equal 'Sunday', Month.day('15', '10', '2006')
56
+ assert_equal 'Monday', Month.day('16', '10', '2006')
57
+ assert_equal 'Tuesday', Month.day('17', '10', '2006')
58
+ assert_equal 'Wednesday', Month.day('18', '10', '2006')
59
+ assert_equal 'Thursday', Month.day('19', '10', '2006')
60
+ assert_equal 'Friday', Month.day('20', '10', '2006')
61
+ assert_equal 'Saturday', Month.day('21', '10', '2006')
62
+ assert_equal 'Sunday', Month.day('22', '10', '2006')
63
+ assert_equal 'Monday', Month.day('23', '10', '2006')
64
+ assert_equal 'Tuesday', Month.day('24', '10', '2006')
65
+ assert_equal 'Wednesday', Month.day('25', '10', '2006')
66
+ assert_equal 'Thursday', Month.day('26', '10', '2006')
67
+ assert_equal 'Friday', Month.day('27', '10', '2006')
68
+ assert_equal 'Saturday', Month.day('28', '10', '2006')
69
+ assert_equal 'Sunday', Month.day('29', '10', '2006')
70
+ assert_equal 'Monday', Month.day('30', '10', '2006')
71
+ assert_equal 'Tuesday', Month.day('31', '10', '2006')
72
+ assert_equal 'Wednesday', Month.day('1', '11', '2006')
73
+ end
74
+
75
+ def test_num_as_num
76
+ if Date.today.year == 2006 || Date.today.year == 1992 || Date.today.year == 2020
77
+ assert_equal 'Sunday', Month.day(1, 10)
78
+ assert_equal 'Monday', Month.day(2, 10)
79
+ assert_equal 'Tuesday', Month.day(3, 10)
80
+ assert_equal 'Wednesday', Month.day(4, 10)
81
+ assert_equal 'Thursday', Month.day(5, 10)
82
+ assert_equal 'Friday', Month.day(6, 10)
83
+ assert_equal 'Saturday', Month.day(7, 10)
84
+ assert_equal 'Sunday', Month.day(8, 10)
85
+ assert_equal 'Monday', Month.day(9, 10)
86
+ assert_equal 'Tuesday', Month.day(10, 10)
87
+ assert_equal 'Wednesday', Month.day(11, 10)
88
+ assert_equal 'Thursday', Month.day(12, 10)
89
+ assert_equal 'Friday', Month.day(13, 10)
90
+ assert_equal 'Saturday', Month.day(14, 10)
91
+ assert_equal 'Sunday', Month.day(15, 10)
92
+ assert_equal 'Monday', Month.day(16, 10)
93
+ assert_equal 'Tuesday', Month.day(17, 10)
94
+ assert_equal 'Wednesday', Month.day(18, 10)
95
+ assert_equal 'Thursday', Month.day(19, 10)
96
+ assert_equal 'Friday', Month.day(20, 10)
97
+ assert_equal 'Saturday', Month.day(21, 10)
98
+ assert_equal 'Sunday', Month.day(22, 10)
99
+ assert_equal 'Monday', Month.day(23, 10)
100
+ assert_equal 'Tuesday', Month.day(24, 10)
101
+ assert_equal 'Wednesday', Month.day(25, 10)
102
+ assert_equal 'Thursday', Month.day(26, 10)
103
+ assert_equal 'Friday', Month.day(27, 10)
104
+ assert_equal 'Saturday', Month.day(28, 10)
105
+ assert_equal 'Sunday', Month.day(29, 10)
106
+ assert_equal 'Monday', Month.day(30, 10)
107
+ assert_equal 'Tuesday', Month.day(31, 10)
108
+ assert_equal 'Wednesday', Month.day(1, 11)
109
+ end
110
+ end
111
+
112
+ def test_num_as_string
113
+ if Date.today.year == 2006 || Date.today.year == 1992 || Date.today.year == 2020
114
+ assert_equal 'Sunday', Month.day('1', '10')
115
+ assert_equal 'Monday', Month.day('2', '10')
116
+ assert_equal 'Tuesday', Month.day('3', '10')
117
+ assert_equal 'Wednesday', Month.day('4', '10')
118
+ assert_equal 'Thursday', Month.day('5', '10')
119
+ assert_equal 'Friday', Month.day('6', '10')
120
+ assert_equal 'Saturday', Month.day('7', '10')
121
+ assert_equal 'Sunday', Month.day('8', '10')
122
+ assert_equal 'Monday', Month.day('9', '10')
123
+ assert_equal 'Tuesday', Month.day('10', '10')
124
+ assert_equal 'Wednesday', Month.day('11', '10')
125
+ assert_equal 'Thursday', Month.day('12', '10')
126
+ assert_equal 'Friday', Month.day('13', '10')
127
+ assert_equal 'Saturday', Month.day('14', '10')
128
+ assert_equal 'Sunday', Month.day('15', '10')
129
+ assert_equal 'Monday', Month.day('16', '10')
130
+ assert_equal 'Tuesday', Month.day('17', '10')
131
+ assert_equal 'Wednesday', Month.day('18', '10')
132
+ assert_equal 'Thursday', Month.day('19', '10')
133
+ assert_equal 'Friday', Month.day('20', '10')
134
+ assert_equal 'Saturday', Month.day('21', '10')
135
+ assert_equal 'Sunday', Month.day('22', '10')
136
+ assert_equal 'Monday', Month.day('23', '10')
137
+ assert_equal 'Tuesday', Month.day('24', '10')
138
+ assert_equal 'Wednesday', Month.day('25', '10')
139
+ assert_equal 'Thursday', Month.day('26', '10')
140
+ assert_equal 'Friday', Month.day('27', '10')
141
+ assert_equal 'Saturday', Month.day('28', '10')
142
+ assert_equal 'Sunday', Month.day('29', '10')
143
+ assert_equal 'Monday', Month.day('30', '10')
144
+ assert_equal 'Tuesday', Month.day('31', '10')
145
+ assert_equal 'Wednesday', Month.day('1', '11')
146
+ end
147
+ end
148
+
149
+ def test_num_as_num_with_defaults
150
+ if Date.today.year == 2006 && Date.today.month == 10
151
+ assert_equal 'Sunday', Month.day(1)
152
+ assert_equal 'Monday', Month.day(2)
153
+ assert_equal 'Tuesday', Month.day(3)
154
+ assert_equal 'Wednesday', Month.day(4)
155
+ assert_equal 'Thursday', Month.day(5)
156
+ assert_equal 'Friday', Month.day(6)
157
+ assert_equal 'Saturday', Month.day(7)
158
+ assert_equal 'Sunday', Month.day(8)
159
+ assert_equal 'Monday', Month.day(9)
160
+ assert_equal 'Tuesday', Month.day(10)
161
+ assert_equal 'Wednesday', Month.day(11)
162
+ assert_equal 'Thursday', Month.day(12)
163
+ assert_equal 'Friday', Month.day(13)
164
+ assert_equal 'Saturday', Month.day(14)
165
+ assert_equal 'Sunday', Month.day(15)
166
+ assert_equal 'Monday', Month.day(16)
167
+ assert_equal 'Tuesday', Month.day(17)
168
+ assert_equal 'Wednesday', Month.day(18)
169
+ assert_equal 'Thursday', Month.day(19)
170
+ assert_equal 'Friday', Month.day(20)
171
+ assert_equal 'Saturday', Month.day(21)
172
+ assert_equal 'Sunday', Month.day(22)
173
+ assert_equal 'Monday', Month.day(23)
174
+ assert_equal 'Tuesday', Month.day(24)
175
+ assert_equal 'Wednesday', Month.day(25)
176
+ assert_equal 'Thursday', Month.day(26)
177
+ assert_equal 'Friday', Month.day(27)
178
+ assert_equal 'Saturday', Month.day(28)
179
+ assert_equal 'Sunday', Month.day(29)
180
+ assert_equal 'Monday', Month.day(30)
181
+ assert_equal 'Tuesday', Month.day(31)
182
+ end
183
+ end
184
+
185
+ def test_num_as_string_with_defaults
186
+ if Date.today.year == 2006 && Date.today.month == 10
187
+ assert_equal 'Sunday', Month.day('1')
188
+ assert_equal 'Monday', Month.day('2')
189
+ assert_equal 'Tuesday', Month.day('3')
190
+ assert_equal 'Wednesday', Month.day('4')
191
+ assert_equal 'Thursday', Month.day('5')
192
+ assert_equal 'Friday', Month.day('6')
193
+ assert_equal 'Saturday', Month.day('7')
194
+ assert_equal 'Sunday', Month.day('8')
195
+ assert_equal 'Monday', Month.day('9')
196
+ assert_equal 'Tuesday', Month.day('10')
197
+ assert_equal 'Wednesday', Month.day('11')
198
+ assert_equal 'Thursday', Month.day('12')
199
+ assert_equal 'Friday', Month.day('13')
200
+ assert_equal 'Saturday', Month.day('14')
201
+ assert_equal 'Sunday', Month.day('15')
202
+ assert_equal 'Monday', Month.day('16')
203
+ assert_equal 'Tuesday', Month.day('17')
204
+ assert_equal 'Wednesday', Month.day('18')
205
+ assert_equal 'Thursday', Month.day('19')
206
+ assert_equal 'Friday', Month.day('20')
207
+ assert_equal 'Saturday', Month.day('21')
208
+ assert_equal 'Sunday', Month.day('22')
209
+ assert_equal 'Monday', Month.day('23')
210
+ assert_equal 'Tuesday', Month.day('24')
211
+ assert_equal 'Wednesday', Month.day('25')
212
+ assert_equal 'Thursday', Month.day('26')
213
+ assert_equal 'Friday', Month.day('27')
214
+ assert_equal 'Saturday', Month.day('28')
215
+ assert_equal 'Sunday', Month.day('29')
216
+ assert_equal 'Monday', Month.day('30')
217
+ assert_equal 'Tuesday', Month.day('31')
218
+ end
219
+ end
220
+
221
+ def test_crap
222
+ assert_nil Month.day('random')
223
+ assert_nil Month.day(32)
224
+ end
225
+
226
+ end