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