week_of_month 1.2.3.4 → 1.2.4

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.
@@ -0,0 +1,201 @@
1
+ #!/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'test/unit'
5
+ RUBY_VERSION < '1.9' ? require('lib/week_of_month') : require_relative('../../../week_of_month')
6
+
7
+ class TestWeekForDate < Test::Unit::TestCase
8
+ def test_week_of_month
9
+ assert_equal 5, Date.new(2013, 1, 31).week_of_month
10
+
11
+ assert_equal 5, Date.new(2013, 2, 28).week_of_month
12
+
13
+ assert_equal 6, Date.new(2013, 3, 31).week_of_month
14
+
15
+ assert_equal 5, Date.new(2013, 4, 30).week_of_month
16
+
17
+ assert_equal 5, Date.new(2013, 5, 31).week_of_month
18
+
19
+ assert_equal 6, Date.new(2013, 6, 30).week_of_month
20
+
21
+ assert_equal 5, Date.new(2013, 7, 31).week_of_month
22
+
23
+ assert_equal 5, Date.new(2013, 8, 31).week_of_month
24
+
25
+ assert_equal 5, Date.new(2013, 9, 30).week_of_month
26
+
27
+ assert_equal 5, Date.new(2013, 10, 31).week_of_month
28
+
29
+ assert_equal 5, Date.new(2013, 11, 30).week_of_month
30
+
31
+ assert_equal 5, Date.new(2013, 12, 31).week_of_month
32
+ end
33
+
34
+ def test_general_week_of_month
35
+ assert_equal 4, Date.new(2013, 1, 31).general_week_of_month
36
+
37
+ assert_equal 4, Date.new(2013, 2, 28).general_week_of_month
38
+
39
+ assert_equal 5, Date.new(2013, 3, 31).general_week_of_month
40
+
41
+ assert_equal 4, Date.new(2013, 4, 30).general_week_of_month
42
+
43
+ assert_equal 4, Date.new(2013, 5, 31).general_week_of_month
44
+
45
+ assert_equal 5, Date.new(2013, 6, 30).general_week_of_month
46
+
47
+ assert_equal 4, Date.new(2013, 7, 31).general_week_of_month
48
+
49
+ assert_equal 4, Date.new(2013, 8, 31).general_week_of_month
50
+
51
+ assert_equal 5, Date.new(2013, 9, 30).general_week_of_month
52
+
53
+ assert_equal 4, Date.new(2013, 10, 31).general_week_of_month
54
+
55
+ assert_equal 4, Date.new(2013, 11, 30).general_week_of_month
56
+
57
+ assert_equal 5, Date.new(2013, 12, 31).general_week_of_month
58
+ end
59
+
60
+ def test_week_split
61
+ object = Date.new(2013, 1, 10)
62
+ split_for_january = [[nil, nil, 1, 2, 3, 4, 5],
63
+ [6, 7, 8, 9, 10, 11, 12],
64
+ [13, 14, 15, 16, 17, 18, 19],
65
+ [20, 21, 22, 23, 24, 25, 26],
66
+ [27, 28, 29, 30, 31]]
67
+ assert_kind_of Array, object.week_split
68
+ assert_equal split_for_january, object.week_split
69
+
70
+ object = Date.new(2013, 2, 15)
71
+ split_for_october = [[nil, nil, nil, nil, nil, 1, 2],
72
+ [3, 4, 5, 6, 7, 8, 9],
73
+ [10, 11, 12, 13, 14, 15, 16],
74
+ [17, 18, 19, 20, 21, 22, 23],
75
+ [24, 25, 26, 27, 28]]
76
+ assert_kind_of Array, object.week_split
77
+ assert_equal split_for_october, object.week_split
78
+ end
79
+
80
+ def test_first_week?
81
+ assert Date.new(2012, 1, 1).first_week?
82
+ assert !Date.new(2012, 1, 31).first_week?
83
+ end
84
+
85
+ def test_second_week?
86
+ assert Date.new(2013, 1, 6).second_week?
87
+ assert !Date.new(2013, 1, 2).second_week?
88
+ end
89
+
90
+ def test_last_week?
91
+ assert Date.new(2012, 10, 31).last_week?
92
+ assert !Date.new(2012, 10, 20).last_week?
93
+ end
94
+
95
+ def test_total_weeks
96
+ assert_equal 5, Date.new(2012, 10, 31).total_weeks
97
+ assert_equal 6, Date.new(2012, 12, 20).total_weeks
98
+ end
99
+
100
+ def test_week_of_month_in_eng
101
+ assert_equal 'First', Date.new(2012, 12, 1).week_of_month_in_eng
102
+ assert_equal 'Second', Date.new(2012, 12, 4).week_of_month_in_eng
103
+ assert_equal 'Third', Date.new(2012, 12, 9).week_of_month_in_eng
104
+ assert_equal 'Fourth', Date.new(2012, 12, 16).week_of_month_in_eng
105
+ assert_equal 'Fifth', Date.new(2012, 12, 24).week_of_month_in_eng
106
+ assert_equal 'Sixth', Date.new(2012, 12, 31).week_of_month_in_eng
107
+ end
108
+
109
+ def test_week_of_month_in_fr
110
+ assert_equal 'Premier', Date.new(2012, 12, 1).week_of_month_in_fr
111
+ assert_equal 'Deuxième', Date.new(2012, 12, 4).week_of_month_in_fr
112
+ assert_equal 'Troisième', Date.new(2012, 12, 9).week_of_month_in_fr
113
+ assert_equal 'Quatrième', Date.new(2012, 12, 16).week_of_month_in_fr
114
+ assert_equal 'Cinquième', Date.new(2012, 12, 24).week_of_month_in_fr
115
+ assert_equal 'Sixième', Date.new(2012, 12, 31).week_of_month_in_fr
116
+ end
117
+
118
+ def test_week_of_month_in_ger
119
+ assert_equal 'First', Date.new(2012, 12, 1).week_of_month_in_ger
120
+ assert_equal 'Second', Date.new(2012, 12, 4).week_of_month_in_ger
121
+ assert_equal 'Dritten', Date.new(2012, 12, 9).week_of_month_in_ger
122
+ assert_equal 'Vierte', Date.new(2012, 12, 16).week_of_month_in_ger
123
+ assert_equal 'Fünfte', Date.new(2012, 12, 24).week_of_month_in_ger
124
+ assert_equal 'Sechste', Date.new(2012, 12, 31).week_of_month_in_ger
125
+ end
126
+
127
+ def test_week_of_month_in_ja
128
+ assert_equal '第一', Date.new(2012, 12, 1).week_of_month_in_ja
129
+ assert_equal '第二', Date.new(2012, 12, 4).week_of_month_in_ja
130
+ assert_equal '第三', Date.new(2012, 12, 9).week_of_month_in_ja
131
+ assert_equal '第四', Date.new(2012, 12, 16).week_of_month_in_ja
132
+ assert_equal '第五', Date.new(2012, 12, 24).week_of_month_in_ja
133
+ assert_equal '第六', Date.new(2012, 12, 31).week_of_month_in_ja
134
+ end
135
+
136
+ def test_week_end?
137
+ assert !Date.new(2012, 10, 1).week_end?
138
+ assert !Date.new(2012, 10, 31).week_end?
139
+ assert Date.new(2012, 10, 6).week_end?
140
+ assert Date.new(2012, 10, 7).week_end?
141
+ end
142
+
143
+ def test_working_day?
144
+ assert Date.new(2012, 10, 1).working_day?
145
+ assert Date.new(2012, 10, 31).working_day?
146
+ assert !Date.new(2012, 10, 6).working_day?
147
+ assert !Date.new(2012, 10, 7).working_day?
148
+ end
149
+
150
+ def test_days_past_in_week
151
+ assert_equal 2, Date.new(2013, 1, 1).days_past_in_week
152
+ end
153
+
154
+ def test_days_left_in_week
155
+ assert_equal 5, Date.new(2013, 1, 1).days_left_in_week
156
+ end
157
+
158
+ def test_beginning_of_week
159
+ assert_equal Date.new(2012, 11, 25), Date.new(2012, 11, 25).beginning_of_week
160
+ assert_equal Date.new(2012, 11, 25), Date.new(2012, 11, 26).beginning_of_week
161
+ assert_equal Date.new(2012, 11, 25), Date.new(2012, 11, 30).beginning_of_week
162
+ end
163
+
164
+ def test_end_of_week
165
+ assert_equal Date.new(2012, 12, 1), Date.new(2012, 12, 1).end_of_week
166
+ assert_equal Date.new(2012, 12, 8), Date.new(2012, 12, 2).end_of_week
167
+ assert_equal Date.new(2012, 12, 8), Date.new(2012, 12, 3).end_of_week
168
+ assert_equal Date.new(2012, 12, 8), Date.new(2012, 12, 7).end_of_week
169
+ end
170
+
171
+ def test_next_week
172
+ assert_equal Date.new(2012, 12, 8), Date.new(2012, 12, 1).next_week
173
+ assert_equal Date.new(2012, 12, 22), Date.new(2012, 12, 15).next_week
174
+ assert_equal Date.new(2013, 1, 5), Date.new(2012, 12, 29).next_week
175
+ assert_equal Date.new(2012, 12, 26), Date.new(2012, 12, 19).next_week
176
+ end
177
+
178
+ def test_previous_week
179
+ assert_equal Date.new(2012, 12, 1), Date.new(2012, 12, 8).previous_week
180
+ assert_equal Date.new(2012, 12, 15), Date.new(2012, 12, 22).previous_week
181
+ assert_equal Date.new(2012, 12, 29), Date.new(2013, 1, 5).previous_week
182
+ assert_equal Date.new(2012, 12, 19), Date.new(2012, 12, 26).previous_week
183
+ end
184
+
185
+ def test_monday_configured_beginning_of_week
186
+ WeekOfMonth.configuration.monday_active = true
187
+ assert_equal Date.new(2012, 11, 19), Date.new(2012, 11, 25).beginning_of_week
188
+ assert_equal Date.new(2012, 11, 26), Date.new(2012, 11, 26).beginning_of_week
189
+ assert_equal Date.new(2012, 11, 26), Date.new(2012, 11, 30).beginning_of_week
190
+ WeekOfMonth.configuration.monday_active = false
191
+ end
192
+
193
+ def test_monday_configured_end_of_week
194
+ WeekOfMonth.configuration.monday_active = true
195
+ assert_equal Date.new(2012, 12, 2), Date.new(2012, 12, 1).end_of_week
196
+ assert_equal Date.new(2012, 12, 2), Date.new(2012, 12, 2).end_of_week
197
+ assert_equal Date.new(2012, 12, 9), Date.new(2012, 12, 3).end_of_week
198
+ assert_equal Date.new(2012, 12, 9), Date.new(2012, 12, 7).end_of_week
199
+ WeekOfMonth.configuration.monday_active = false
200
+ end
201
+ end
@@ -0,0 +1,13 @@
1
+ #!/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ # @author Sachin Singh
5
+
6
+ require 'test/unit'
7
+ RUBY_VERSION < '1.9' ? require('lib/week_of_month') : require_relative('../../../week_of_month')
8
+
9
+ class TestYearForDate < Test::Unit::TestCase
10
+ def test_years_between_dates
11
+ assert_equal 3, Date.years_between_dates(Date.new(2015, 11, 1), Date.new(2012, 11, 15))
12
+ end
13
+ end
@@ -0,0 +1,58 @@
1
+ #!/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'test/unit'
5
+ RUBY_VERSION < '1.9' ? require('lib/week_of_month') : require_relative('../../../week_of_month')
6
+
7
+ class TestConstantForTime < Test::Unit::TestCase
8
+ def test_constants_present?
9
+ assert Time::WEEK_OF_MONTH_IN_ENG
10
+
11
+ assert Time::WEEK_OF_MONTH_IN_GER
12
+
13
+ assert Time::WEEK_OF_MONTH_IN_FR
14
+
15
+ assert Time::WEEK_OF_MONTH_IN_JA
16
+
17
+ assert Time::MONTH_WITH_DAY
18
+
19
+ assert Time::MONTH_WITH_SEQUENCE
20
+
21
+ assert Time::DAYS_IN_SEQUENCE
22
+ end
23
+
24
+ def test_constants_value
25
+ assert_equal({ 1 => 'First', 2 => 'Second',
26
+ 3 => 'Third', 4 => 'Fourth',
27
+ 5 => 'Fifth', 6 => 'Sixth',
28
+ 7 => 'Seventh' }, Time::WEEK_OF_MONTH_IN_ENG)
29
+
30
+ assert_equal({ 1 => 'Premier', 2 => 'Deuxième',
31
+ 3 => 'Troisième', 4 => 'Quatrième',
32
+ 5 => 'Cinquième', 6 => 'Sixième',
33
+ 7 => 'Septième' }, Time::WEEK_OF_MONTH_IN_FR)
34
+
35
+ assert_equal({ 1 => 'First', 2 => 'Second',
36
+ 3 => 'Dritten', 4 => 'Vierte',
37
+ 5 => 'Fünfte', 6 => 'Sechste',
38
+ 7 => 'siebte' }, Time::WEEK_OF_MONTH_IN_GER)
39
+
40
+ assert_equal({ 1 => '第一', 2 => '第二',
41
+ 3 => '第三', 4 => '第四',
42
+ 5 => '第五', 6 => '第六',
43
+ 7 => '第七' }, Time::WEEK_OF_MONTH_IN_JA)
44
+
45
+ assert_equal({ january: 1, february: 2, march: 3,
46
+ april: 4, may: 5, june: 6, july: 7,
47
+ august: 8, september: 9, october: 10,
48
+ november: 11, december: 12 }, Time::MONTH_WITH_SEQUENCE)
49
+
50
+ assert_equal({ january: 31, february: 28, march: 31,
51
+ april: 30, may: 31, june: 30, july: 31,
52
+ august: 31, september: 30, october: 31,
53
+ november: 30, december: 31 }, Time::MONTH_WITH_DAY)
54
+
55
+ assert_equal(%w[Sunday Monday Tuesday Wednesday Thursday Friday Saturday],
56
+ Time::DAYS_IN_SEQUENCE)
57
+ end
58
+ end
@@ -0,0 +1,121 @@
1
+ #!/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'test/unit'
5
+
6
+ RUBY_VERSION < '1.9' ? require('lib/week_of_month') : require_relative('../../../week_of_month')
7
+ class TestDayForTime < Test::Unit::TestCase
8
+ def test_days_array
9
+ object = Time.new(2012, 2, 8)
10
+
11
+ days_array_for_february = [nil, nil, nil, 1, 2, 3, 4, 5,
12
+ 6, 7, 8, 9, 10, 11, 12, 13, 14,
13
+ 15, 16, 17, 18, 19, 20, 21, 22,
14
+ 23, 24, 25, 26, 27, 28, 29]
15
+ assert_kind_of Array, object.days_array
16
+ assert_equal days_array_for_february, object.days_array
17
+
18
+ object = Time.new(2012, 7, 1)
19
+ days_array_for_july = [1, 2, 3, 4, 5, 6, 7,
20
+ 8, 9, 10, 11, 12, 13,
21
+ 14, 15, 16, 17, 18, 19,
22
+ 20, 21, 22, 23, 24, 25,
23
+ 26, 27, 28, 29, 30, 31]
24
+ assert_kind_of Array, object.days_array
25
+ assert_equal days_array_for_july, object.days_array
26
+ end
27
+
28
+ def test_days_array_monday
29
+ WeekOfMonth.configuration.monday_active = true
30
+ object = Time.new(2014, 11, 3)
31
+
32
+ days_array_for_november = [nil, nil, nil, nil, nil, 1, 2,
33
+ 3, 4, 5, 6, 7, 8, 9, 10, 11,
34
+ 12, 13, 14, 15, 16, 17, 18,
35
+ 19, 20, 21, 22, 23, 24, 25, 26,
36
+ 27, 28, 29, 30]
37
+ assert_kind_of Array, object.days_array
38
+ assert_equal days_array_for_november, object.days_array
39
+
40
+ object = Time.new(2014, 12, 1)
41
+ days_array_for_december = [1, 2, 3, 4, 5, 6, 7,
42
+ 8, 9, 10, 11, 12, 13,
43
+ 14, 15, 16, 17, 18, 19,
44
+ 20, 21, 22, 23, 24, 25,
45
+ 26, 27, 28, 29, 30, 31]
46
+ assert_kind_of Array, object.days_array
47
+ assert_equal days_array_for_december, object.days_array
48
+ end
49
+
50
+ def test_name_of_week_day
51
+ WeekOfMonth.configuration.monday_active = false
52
+ assert_equal 'Saturday', Time.new(2012, 12, 1).name_of_week_day
53
+ assert_equal 'Sunday', Time.new(2012, 12, 2).name_of_week_day
54
+ assert_equal 'Monday', Time.new(2012, 12, 3).name_of_week_day
55
+ assert_equal 'Tuesday', Time.new(2012, 12, 4).name_of_week_day
56
+ assert_equal 'Wednesday', Time.new(2012, 12, 5).name_of_week_day
57
+ assert_equal 'Thursday', Time.new(2012, 12, 6).name_of_week_day
58
+ assert_equal 'Friday', Time.new(2012, 12, 7).name_of_week_day
59
+ end
60
+
61
+ def test_upcoming_sunday
62
+ assert_equal Time.new(2013, 1, 6), Time.new(2013, 1, 1).upcoming_sunday
63
+ assert_equal Time.new(2013, 1, 6), Time.new(2013, 1, 5).upcoming_sunday
64
+ assert_equal Time.new(2013, 1, 13), Time.new(2013, 1, 7).upcoming_sunday
65
+ assert_equal Time.new(2013, 1, 6), Time.new(2012, 12, 30).upcoming_sunday
66
+ end
67
+
68
+ def test_upcoming_monday
69
+ assert_equal Time.new(2013, 1, 7), Time.new(2013, 1, 1).upcoming_monday
70
+ end
71
+
72
+ def test_upcoming_tuesday
73
+ assert_equal Time.new(2013, 1, 8), Time.new(2013, 1, 1).upcoming_tuesday
74
+ end
75
+
76
+ def test_upcoming_wednesday
77
+ assert_equal Time.new(2013, 1, 2), Time.new(2013, 1, 1).upcoming_wednesday
78
+ end
79
+
80
+ def test_upcoming_thursday
81
+ assert_equal Time.new(2013, 1, 3), Time.new(2013, 1, 1).upcoming_thursday
82
+ end
83
+
84
+ def test_upcoming_friday
85
+ assert_equal Time.new(2013, 1, 4), Time.new(2013, 1, 1).upcoming_friday
86
+ end
87
+
88
+ def test_upcoming_saturday
89
+ assert_equal Time.new(2013, 1, 5), Time.new(2013, 1, 1).upcoming_saturday
90
+ end
91
+
92
+ def test_previous_saturday
93
+ assert_equal Time.new(2012, 12, 29), Time.new(2013, 1, 1).previous_saturday
94
+ end
95
+
96
+ def test_previous_friday
97
+ assert_equal Time.new(2012, 12, 28), Time.new(2013, 1, 1).previous_friday
98
+ end
99
+
100
+ def test_previous_thursday
101
+ assert_equal Time.new(2012, 12, 27), Time.new(2013, 1, 1).previous_thursday
102
+ end
103
+
104
+ def test_previous_wednesday
105
+ assert_equal Time.new(2012, 12, 26), Time.new(2013, 1, 1).previous_wednesday
106
+ end
107
+
108
+ def test_previous_tuesday
109
+ assert_equal Time.new(2012, 12, 25), Time.new(2013, 1, 1).previous_tuesday
110
+ end
111
+
112
+ def test_previous_monday
113
+ assert_equal Time.new(2012, 12, 31), Time.new(2013, 1, 1).previous_monday
114
+ end
115
+
116
+ def test_previous_sunday
117
+ assert_equal Time.new(2012, 12, 30), Time.new(2013, 1, 1).previous_sunday
118
+ assert_equal Time.new(2012, 12, 30), Time.new(2013, 1, 1).previous_sunday
119
+ end
120
+
121
+ end
@@ -0,0 +1,166 @@
1
+ #!/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'test/unit'
5
+
6
+ if RUBY_VERSION < '1.9'
7
+ require('lib/week_of_month')
8
+ else
9
+ require_relative('../../../week_of_month')
10
+ end
11
+
12
+ class TestMonthForTime < Test::Unit::TestCase
13
+ def test_month?
14
+ assert Time.new(2012, 1, 1).january?
15
+
16
+ assert Time.new(2012, 2, 1).february?
17
+
18
+ assert Time.new(2012, 3, 1).march?
19
+
20
+ assert Time.new(2012, 4, 1).april?
21
+
22
+ assert Time.new(2012, 5, 1).may?
23
+
24
+ assert Time.new(2012, 6, 1).june?
25
+
26
+ assert Time.new(2012, 7, 1).july?
27
+
28
+ assert Time.new(2012, 8, 1).august?
29
+
30
+ assert Time.new(2012, 9, 1).september?
31
+
32
+ assert Time.new(2012, 10, 1).october?
33
+
34
+ assert Time.new(2012, 11, 1).november?
35
+
36
+ assert Time.new(2012, 12, 1).december?
37
+ end
38
+
39
+ def test_last_day_of_month
40
+ assert_equal 31, Time.new(2012, 1, 31).last_day_of_month
41
+
42
+ assert_equal 29, Time.new(2012, 2, 29).last_day_of_month
43
+
44
+ assert_equal 31, Time.new(2012, 3, 31).last_day_of_month
45
+
46
+ assert_equal 30, Time.new(2012, 4, 30).last_day_of_month
47
+
48
+ assert_equal 31, Time.new(2012, 5, 31).last_day_of_month
49
+
50
+ assert_equal 30, Time.new(2012, 6, 30).last_day_of_month
51
+
52
+ assert_equal 31, Time.new(2012, 7, 31).last_day_of_month
53
+
54
+ assert_equal 31, Time.new(2012, 8, 31).last_day_of_month
55
+
56
+ assert_equal 30, Time.new(2012, 9, 30).last_day_of_month
57
+
58
+ assert_equal 31, Time.new(2012, 10, 31).last_day_of_month
59
+
60
+ assert_equal 30, Time.new(2012, 11, 30).last_day_of_month
61
+
62
+ assert_equal 31, Time.new(2012, 12, 31).last_day_of_month
63
+ end
64
+
65
+ def test_end_of_month
66
+ assert_equal Time.new(2012, 1, 31), Time.new(2012, 1, 1).end_of_month
67
+
68
+ assert_equal Time.new(2012, 2, 29), Time.new(2012, 2, 2).end_of_month
69
+
70
+ assert_equal Time.new(2012, 3, 31), Time.new(2012, 3, 1).end_of_month
71
+
72
+ assert_equal Time.new(2012, 4, 30), Time.new(2012, 4, 3).end_of_month
73
+
74
+ assert_equal Time.new(2012, 5, 31), Time.new(2012, 5, 1).end_of_month
75
+
76
+ assert_equal Time.new(2012, 6, 30), Time.new(2012, 6, 30).end_of_month
77
+
78
+ assert_equal Time.new(2012, 7, 31), Time.new(2012, 7, 1).end_of_month
79
+
80
+ assert_equal Time.new(2012, 8, 31), Time.new(2012, 8, 5).end_of_month
81
+
82
+ assert_equal Time.new(2012, 9, 30), Time.new(2012, 9, 2).end_of_month
83
+
84
+ assert_equal Time.new(2012, 10, 31), Time.new(2012, 10, 22).end_of_month
85
+
86
+ assert_equal Time.new(2012, 11, 30), Time.new(2012, 11, 10).end_of_month
87
+
88
+ assert_equal Time.new(2012, 12, 31), Time.new(2012, 12, 15).end_of_month
89
+ end
90
+
91
+ def test_beginning_of_month
92
+ assert_equal Time.new(2012, 1, 1), Time.new(2012, 1, 31).beginning_of_month
93
+
94
+ assert_equal Time.new(2012, 2, 1), Time.new(2012, 2, 29).beginning_of_month
95
+
96
+ assert_equal Time.new(2012, 3, 1), Time.new(2012, 3, 31).beginning_of_month
97
+
98
+ assert_equal Time.new(2012, 4, 1), Time.new(2012, 4, 30).beginning_of_month
99
+
100
+ assert_equal Time.new(2012, 5, 1), Time.new(2012, 5, 31).beginning_of_month
101
+
102
+ assert_equal Time.new(2012, 6, 1), Time.new(2012, 6, 30).beginning_of_month
103
+
104
+ assert_equal Time.new(2012, 7, 1), Time.new(2012, 7, 31).beginning_of_month
105
+
106
+ assert_equal Time.new(2012, 8, 1), Time.new(2012, 8, 31).beginning_of_month
107
+
108
+ assert_equal Time.new(2012, 9, 1), Time.new(2012, 9, 30).beginning_of_month
109
+
110
+ assert_equal Time.new(2012, 10, 1), Time.new(2012, 10, 31).beginning_of_month
111
+
112
+ assert_equal Time.new(2012, 11, 1), Time.new(2012, 11, 30).beginning_of_month
113
+
114
+ assert_equal Time.new(2012, 12, 1), Time.new(2012, 12, 31).beginning_of_month
115
+ end
116
+
117
+ def test_all_sundays_in_month
118
+ assert_equal [6, 13, 20, 27], Time.new(2013, 1, 1).all_sundays_in_month
119
+ assert_equal [3, 10, 17, 24], Time.new(2013, 2, 1).all_sundays_in_month
120
+ end
121
+
122
+ def test_all_mondays_in_month
123
+ assert_equal [7, 14, 21, 28], Time.new(2013, 1, 1).all_mondays_in_month
124
+ assert_equal [4, 11, 18, 25], Time.new(2013, 2, 1).all_mondays_in_month
125
+ end
126
+
127
+ def test_all_tuesdays_in_month
128
+ assert_equal [1, 8, 15, 22, 29], Time.new(2013, 1, 1).all_tuesdays_in_month
129
+ assert_equal [5, 12, 19, 26], Time.new(2013, 2, 1).all_tuesdays_in_month
130
+ end
131
+
132
+ def test_all_wednesdays_in_month
133
+ assert_equal [2, 9, 16, 23, 30], Time.new(2013, 1, 1).all_wednesdays_in_month
134
+ assert_equal [6, 13, 20, 27], Time.new(2013, 2, 1).all_wednesdays_in_month
135
+ end
136
+
137
+ def test_all_thursdays_in_month
138
+ assert_equal [3, 10, 17, 24, 31], Time.new(2013, 1, 1).all_thursdays_in_month
139
+ assert_equal [7, 14, 21, 28], Time.new(2013, 2, 1).all_thursdays_in_month
140
+ end
141
+
142
+ def test_all_fridays_in_month
143
+ assert_equal [4, 11, 18, 25], Time.new(2013, 1, 1).all_fridays_in_month
144
+ assert_equal [1, 8, 15, 22], Time.new(2013, 2, 1).all_fridays_in_month
145
+ end
146
+
147
+ def test_all_saturdays_in_month
148
+ assert_equal [5, 12, 19, 26], Time.new(2013, 1, 1).all_saturdays_in_month
149
+ assert_equal [2, 9, 16, 23], Time.new(2013, 2, 1).all_saturdays_in_month
150
+ end
151
+
152
+ def test_name_of_month
153
+ assert_equal 'January', Time.new(2012, 1, 1).name_of_month
154
+ assert_equal 'February', Time.new(2012, 2, 1).name_of_month
155
+ assert_equal 'March', Time.new(2012, 3, 1).name_of_month
156
+ assert_equal 'April', Time.new(2012, 4, 1).name_of_month
157
+ assert_equal 'May', Time.new(2012, 5, 1).name_of_month
158
+ assert_equal 'June', Time.new(2012, 6, 1).name_of_month
159
+ assert_equal 'July', Time.new(2012, 7, 1).name_of_month
160
+ assert_equal 'August', Time.new(2012, 8, 1).name_of_month
161
+ assert_equal 'September', Time.new(2012, 9, 1).name_of_month
162
+ assert_equal 'October', Time.new(2012, 10, 1).name_of_month
163
+ assert_equal 'November', Time.new(2012, 11, 1).name_of_month
164
+ assert_equal 'December', Time.new(2012, 12, 1).name_of_month
165
+ end
166
+ end