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.
- data/.gitignore +24 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +8 -0
- data/README.rdoc +111 -0
- data/Rakefile +10 -0
- data/lib/modules/constant.rb +41 -0
- data/lib/modules/day.rb +64 -0
- data/lib/modules/month.rb +68 -0
- data/lib/modules/week.rb +179 -0
- data/lib/modules/year.rb +24 -0
- data/lib/test/modules/test_constant.rb +63 -0
- data/lib/test/modules/test_day.rb +129 -0
- data/lib/test/modules/test_month.rb +187 -0
- data/lib/test/modules/test_week.rb +196 -0
- data/lib/test/modules/test_year.rb +17 -0
- data/lib/week_of_month.rb +12 -3
- data/week_of_month.gemspec +13 -0
- metadata +20 -7
- data/lib/test/test_week_of_month_for_date_object.rb +0 -350
- data/lib/test/test_week_of_month_for_time_object.rb +0 -350
- data/lib/week_helper.rb +0 -120
data/lib/modules/year.rb
ADDED
@@ -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
|