when_exe 0.4.2 → 0.4.3

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -23
  3. data/lib/when_exe/ephemeris/moon.rb +333 -333
  4. data/lib/when_exe/linkeddata.rb +0 -1
  5. data/lib/when_exe/locales/encoding_conversion.rb +134 -134
  6. data/lib/when_exe/locales/iast.rb +90 -90
  7. data/lib/when_exe/locales/transliteration_table.rb +62 -62
  8. data/lib/when_exe/parts/method_cash.rb +224 -224
  9. data/lib/when_exe/region/chinese/calendars.rb +1016 -1016
  10. data/lib/when_exe/region/geologicalage.rb +1 -1
  11. data/lib/when_exe/region/japanese/calendars.rb +397 -397
  12. data/lib/when_exe/region/japanese/eclipses.rb +1194 -1194
  13. data/lib/when_exe/region/japanese/nihon_shoki.rb +70 -70
  14. data/lib/when_exe/region/korean.rb +384 -384
  15. data/lib/when_exe/region/ryukyu.rb +101 -101
  16. data/lib/when_exe/tmposition.rb +2 -2
  17. data/lib/when_exe/tmreference.rb +3 -3
  18. data/lib/when_exe/version.rb +1 -1
  19. data/test/scripts/geometric_complex.rb +41 -41
  20. data/test/scripts/korea.rb +59 -59
  21. data/test/scripts/thai.rb +36 -36
  22. data/test/test/basictypes.rb +431 -431
  23. data/test/test/calendarnote.rb +86 -86
  24. data/test/test/calendartypes.rb +97 -97
  25. data/test/test/coordinates.rb +397 -397
  26. data/test/test/ephemeris.rb +115 -115
  27. data/test/test/ephemeris/moon.rb +14 -14
  28. data/test/test/ephemeris/planets.rb +14 -14
  29. data/test/test/ephemeris/sun.rb +14 -14
  30. data/test/test/inspect.rb +153 -153
  31. data/test/test/parts.rb +488 -488
  32. data/test/test/region/armenian.rb +20 -20
  33. data/test/test/region/bahai.rb +58 -58
  34. data/test/test/region/balinese.rb +34 -34
  35. data/test/test/region/chinese.rb +229 -229
  36. data/test/test/region/christian.rb +226 -226
  37. data/test/test/region/coptic.rb +27 -27
  38. data/test/test/region/discordian.rb +20 -20
  39. data/test/test/region/french.rb +33 -33
  40. data/test/test/region/geologicalage.rb +17 -17
  41. data/test/test/region/iran.rb +54 -54
  42. data/test/test/region/islamic.rb +54 -54
  43. data/test/test/region/japanese.rb +261 -261
  44. data/test/test/region/jewish.rb +63 -63
  45. data/test/test/region/shire.rb +58 -58
  46. data/test/test/region/swedish.rb +45 -45
  47. data/test/test/region/thai.rb +116 -116
  48. data/test/test/region/tibetan.rb +30 -30
  49. data/test/test/region/vietnamese.rb +102 -102
  50. data/test/test/region/zoroastrian.rb +58 -58
  51. data/test/test/timestandard.rb +81 -81
  52. data/test/test/tmobjects.rb +402 -402
  53. data/test/test/tmreference.rb +157 -157
  54. metadata +4 -88
@@ -1,226 +1,226 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2012-2014 Takashi SUGA
4
-
5
- You may use and/or modify this file according to the license
6
- described in the LICENSE.txt file included in this archive.
7
- =end
8
-
9
- module MiniTest
10
-
11
- class ChristianVariation < MiniTest::TestCase
12
-
13
- def verify_built_in_date(calendar, start, length)
14
- date = Date.new(start, 1, 1)
15
- diff = {}
16
- while date.year < start + length
17
- cal_date = [date.year, date.month, date.day]
18
- cal_jdn = date.jd
19
- fdate = When.TemporalPosition(date.year, date.month, date.day, {:frame=>calendar})
20
- rdate = calendar ^ cal_jdn
21
- [fdate, rdate].each do |tdate|
22
- [[cal_date, tdate.cal_date], [cal_jdn, tdate.to_i]].each do |verify|
23
- unless verify.uniq.size == 1
24
- diff[cal_date] ||= []
25
- diff[cal_date] << verify[1]
26
- end
27
- end
28
- end
29
- date = yield(date)
30
- end
31
- diff
32
- end
33
-
34
- def test__verify_to_built_in_date
35
-
36
- sample = [{}, {}, {}, {}, {}, {[2900, 1, 1]=>[2780263, [2900, 1, 2]]}]
37
-
38
- %w(Gregorian RevisedJulian).each do |name|
39
- calendar = When.Calendar(name)
40
- assert_equal(sample.shift, verify_built_in_date(calendar, 1900, 8) {|date| date + 1})
41
- assert_equal(sample.shift, verify_built_in_date(calendar, 2000,400) {|date| date >> 1})
42
- assert_equal(sample.shift, verify_built_in_date(calendar, 2400,900) {|date| date >> 1200})
43
- end
44
- end
45
-
46
- def test__gregorian_date
47
-
48
- calendar = When.Calendar('Gregorian')
49
-
50
- dates = [When.when?('1900-02-28', {:frame=>calendar})]
51
- 9.times do
52
- dates << dates.last + When::P1Y * 100
53
- end
54
- assert_equal([2415079, 2451603, 2488128, 2524652, 2561176,
55
- 2597700, 2634225, 2670749, 2707273, 2743797], dates.map {|date| date.to_i})
56
- assert_equal(%w(1900-02-28 2000-02-28 2100-02-28 2200-02-28 2300-02-28
57
- 2400-02-28 2500-02-28 2600-02-28 2700-02-28 2800-02-28), dates.map {|date| (calendar ^ date.to_i).to_s})
58
- assert_equal([28, 29, 28, 28, 28, 29, 28, 28, 28, 29], dates.map {|date| date.length(When::MONTH)})
59
-
60
- dates = [When.when?('1900-03-01', {:frame=>calendar})]
61
- 9.times do
62
- dates << dates.last + When::P1Y * 100
63
- end
64
- assert_equal([2415080, 2451605, 2488129, 2524653, 2561177,
65
- 2597702, 2634226, 2670750, 2707274, 2743799], dates.map {|date| date.to_i})
66
- assert_equal(%w(1900-03-01 2000-03-01 2100-03-01 2200-03-01 2300-03-01
67
- 2400-03-01 2500-03-01 2600-03-01 2700-03-01 2800-03-01), dates.map {|date| (calendar ^ date.to_i).to_s})
68
- assert_equal([1], dates.map {|date| calendar._century_from_jdn(date.to_i) - calendar._century_from_jdn(date.to_i-1)}.uniq)
69
- end
70
-
71
- def test__revised_julian_date
72
-
73
- calendar = When.Calendar('RevisedJulian')
74
-
75
- dates = [When.when?('1900-02-28', {:frame=>calendar})]
76
- 9.times do
77
- dates << dates.last + When::P1Y * 100
78
- end
79
- assert_equal([2415079, 2451603, 2488128, 2524652, 2561176,
80
- 2597700, 2634225, 2670749, 2707273, 2743797], dates.map {|date| date.to_i})
81
- assert_equal(%w(1900-02-28 2000-02-28 2100-02-28 2200-02-28 2300-02-28
82
- 2400-02-28 2500-02-28 2600-02-28 2700-02-28 2800-02-28), dates.map {|date| (calendar ^ date.to_i).to_s})
83
- assert_equal([28, 29, 28, 28, 28, 29, 28, 28, 28, 28], dates.map {|date| date.length(When::MONTH)})
84
-
85
- dates = [When.when?('1900-03-01', {:frame=>calendar})]
86
- 9.times do
87
- dates << dates.last + When::P1Y * 100
88
- end
89
- assert_equal([2415080, 2451605, 2488129, 2524653, 2561177,
90
- 2597702, 2634226, 2670750, 2707274, 2743798], dates.map {|date| date.to_i})
91
- assert_equal(%w(1900-03-01 2000-03-01 2100-03-01 2200-03-01 2300-03-01
92
- 2400-03-01 2500-03-01 2600-03-01 2700-03-01 2800-03-01), dates.map {|date| (calendar ^ date.to_i).to_s})
93
- assert_equal([1], dates.map {|date| calendar._century_from_jdn(date.to_i) - calendar._century_from_jdn(date.to_i-1)}.uniq)
94
- end
95
- end
96
-
97
- class Civil < MiniTest::TestCase
98
- def test__border
99
- frame = When.Calendar('Civil?reform=1752-9-14&border=0-3-25(1753)0-1-1')
100
- assert_equal("1641=03-24", (frame ^ When.when?('1642-4-3') ).to_s)
101
- assert_equal("1642-03-25", (frame ^ When.when?('1642-4-4') ).to_s)
102
- assert_equal("1752-12-31", (frame ^ When.when?('1752-12-31')).to_s)
103
- assert_equal("1753-01-01", (frame ^ When.when?('1753-1-1') ).to_s)
104
- assert_equal("1753-03-24", (frame ^ When.when?('1753-3-24') ).to_s)
105
- assert_equal("1753-03-25", (frame ^ When.when?('1753-3-25') ).to_s)
106
- end
107
-
108
- def test__reform_inc
109
- sample = %w(
110
- 1582-09-30 1582-10-01 1582-10-02 1582-10-03 1582-10-04 1582-10-15 1582-10-16 1582-10-17
111
- 1582-10-18 1582-10-19 1582-10-20 1582-10-21 1582-10-22 1582-10-23 1582-10-24 1582-10-25
112
- 1582-10-26 1582-10-27 1582-10-28 1582-10-29 1582-10-30 1582-10-31 1582-11-01 1582-11-02
113
- 1582-11-03)
114
- date = When.when?('1582-9-30', :frame=>'Civil?reform=1582-10-15')
115
- 25.times do
116
- assert_equal(sample.shift, date.to_s)
117
- date = date + When::P1D
118
- end
119
- end
120
-
121
- def test__reform_dec
122
- sample = %w(
123
- 1582-11-01 1582-10-31 1582-10-30 1582-10-29 1582-10-28 1582-10-27 1582-10-26 1582-10-25
124
- 1582-10-24 1582-10-23 1582-10-22 1582-10-21 1582-10-20 1582-10-19 1582-10-18 1582-10-17
125
- 1582-10-16 1582-10-15 1582-10-04 1582-10-03 1582-10-02 1582-10-01 1582-09-30 1582-09-29
126
- 1582-09-28)
127
- date = When.when?('1582-11-01', :frame=>'Civil?reform=1582-10-15')
128
- 25.times do
129
- assert_equal(sample.shift, date.to_s)
130
- date = date - When::P1D
131
- end
132
- end
133
-
134
- def test_civil_epoch
135
- epoch = 1001
136
- diff = 1 - epoch
137
- civil = When.Calendar("Civil?origin_of_MSC=#{diff}&old=(Julian?origin_of_MSC=#{diff})")
138
- assert_equal('0582-10-04', (civil ^ When.when?('1582-10-14')).to_s)
139
- assert_equal('0582-10-15', (civil ^ When.when?('1582-10-15')).to_s)
140
- date = When.when?("1000-1-1", :frame=>civil)
141
- assert_equal('1014-01-01', (date & When.Residue('甲午').to('year')).to_s)
142
- assert_equal(%w(1000-01-01 2000-01-01), [date.to_s, (When::Gregorian^date).to_s])
143
- 399.times do
144
- date += When::P1Y
145
- cal_date = date.cal_date
146
- assert_equal((When::Gregorian^date).cal_date, [cal_date[0]-diff] + cal_date[1..2])
147
- end
148
- end
149
-
150
- def test__reform_year
151
- date = When.when?('1752^^Civil?reform=1752-9-14&border=(1000)0-3-25(1753)0-1-1')
152
- assert_equal(
153
- [[1752,
154
- [[3,
155
- ["*", 1, 2, 3, 4, 5, 6, 7],
156
- ["*", 8, 9, 10, 11, 12, 13, 14],
157
- ["*", 15, 16, 17, 18, 19, 20, 21],
158
- ["*", 22, 23, 24, 25, 26, 27, 28],
159
- ["*", 29, 30, 31, "*", "*", "*", "*"]]],
160
- [[4,
161
- ["*", "*", "*", "*", 1, 2, 3, 4],
162
- ["*", 5, 6, 7, 8, 9, 10, 11],
163
- ["*", 12, 13, 14, 15, 16, 17, 18],
164
- ["*", 19, 20, 21, 22, 23, 24, 25],
165
- ["*", 26, 27, 28, 29, 30, "*", "*"]]],
166
- [[5,
167
- ["*", "*", "*", "*", "*", "*", 1, 2],
168
- ["*", 3, 4, 5, 6, 7, 8, 9],
169
- ["*", 10, 11, 12, 13, 14, 15, 16],
170
- ["*", 17, 18, 19, 20, 21, 22, 23],
171
- ["*", 24, 25, 26, 27, 28, 29, 30],
172
- ["*", 31, "*", "*", "*", "*", "*", "*"]]],
173
- [[6,
174
- ["*", "*", 1, 2, 3, 4, 5, 6],
175
- ["*", 7, 8, 9, 10, 11, 12, 13],
176
- ["*", 14, 15, 16, 17, 18, 19, 20],
177
- ["*", 21, 22, 23, 24, 25, 26, 27],
178
- ["*", 28, 29, 30, "*", "*", "*", "*"]]],
179
- [[7,
180
- ["*", "*", "*", "*", 1, 2, 3, 4],
181
- ["*", 5, 6, 7, 8, 9, 10, 11],
182
- ["*", 12, 13, 14, 15, 16, 17, 18],
183
- ["*", 19, 20, 21, 22, 23, 24, 25],
184
- ["*", 26, 27, 28, 29, 30, 31, "*"]]],
185
- [[8,
186
- ["*", "*", "*", "*", "*", "*", "*", 1],
187
- ["*", 2, 3, 4, 5, 6, 7, 8],
188
- ["*", 9, 10, 11, 12, 13, 14, 15],
189
- ["*", 16, 17, 18, 19, 20, 21, 22],
190
- ["*", 23, 24, 25, 26, 27, 28, 29],
191
- ["*", 30, 31, "*", "*", "*", "*", "*"]]],
192
- [[9,
193
- ["*", "*", "*", 1, 2, 14, 15, 16],
194
- ["*", 17, 18, 19, 20, 21, 22, 23],
195
- ["*", 24, 25, 26, 27, 28, 29, 30]]],
196
- [[10,
197
- ["*", 1, 2, 3, 4, 5, 6, 7],
198
- ["*", 8, 9, 10, 11, 12, 13, 14],
199
- ["*", 15, 16, 17, 18, 19, 20, 21],
200
- ["*", 22, 23, 24, 25, 26, 27, 28],
201
- ["*", 29, 30, 31, "*", "*", "*", "*"]]],
202
- [[11,
203
- ["*", "*", "*", "*", 1, 2, 3, 4],
204
- ["*", 5, 6, 7, 8, 9, 10, 11],
205
- ["*", 12, 13, 14, 15, 16, 17, 18],
206
- ["*", 19, 20, 21, 22, 23, 24, 25],
207
- ["*", 26, 27, 28, 29, 30, "*", "*"]]],
208
- [[12,
209
- ["*", "*", "*", "*", "*", "*", 1, 2],
210
- ["*", 3, 4, 5, 6, 7, 8, 9],
211
- ["*", 10, 11, 12, 13, 14, 15, 16],
212
- ["*", 17, 18, 19, 20, 21, 22, 23],
213
- ["*", 24, 25, 26, 27, 28, 29, 30],
214
- ["*", 31, "*", "*", "*", "*", "*", "*"]]]]],
215
- date.year_included('Sunday') {|d,b|
216
- case b
217
- when When::YEAR ; d[When::YEAR]
218
- when When::MONTH ; d[When::MONTH]
219
- when When::DAY ; d[When::DAY]
220
- else ; '*'
221
- end
222
- }
223
- )
224
- end
225
- end
226
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2012-2014 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license
6
+ described in the LICENSE.txt file included in this archive.
7
+ =end
8
+
9
+ module MiniTest
10
+
11
+ class ChristianVariation < MiniTest::TestCase
12
+
13
+ def verify_built_in_date(calendar, start, length)
14
+ date = Date.new(start, 1, 1)
15
+ diff = {}
16
+ while date.year < start + length
17
+ cal_date = [date.year, date.month, date.day]
18
+ cal_jdn = date.jd
19
+ fdate = When.TemporalPosition(date.year, date.month, date.day, {:frame=>calendar})
20
+ rdate = calendar ^ cal_jdn
21
+ [fdate, rdate].each do |tdate|
22
+ [[cal_date, tdate.cal_date], [cal_jdn, tdate.to_i]].each do |verify|
23
+ unless verify.uniq.size == 1
24
+ diff[cal_date] ||= []
25
+ diff[cal_date] << verify[1]
26
+ end
27
+ end
28
+ end
29
+ date = yield(date)
30
+ end
31
+ diff
32
+ end
33
+
34
+ def test__verify_to_built_in_date
35
+
36
+ sample = [{}, {}, {}, {}, {}, {[2900, 1, 1]=>[2780263, [2900, 1, 2]]}]
37
+
38
+ %w(Gregorian RevisedJulian).each do |name|
39
+ calendar = When.Calendar(name)
40
+ assert_equal(sample.shift, verify_built_in_date(calendar, 1900, 8) {|date| date + 1})
41
+ assert_equal(sample.shift, verify_built_in_date(calendar, 2000,400) {|date| date >> 1})
42
+ assert_equal(sample.shift, verify_built_in_date(calendar, 2400,900) {|date| date >> 1200})
43
+ end
44
+ end
45
+
46
+ def test__gregorian_date
47
+
48
+ calendar = When.Calendar('Gregorian')
49
+
50
+ dates = [When.when?('1900-02-28', {:frame=>calendar})]
51
+ 9.times do
52
+ dates << dates.last + When::P1Y * 100
53
+ end
54
+ assert_equal([2415079, 2451603, 2488128, 2524652, 2561176,
55
+ 2597700, 2634225, 2670749, 2707273, 2743797], dates.map {|date| date.to_i})
56
+ assert_equal(%w(1900-02-28 2000-02-28 2100-02-28 2200-02-28 2300-02-28
57
+ 2400-02-28 2500-02-28 2600-02-28 2700-02-28 2800-02-28), dates.map {|date| (calendar ^ date.to_i).to_s})
58
+ assert_equal([28, 29, 28, 28, 28, 29, 28, 28, 28, 29], dates.map {|date| date.length(When::MONTH)})
59
+
60
+ dates = [When.when?('1900-03-01', {:frame=>calendar})]
61
+ 9.times do
62
+ dates << dates.last + When::P1Y * 100
63
+ end
64
+ assert_equal([2415080, 2451605, 2488129, 2524653, 2561177,
65
+ 2597702, 2634226, 2670750, 2707274, 2743799], dates.map {|date| date.to_i})
66
+ assert_equal(%w(1900-03-01 2000-03-01 2100-03-01 2200-03-01 2300-03-01
67
+ 2400-03-01 2500-03-01 2600-03-01 2700-03-01 2800-03-01), dates.map {|date| (calendar ^ date.to_i).to_s})
68
+ assert_equal([1], dates.map {|date| calendar._century_from_jdn(date.to_i) - calendar._century_from_jdn(date.to_i-1)}.uniq)
69
+ end
70
+
71
+ def test__revised_julian_date
72
+
73
+ calendar = When.Calendar('RevisedJulian')
74
+
75
+ dates = [When.when?('1900-02-28', {:frame=>calendar})]
76
+ 9.times do
77
+ dates << dates.last + When::P1Y * 100
78
+ end
79
+ assert_equal([2415079, 2451603, 2488128, 2524652, 2561176,
80
+ 2597700, 2634225, 2670749, 2707273, 2743797], dates.map {|date| date.to_i})
81
+ assert_equal(%w(1900-02-28 2000-02-28 2100-02-28 2200-02-28 2300-02-28
82
+ 2400-02-28 2500-02-28 2600-02-28 2700-02-28 2800-02-28), dates.map {|date| (calendar ^ date.to_i).to_s})
83
+ assert_equal([28, 29, 28, 28, 28, 29, 28, 28, 28, 28], dates.map {|date| date.length(When::MONTH)})
84
+
85
+ dates = [When.when?('1900-03-01', {:frame=>calendar})]
86
+ 9.times do
87
+ dates << dates.last + When::P1Y * 100
88
+ end
89
+ assert_equal([2415080, 2451605, 2488129, 2524653, 2561177,
90
+ 2597702, 2634226, 2670750, 2707274, 2743798], dates.map {|date| date.to_i})
91
+ assert_equal(%w(1900-03-01 2000-03-01 2100-03-01 2200-03-01 2300-03-01
92
+ 2400-03-01 2500-03-01 2600-03-01 2700-03-01 2800-03-01), dates.map {|date| (calendar ^ date.to_i).to_s})
93
+ assert_equal([1], dates.map {|date| calendar._century_from_jdn(date.to_i) - calendar._century_from_jdn(date.to_i-1)}.uniq)
94
+ end
95
+ end
96
+
97
+ class Civil < MiniTest::TestCase
98
+ def test__border
99
+ frame = When.Calendar('Civil?reform=1752-9-14&border=0-3-25(1753)0-1-1')
100
+ assert_equal("1641=03-24", (frame ^ When.when?('1642-4-3') ).to_s)
101
+ assert_equal("1642-03-25", (frame ^ When.when?('1642-4-4') ).to_s)
102
+ assert_equal("1752-12-31", (frame ^ When.when?('1752-12-31')).to_s)
103
+ assert_equal("1753-01-01", (frame ^ When.when?('1753-1-1') ).to_s)
104
+ assert_equal("1753-03-24", (frame ^ When.when?('1753-3-24') ).to_s)
105
+ assert_equal("1753-03-25", (frame ^ When.when?('1753-3-25') ).to_s)
106
+ end
107
+
108
+ def test__reform_inc
109
+ sample = %w(
110
+ 1582-09-30 1582-10-01 1582-10-02 1582-10-03 1582-10-04 1582-10-15 1582-10-16 1582-10-17
111
+ 1582-10-18 1582-10-19 1582-10-20 1582-10-21 1582-10-22 1582-10-23 1582-10-24 1582-10-25
112
+ 1582-10-26 1582-10-27 1582-10-28 1582-10-29 1582-10-30 1582-10-31 1582-11-01 1582-11-02
113
+ 1582-11-03)
114
+ date = When.when?('1582-9-30', :frame=>'Civil?reform=1582-10-15')
115
+ 25.times do
116
+ assert_equal(sample.shift, date.to_s)
117
+ date = date + When::P1D
118
+ end
119
+ end
120
+
121
+ def test__reform_dec
122
+ sample = %w(
123
+ 1582-11-01 1582-10-31 1582-10-30 1582-10-29 1582-10-28 1582-10-27 1582-10-26 1582-10-25
124
+ 1582-10-24 1582-10-23 1582-10-22 1582-10-21 1582-10-20 1582-10-19 1582-10-18 1582-10-17
125
+ 1582-10-16 1582-10-15 1582-10-04 1582-10-03 1582-10-02 1582-10-01 1582-09-30 1582-09-29
126
+ 1582-09-28)
127
+ date = When.when?('1582-11-01', :frame=>'Civil?reform=1582-10-15')
128
+ 25.times do
129
+ assert_equal(sample.shift, date.to_s)
130
+ date = date - When::P1D
131
+ end
132
+ end
133
+
134
+ def test_civil_epoch
135
+ epoch = 1001
136
+ diff = 1 - epoch
137
+ civil = When.Calendar("Civil?origin_of_MSC=#{diff}&old=(Julian?origin_of_MSC=#{diff})")
138
+ assert_equal('0582-10-04', (civil ^ When.when?('1582-10-14')).to_s)
139
+ assert_equal('0582-10-15', (civil ^ When.when?('1582-10-15')).to_s)
140
+ date = When.when?("1000-1-1", :frame=>civil)
141
+ assert_equal('1014-01-01', (date & When.Residue('甲午').to('year')).to_s)
142
+ assert_equal(%w(1000-01-01 2000-01-01), [date.to_s, (When::Gregorian^date).to_s])
143
+ 399.times do
144
+ date += When::P1Y
145
+ cal_date = date.cal_date
146
+ assert_equal((When::Gregorian^date).cal_date, [cal_date[0]-diff] + cal_date[1..2])
147
+ end
148
+ end
149
+
150
+ def test__reform_year
151
+ date = When.when?('1752^^Civil?reform=1752-9-14&border=(1000)0-3-25(1753)0-1-1')
152
+ assert_equal(
153
+ [[1752,
154
+ [[3,
155
+ ["*", 1, 2, 3, 4, 5, 6, 7],
156
+ ["*", 8, 9, 10, 11, 12, 13, 14],
157
+ ["*", 15, 16, 17, 18, 19, 20, 21],
158
+ ["*", 22, 23, 24, 25, 26, 27, 28],
159
+ ["*", 29, 30, 31, "*", "*", "*", "*"]]],
160
+ [[4,
161
+ ["*", "*", "*", "*", 1, 2, 3, 4],
162
+ ["*", 5, 6, 7, 8, 9, 10, 11],
163
+ ["*", 12, 13, 14, 15, 16, 17, 18],
164
+ ["*", 19, 20, 21, 22, 23, 24, 25],
165
+ ["*", 26, 27, 28, 29, 30, "*", "*"]]],
166
+ [[5,
167
+ ["*", "*", "*", "*", "*", "*", 1, 2],
168
+ ["*", 3, 4, 5, 6, 7, 8, 9],
169
+ ["*", 10, 11, 12, 13, 14, 15, 16],
170
+ ["*", 17, 18, 19, 20, 21, 22, 23],
171
+ ["*", 24, 25, 26, 27, 28, 29, 30],
172
+ ["*", 31, "*", "*", "*", "*", "*", "*"]]],
173
+ [[6,
174
+ ["*", "*", 1, 2, 3, 4, 5, 6],
175
+ ["*", 7, 8, 9, 10, 11, 12, 13],
176
+ ["*", 14, 15, 16, 17, 18, 19, 20],
177
+ ["*", 21, 22, 23, 24, 25, 26, 27],
178
+ ["*", 28, 29, 30, "*", "*", "*", "*"]]],
179
+ [[7,
180
+ ["*", "*", "*", "*", 1, 2, 3, 4],
181
+ ["*", 5, 6, 7, 8, 9, 10, 11],
182
+ ["*", 12, 13, 14, 15, 16, 17, 18],
183
+ ["*", 19, 20, 21, 22, 23, 24, 25],
184
+ ["*", 26, 27, 28, 29, 30, 31, "*"]]],
185
+ [[8,
186
+ ["*", "*", "*", "*", "*", "*", "*", 1],
187
+ ["*", 2, 3, 4, 5, 6, 7, 8],
188
+ ["*", 9, 10, 11, 12, 13, 14, 15],
189
+ ["*", 16, 17, 18, 19, 20, 21, 22],
190
+ ["*", 23, 24, 25, 26, 27, 28, 29],
191
+ ["*", 30, 31, "*", "*", "*", "*", "*"]]],
192
+ [[9,
193
+ ["*", "*", "*", 1, 2, 14, 15, 16],
194
+ ["*", 17, 18, 19, 20, 21, 22, 23],
195
+ ["*", 24, 25, 26, 27, 28, 29, 30]]],
196
+ [[10,
197
+ ["*", 1, 2, 3, 4, 5, 6, 7],
198
+ ["*", 8, 9, 10, 11, 12, 13, 14],
199
+ ["*", 15, 16, 17, 18, 19, 20, 21],
200
+ ["*", 22, 23, 24, 25, 26, 27, 28],
201
+ ["*", 29, 30, 31, "*", "*", "*", "*"]]],
202
+ [[11,
203
+ ["*", "*", "*", "*", 1, 2, 3, 4],
204
+ ["*", 5, 6, 7, 8, 9, 10, 11],
205
+ ["*", 12, 13, 14, 15, 16, 17, 18],
206
+ ["*", 19, 20, 21, 22, 23, 24, 25],
207
+ ["*", 26, 27, 28, 29, 30, "*", "*"]]],
208
+ [[12,
209
+ ["*", "*", "*", "*", "*", "*", 1, 2],
210
+ ["*", 3, 4, 5, 6, 7, 8, 9],
211
+ ["*", 10, 11, 12, 13, 14, 15, 16],
212
+ ["*", 17, 18, 19, 20, 21, 22, 23],
213
+ ["*", 24, 25, 26, 27, 28, 29, 30],
214
+ ["*", 31, "*", "*", "*", "*", "*", "*"]]]]],
215
+ date.year_included('Sunday') {|d,b|
216
+ case b
217
+ when When::YEAR ; d[When::YEAR]
218
+ when When::MONTH ; d[When::MONTH]
219
+ when When::DAY ; d[When::DAY]
220
+ else ; '*'
221
+ end
222
+ }
223
+ )
224
+ end
225
+ end
226
+ end
@@ -1,27 +1,27 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2014 Takashi SUGA
4
-
5
- You may use and/or modify this file according to the license
6
- described in the LICENSE.txt file included in this archive.
7
- =end
8
-
9
- module MiniTest
10
-
11
- class Coptic < MiniTest::TestCase
12
- def test__coptic
13
- julian = When.Calendar('Julian')
14
- gregorian = When.Calendar('Gregorian')
15
- ethiopian = When.Calendar('Coptic?Epoch=8Y')
16
- egyptian = When.Calendar('Coptic?Epoch=284Y')
17
-
18
- [['2010-8-29', %w(2010-08-29 2010-09-11 2003-01-01 1727-01-01)],
19
- ['2011-8-30', %w(2011-08-30 2011-09-12 2004-01-01 1728-01-01)],
20
- ['2012-8-29', %w(2012-08-29 2012-09-11 2005-01-01 1729-01-01)],
21
- ['2013-8-29', %w(2013-08-29 2013-09-11 2006-01-01 1730-01-01)]].each do |sample|
22
- date = When.when?(sample[0], :frame=>julian)
23
- assert_equal(sample[1], [date.to_s, (gregorian ^ date).to_s, (ethiopian ^ date).to_s, (egyptian ^ date).to_s])
24
- end
25
- end
26
- end
27
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2014 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license
6
+ described in the LICENSE.txt file included in this archive.
7
+ =end
8
+
9
+ module MiniTest
10
+
11
+ class Coptic < MiniTest::TestCase
12
+ def test__coptic
13
+ julian = When.Calendar('Julian')
14
+ gregorian = When.Calendar('Gregorian')
15
+ ethiopian = When.Calendar('Coptic?Epoch=8Y')
16
+ egyptian = When.Calendar('Coptic?Epoch=284Y')
17
+
18
+ [['2010-8-29', %w(2010-08-29 2010-09-11 2003-01-01 1727-01-01)],
19
+ ['2011-8-30', %w(2011-08-30 2011-09-12 2004-01-01 1728-01-01)],
20
+ ['2012-8-29', %w(2012-08-29 2012-09-11 2005-01-01 1729-01-01)],
21
+ ['2013-8-29', %w(2013-08-29 2013-09-11 2006-01-01 1730-01-01)]].each do |sample|
22
+ date = When.when?(sample[0], :frame=>julian)
23
+ assert_equal(sample[1], [date.to_s, (gregorian ^ date).to_s, (ethiopian ^ date).to_s, (egyptian ^ date).to_s])
24
+ end
25
+ end
26
+ end
27
+ end