when_exe 0.3.7 → 0.3.8
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.
- checksums.yaml +4 -4
- data/README.md +210 -171
- data/bin/irb.rc +1 -0
- data/lib/when_exe.rb +78 -53
- data/lib/when_exe/basictypes.rb +27 -8
- data/lib/when_exe/calendarnote.rb +848 -805
- data/lib/when_exe/calendartypes.rb +110 -240
- data/lib/when_exe/coordinates.rb +2440 -2175
- data/lib/when_exe/core/compatibility.rb +1 -1
- data/lib/when_exe/core/duration.rb +13 -11
- data/lib/when_exe/core/extension.rb +38 -45
- data/lib/when_exe/ephemeris.rb +43 -14
- data/lib/when_exe/ephemeris/eclipse.rb +149 -0
- data/lib/when_exe/ephemeris/notes.rb +39 -7
- data/lib/when_exe/icalendar.rb +2 -6
- data/lib/when_exe/inspect.rb +1408 -1399
- data/lib/when_exe/parts/enumerator.rb +486 -477
- data/lib/when_exe/parts/resource.rb +1101 -1069
- data/lib/when_exe/parts/timezone.rb +6 -5
- data/lib/when_exe/region/babylonian.rb +405 -405
- data/lib/when_exe/region/bahai.rb +21 -61
- data/lib/when_exe/region/chinese/epochs.rb +81 -81
- data/lib/when_exe/region/chinese/twins.rb +51 -51
- data/lib/when_exe/region/christian.rb +7 -2
- data/lib/when_exe/region/coptic.rb +1 -1
- data/lib/when_exe/region/discordian.rb +9 -16
- data/lib/when_exe/region/french.rb +1 -1
- data/lib/when_exe/region/hanke_henry.rb +57 -0
- data/lib/when_exe/region/indian.rb +41 -73
- data/lib/when_exe/region/international_fixed.rb +97 -0
- data/lib/when_exe/region/iranian.rb +203 -203
- data/lib/when_exe/region/japanese.rb +13 -13
- data/lib/when_exe/region/japanese/eclipses.rb +1194 -0
- data/lib/when_exe/region/japanese/notes.rb +1482 -1383
- data/lib/when_exe/region/japanese/residues.rb +726 -721
- data/lib/when_exe/region/japanese/twins.rb +37 -37
- data/lib/when_exe/region/jewish.rb +2 -2
- data/lib/when_exe/region/pax.rb +60 -0
- data/lib/when_exe/region/positivist.rb +100 -0
- data/lib/when_exe/region/roman.rb +333 -334
- data/lib/when_exe/region/shire.rb +3 -20
- data/lib/when_exe/region/thai.rb +2 -2
- data/lib/when_exe/region/tibetan.rb +3 -3
- data/lib/when_exe/region/tranquility.rb +208 -0
- data/lib/when_exe/region/vanishing_leprechaun.rb +53 -0
- data/lib/when_exe/region/vietnamese.rb +4 -4
- data/lib/when_exe/region/world.rb +9 -13
- data/lib/when_exe/region/world_season.rb +89 -0
- data/lib/when_exe/region/zoroastrian.rb +4 -2
- data/lib/when_exe/tmobjects.rb +14 -4
- data/lib/when_exe/tmposition.rb +239 -81
- data/lib/when_exe/tmreference.rb +57 -28
- data/lib/when_exe/version.rb +1 -1
- data/link_to_online_documents +6 -3
- data/test/examples/today.rb +1 -1
- data/test/scripts.rb +23 -0
- data/test/scripts/2.ext.rb +169 -0
- data/test/scripts/2.rb +169 -0
- data/test/scripts/3.ext.rb +133 -0
- data/test/scripts/3.rb +134 -0
- data/test/scripts/4.ext.rb +112 -0
- data/test/scripts/4.min.rb +65 -0
- data/test/scripts/4.rb +136 -0
- data/test/scripts/5.ext.rb +78 -0
- data/test/scripts/5.rb +81 -0
- data/test/scripts/6.gcal.rb +131 -0
- data/test/scripts/6.rb +205 -0
- data/test/scripts/6.tz.rb +105 -0
- data/test/scripts/7.phase.rb +109 -0
- data/test/scripts/7.rb +95 -0
- data/test/scripts/7.term.rb +128 -0
- data/test/scripts/7.week.rb +84 -0
- data/test/scripts/8.ext.rb +61 -0
- data/test/scripts/8.rb +62 -0
- data/test/scripts/9.ext.rb +131 -0
- data/test/scripts/9.rb +130 -0
- data/test/scripts/chinese-luni-solar.rb +52 -0
- data/test/{examples → scripts}/geometric_complex.rb +41 -41
- data/test/scripts/geometric_complex.txt +18 -0
- data/test/scripts/korea.rb +59 -0
- data/test/scripts/thai-reviewed.txt +211 -0
- data/test/scripts/thai.rb +36 -0
- data/test/scripts/thai.txt +210 -0
- data/test/test.rb +7 -0
- data/test/test/basictypes.rb +22 -0
- data/test/test/coordinates.rb +2 -1
- data/test/test/ephemeris.rb +34 -2
- data/test/test/icalendar.rb +12 -0
- data/test/test/inspect.rb +37 -1
- data/test/test/parts.rb +4 -3
- data/test/test/region/armenian.rb +20 -0
- data/test/test/region/bahai.rb +58 -0
- data/test/test/region/chinese.rb +14 -3
- data/test/test/region/christian.rb +16 -35
- data/test/test/region/discordian.rb +20 -0
- data/test/test/region/indian.rb +30 -2
- data/test/test/region/japanese.rb +24 -0
- data/test/test/region/jewish.rb +2 -0
- data/test/test/region/m17n.rb +9 -0
- data/test/test/region/reforms.rb +121 -0
- data/test/test/region/residue.rb +17 -11
- data/test/test/region/shire.rb +58 -0
- data/test/test/region/swedish.rb +45 -0
- data/test/test/region/zoroastrian.rb +58 -0
- data/test/test/tmobjects.rb +74 -0
- data/test/test/tmposition.rb +468 -397
- data/when_exe.gemspec +2 -2
- metadata +49 -6
data/test/test.rb
CHANGED
|
@@ -51,6 +51,8 @@ require './test/googlecalendar'
|
|
|
51
51
|
require './test/region/m17n'
|
|
52
52
|
require './test/region/residue'
|
|
53
53
|
require './test/region/christian'
|
|
54
|
+
require './test/region/swedish'
|
|
55
|
+
require './test/region/armenian'
|
|
54
56
|
require './test/region/japanese'
|
|
55
57
|
require './test/region/chinese'
|
|
56
58
|
require './test/region/vietnamese'
|
|
@@ -63,5 +65,10 @@ require './test/region/mayan'
|
|
|
63
65
|
require './test/region/jewish'
|
|
64
66
|
require './test/region/french'
|
|
65
67
|
require './test/region/coptic'
|
|
68
|
+
require './test/region/bahai'
|
|
69
|
+
require './test/region/discordian'
|
|
70
|
+
require './test/region/zoroastrian'
|
|
66
71
|
require './test/region/yerm'
|
|
72
|
+
require './test/region/reforms'
|
|
73
|
+
require './test/region/shire'
|
|
67
74
|
require './test/region/geologicalage'
|
data/test/test/basictypes.rb
CHANGED
|
@@ -326,6 +326,28 @@ module MiniTest
|
|
|
326
326
|
end
|
|
327
327
|
end
|
|
328
328
|
end
|
|
329
|
+
|
|
330
|
+
def test__abbr_and_extra_year_digits
|
|
331
|
+
|
|
332
|
+
assert_equal('-00500', When.when?('-005').to_s)
|
|
333
|
+
assert_equal('2013-01-05', When.when?('-005', {:abbr=>2013}).to_s)
|
|
334
|
+
assert_equal('-000005', When.when?('-005', {:extra_year_digits=>2}).to_s)
|
|
335
|
+
|
|
336
|
+
assert_equal('1900', When.when?('19').to_s)
|
|
337
|
+
assert_equal('1900', When.when?('19', {:extra_year_digits=>0 }).to_s)
|
|
338
|
+
assert_equal('0019', When.when?('19', {:extra_year_digits=>-1}).to_s)
|
|
339
|
+
|
|
340
|
+
[['019', ["0019", -2, "0019-01-01" ]],
|
|
341
|
+
['0019', ["0019", -2, "0019-01-01" ]],
|
|
342
|
+
['+019', ["1900", -4, "1900-01-01" ]],
|
|
343
|
+
['-119', ["-11900", -4, "-11900-01-01"]],
|
|
344
|
+
['-0119', ["-00119", -2, "-00119-01-01"]],
|
|
345
|
+
['+01985-04', ["1985-04", -1, "1985-04-01" ]],
|
|
346
|
+
['+001985-04', ["1985-04", -1, "1985-04-01" ]]].each do |sample|
|
|
347
|
+
date = When.when?(sample[0])
|
|
348
|
+
assert_equal(sample[1], [date.to_s, date.precision, date.floor.to_s])
|
|
349
|
+
end
|
|
350
|
+
end
|
|
329
351
|
end
|
|
330
352
|
|
|
331
353
|
#
|
data/test/test/coordinates.rb
CHANGED
|
@@ -350,7 +350,8 @@ module MiniTest::Coordinates
|
|
|
350
350
|
assert_equal( '40.0000N', location.lat_s)
|
|
351
351
|
assert_equal('139.421322E',location.long_s)
|
|
352
352
|
else
|
|
353
|
-
puts
|
|
353
|
+
puts
|
|
354
|
+
puts "Tests for JSON have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
|
|
354
355
|
end
|
|
355
356
|
end
|
|
356
357
|
|
data/test/test/ephemeris.rb
CHANGED
|
@@ -57,9 +57,21 @@ module MiniTest::Ephemeris
|
|
|
57
57
|
class Formula < MiniTest::TestCase
|
|
58
58
|
def test__sunrise
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
assert_raises(NoMethodError) { When.when?('2012-11-15').sunrise }
|
|
61
|
+
|
|
62
|
+
assert_equal(nil, When.when?('2013-06-21T+09:00', :long=>135, :lat=>70).sunrise)
|
|
63
|
+
|
|
64
|
+
if Object.const_defined?(:TZInfo)
|
|
65
|
+
assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15', :tz=>'Asia/Tokyo').sunrise.to_s)
|
|
66
|
+
assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15', :tz=>'Asia/Tokyo', :location=>'_l:long=139.7414&lat=35.6581').sunrise.to_s)
|
|
67
|
+
else
|
|
68
|
+
puts
|
|
69
|
+
puts "Tests for TZInfo have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
|
|
70
|
+
end
|
|
71
|
+
assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15T+09:00', :long=>139.7414, :lat=>35.6581).sunrise.to_s)
|
|
72
|
+
assert_equal(0, /2012-11-14T21:16/ =~ When.when?('2012-11-15', :long=>139.7414, :lat=>35.6581).sunrise.to_s)
|
|
61
73
|
|
|
62
|
-
|
|
74
|
+
today = '2014-3-4'
|
|
63
75
|
|
|
64
76
|
location = When.Location('long=139.413012E&lat=35.412222N')
|
|
65
77
|
assert_equal(0, /2014-03-03T21:07/ =~ When.when?(today, {:location=>location}).sunrise.to_s)
|
|
@@ -80,4 +92,24 @@ module MiniTest::Ephemeris
|
|
|
80
92
|
assert_equal('2014-07-07T13:15+09:00', formula2.nearest_past(date, 0.5).floor(When::MINUTE).to_s)
|
|
81
93
|
end
|
|
82
94
|
end
|
|
95
|
+
|
|
96
|
+
if Object.const_defined?(:TZInfo)
|
|
97
|
+
class Note < MiniTest::TestCase
|
|
98
|
+
def test__tide
|
|
99
|
+
|
|
100
|
+
sample = [%w(2013-10-02T02:58+09:00 _n:Ephemeris/Notes::day::Tide::Low_Tide),
|
|
101
|
+
%w(2013-10-02T09:09+09:00 _n:Ephemeris/Notes::day::Tide::High_Tide),
|
|
102
|
+
%w(2013-10-02T15:20+09:00 _n:Ephemeris/Notes::day::Tide::Low_Tide),
|
|
103
|
+
%w(2013-10-02T21:32+09:00 _n:Ephemeris/Notes::day::Tide::High_Tide)]
|
|
104
|
+
|
|
105
|
+
note = When.CalendarNote('Ephemeris?interval=0.0')
|
|
106
|
+
date = When.when?('2013-10-02', :tz=>'Asia/Tokyo')
|
|
107
|
+
note.tide(date).each do |d|
|
|
108
|
+
assert_equal(sample.shift, [d.floor(When::MINUTE).to_s, d.events[0].iri(true)])
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
else
|
|
113
|
+
puts "Tests for TZInfo have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
|
|
114
|
+
end
|
|
83
115
|
end
|
data/test/test/icalendar.rb
CHANGED
|
@@ -802,6 +802,18 @@ module MiniTest:V
|
|
|
802
802
|
assert_equal([], sample)
|
|
803
803
|
end
|
|
804
804
|
|
|
805
|
+
def test__each_5
|
|
806
|
+
event5 = When::V::Event.new({
|
|
807
|
+
'rrule' => 'FREQ=MONTHLY;BYMONTHDAY=31',
|
|
808
|
+
'dtstart' => 'VALUE=DATE:20070131'
|
|
809
|
+
})
|
|
810
|
+
sample =%w(2007-01-31 2007-03-31 2007-05-31 2007-07-31 2007-08-31
|
|
811
|
+
2007-10-31 2007-12-31 2008-01-31 2008-03-31 2008-05-31)
|
|
812
|
+
event5.enum_for(When.when?('20070101'), :forward, 10).each do |date|
|
|
813
|
+
assert_equal(sample.shift, date.to_s)
|
|
814
|
+
end
|
|
815
|
+
end
|
|
816
|
+
|
|
805
817
|
class Enumerator < MiniTest::TestCase
|
|
806
818
|
|
|
807
819
|
def test_nothing
|
data/test/test/inspect.rb
CHANGED
|
@@ -112,6 +112,42 @@ module MiniTest
|
|
|
112
112
|
end
|
|
113
113
|
end
|
|
114
114
|
end
|
|
115
|
-
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def test__month_included
|
|
118
|
+
assert_equal([['December 2013',
|
|
119
|
+
['*', '-', '-', '-', '-', '-', 1, 2],
|
|
120
|
+
['*', 3, 4, 5, 6, 7, 8, 9],
|
|
121
|
+
['*', 10, 11, 12, 13, 14, 15, 16],
|
|
122
|
+
['*', 17, 18, 19, 20, 21, 22, 23],
|
|
123
|
+
['*', 24, 25, 26, 27, 28, 29, 30, 31]]],
|
|
124
|
+
|
|
125
|
+
When.when?('2013-12-30').month_included('WorldWeek') {|date, type|
|
|
126
|
+
case type
|
|
127
|
+
when When::YEAR ; date.strftime('%Y')
|
|
128
|
+
when When::MONTH ; date.strftime('%B %Y')
|
|
129
|
+
when When::WEEK ; '*'
|
|
130
|
+
when When::DAY ; date[When::DAY]
|
|
131
|
+
else ; '-'
|
|
132
|
+
end
|
|
133
|
+
})
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def test__round
|
|
137
|
+
date = When.when?("2010-09-29T14:45:12.33+09:00")
|
|
138
|
+
assert_equal(%w(2010-09-29T14:45:12.33+09:00 2010-09-29T14:45:12+09:00), [date.to_s, date.to_s(3, true)])
|
|
139
|
+
|
|
140
|
+
date = When.when?('2013-10-28T23:59:59.999', :clock=>'+09:00', :precision=>3)
|
|
141
|
+
assert_equal(%w(2013-10-28T23:59:59+09:00 2013-10-28T24:00:00+09:00), [date.to_s, date.to_s(3, true)])
|
|
142
|
+
|
|
143
|
+
date = When.when?('2013-10-28T23:59:59.999', :clock=>'+09:00')
|
|
144
|
+
assert_equal(%w(2013-10-28T23:59:59.99+09:00 2013-10-28T24:00:00+09:00), [date.to_s, date.to_s(3, true)])
|
|
145
|
+
|
|
146
|
+
date = When.when?('2013-10-28T23:59:29.999', :clock=>'+09:00')
|
|
147
|
+
assert_equal(%w(2013-10-28T23:59:29.99+09:00 2013-10-28T23:59+09:00), [date.to_s, date.to_s(2, true)])
|
|
148
|
+
|
|
149
|
+
date = When.when?('2013-10-28T23:59:30.001', :clock=>'+09:00')
|
|
150
|
+
assert_equal(%w(2013-10-28T23:59:30.00+09:00 2013-10-28T24:00+09:00), [date.to_s, date.to_s(2, true)])
|
|
151
|
+
end
|
|
116
152
|
end
|
|
117
153
|
end
|
data/test/test/parts.rb
CHANGED
|
@@ -119,10 +119,11 @@ LOCALE
|
|
|
119
119
|
|
|
120
120
|
def test__prefix
|
|
121
121
|
date = When.when?('0594-09=12^Japanese')
|
|
122
|
-
assert_equal(["
|
|
123
|
-
assert_equal(["
|
|
122
|
+
assert_equal(["閏九月", String], [date.name('Month').label.to_s, date.name('Month').label.class])
|
|
123
|
+
assert_equal(["閏九月", String], [date.name('Month').to_s, date.name('Month').to_s.class])
|
|
124
124
|
assert_equal("http://ja.wikipedia.org/wiki/%E9%96%8F", date.name('Month').reference('ja'))
|
|
125
|
-
assert_equal("
|
|
125
|
+
assert_equal("閏九月", date.name('Month').translate('日本語'))
|
|
126
|
+
assert_equal("閏長月", date.name('Month').translate('alias'))
|
|
126
127
|
assert_equal("Intercalary Month 9", date.name('Month').translate('en_US'))
|
|
127
128
|
end
|
|
128
129
|
|
|
@@ -0,0 +1,20 @@
|
|
|
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 Armenian < MiniTest::TestCase
|
|
12
|
+
def test__armenian
|
|
13
|
+
date = When.when?('1-1-1^^Armenian')
|
|
14
|
+
assert_equal(["0001-01-01", "0552-07-11"], [date.to_s, (When::Julian ^ date).to_s])
|
|
15
|
+
|
|
16
|
+
date = When.when?('1462-1-1^^Armenian')
|
|
17
|
+
assert_equal(["1462-01-01", "2012-07-24"], [date.to_s, (When::Gregorian ^ date).to_s])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
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 Bahai < MiniTest::TestCase
|
|
12
|
+
def test_bahai
|
|
13
|
+
date = When.when? '1.9.1.1.1^^Bahai?location=(_co:Iranian::Tehran)'
|
|
14
|
+
[["01.09.01.01.01", "1996-03-20", 2450163],
|
|
15
|
+
["01.09.02.01.01", "1997-03-20", 2450528],
|
|
16
|
+
["01.09.03.01.01", "1998-03-21", 2450894],
|
|
17
|
+
["01.09.04.01.01", "1999-03-21", 2451259],
|
|
18
|
+
["01.09.05.01.01", "2000-03-20", 2451624],
|
|
19
|
+
["01.09.06.01.01", "2001-03-20", 2451989],
|
|
20
|
+
["01.09.07.01.01", "2002-03-21", 2452355],
|
|
21
|
+
["01.09.08.01.01", "2003-03-21", 2452720],
|
|
22
|
+
["01.09.09.01.01", "2004-03-20", 2453085],
|
|
23
|
+
["01.09.10.01.01", "2005-03-20", 2453450],
|
|
24
|
+
["01.09.11.01.01", "2006-03-21", 2453816],
|
|
25
|
+
["01.09.12.01.01", "2007-03-21", 2454181],
|
|
26
|
+
["01.09.13.01.01", "2008-03-20", 2454546],
|
|
27
|
+
["01.09.14.01.01", "2009-03-20", 2454911],
|
|
28
|
+
["01.09.15.01.01", "2010-03-21", 2455277],
|
|
29
|
+
["01.09.16.01.01", "2011-03-21", 2455642],
|
|
30
|
+
["01.09.17.01.01", "2012-03-20", 2456007],
|
|
31
|
+
["01.09.18.01.01", "2013-03-20", 2456372],
|
|
32
|
+
["01.09.19.01.01", "2014-03-21", 2456738],
|
|
33
|
+
["01.10.01.01.01", "2015-03-21", 2457103],
|
|
34
|
+
["01.10.02.01.01", "2016-03-20", 2457468],
|
|
35
|
+
["01.10.03.01.01", "2017-03-20", 2457833],
|
|
36
|
+
["01.10.04.01.01", "2018-03-21", 2458199],
|
|
37
|
+
["01.10.05.01.01", "2019-03-21", 2458564],
|
|
38
|
+
["01.10.06.01.01", "2020-03-20", 2458929],
|
|
39
|
+
["01.10.07.01.01", "2021-03-20", 2459294],
|
|
40
|
+
["01.10.08.01.01", "2022-03-21", 2459660],
|
|
41
|
+
["01.10.09.01.01", "2023-03-21", 2460025],
|
|
42
|
+
["01.10.10.01.01", "2024-03-20", 2460390],
|
|
43
|
+
["01.10.11.01.01", "2025-03-20", 2460755],
|
|
44
|
+
["01.10.12.01.01", "2026-03-20", 2461120],
|
|
45
|
+
["01.10.13.01.01", "2027-03-21", 2461486],
|
|
46
|
+
["01.10.14.01.01", "2028-03-20", 2461851]].each do |sample|
|
|
47
|
+
assert_equal(sample, [date.to_s, (When::Gregorian ^ date).to_s, date.to_i])
|
|
48
|
+
date += When::P1Y
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
date = When.when? '2001.3.21'
|
|
52
|
+
400.times do
|
|
53
|
+
assert_equal([1,1], (When.Calendar('Bahai') ^ date).cal_date[-2..-1])
|
|
54
|
+
date += When::P1Y
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
data/test/test/region/chinese.rb
CHANGED
|
@@ -9,6 +9,17 @@
|
|
|
9
9
|
module MiniTest
|
|
10
10
|
|
|
11
11
|
class Chinese < MiniTest::TestCase
|
|
12
|
+
def test_chinese_table
|
|
13
|
+
assert_equal({1677=>{"iJ"=>"Ij"},
|
|
14
|
+
1698=>{"jK"=>"Jk"},
|
|
15
|
+
1709=>{"aB"=>"Ab", "jK"=>"Jk"},
|
|
16
|
+
1727=>{"cC"=>"Cc"},
|
|
17
|
+
1730=>{"Cd"=>"cD"},
|
|
18
|
+
1751=>{"Jk"=>"jK"},
|
|
19
|
+
1778=>{"Cd"=>"cD"},
|
|
20
|
+
1841=>{"kL"=>"Kl"}}, When.Calendar('Korean').verify(When.Calendar('Chinese1645'), 1654..1911))
|
|
21
|
+
end
|
|
22
|
+
|
|
12
23
|
def test_chinese_date
|
|
13
24
|
|
|
14
25
|
emd = When.Resource('_c:EphemerisBasedSolar?time_basis=+09:00')
|
|
@@ -110,7 +121,7 @@ module MiniTest
|
|
|
110
121
|
def test_chinese_epoch
|
|
111
122
|
date = When.when?('天保2.10.01')
|
|
112
123
|
assert_equal([2390126, "天保02(1831).10.01", "神無月"],
|
|
113
|
-
[date.to_i, date.to_s, date.name('Month')])
|
|
124
|
+
[date.to_i, date.to_s, date.name('Month')/'alias'])
|
|
114
125
|
assert_equal("1831-11-04", (When.Calendar('Gregorian') ^ When.when?('天保02.10.01')).to_s)
|
|
115
126
|
|
|
116
127
|
#=begin
|
|
@@ -132,8 +143,8 @@ module MiniTest
|
|
|
132
143
|
assert_raises(ArgumentError) { When.when?('天保3(0563).10.01') }
|
|
133
144
|
|
|
134
145
|
date = When.when?('始皇帝26*10.01')
|
|
135
|
-
assert_equal([1640641, "始皇帝26(-220)*10.01", "十月"],
|
|
136
|
-
[date.to_i, date.to_s, date.name('Month')])
|
|
146
|
+
assert_equal([1640641, 1640641, "始皇帝26(-220)*10.01", "十月"],
|
|
147
|
+
[date.to_i, date.floor(When::YEAR).to_i, date.to_s, date.name('Month')])
|
|
137
148
|
|
|
138
149
|
cc_221 = When.Resource('_c:Chinese_221')
|
|
139
150
|
[
|
|
@@ -94,41 +94,6 @@ module MiniTest
|
|
|
94
94
|
end
|
|
95
95
|
end
|
|
96
96
|
|
|
97
|
-
class Swedish < MiniTest::TestCase
|
|
98
|
-
def test__swedish_date
|
|
99
|
-
|
|
100
|
-
dates = []
|
|
101
|
-
jdns = []
|
|
102
|
-
[2342042, 2346424].each do |base|
|
|
103
|
-
(-3..+3).each do |diff|
|
|
104
|
-
jdn = base + diff
|
|
105
|
-
jdate = When::Julian ^ jdn
|
|
106
|
-
s1date = When::Swedish ^ jdn
|
|
107
|
-
s2date = When.tm_pos(*(s1date.cal_date + [{:frame=>When::Swedish}]))
|
|
108
|
-
dates << s1date.to_s
|
|
109
|
-
jdns << [s1date.to_s == s2date.to_s, s1date.to_i == jdn, s2date.to_i == jdn].uniq
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
assert_equal(%w(1700-02-26 1700-02-27 1700-02-28 1700-03-01 1700-03-02 1700-03-03 1700-03-04
|
|
114
|
-
1712-02-26 1712-02-27 1712-02-28 1712-02-29 1712-02-30 1712-03-01 1712-03-02), dates)
|
|
115
|
-
assert_equal([[true]], jdns.uniq)
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def test__swedish_easter
|
|
119
|
-
|
|
120
|
-
dates = []
|
|
121
|
-
civil = When.Calendar('Civil?old=Swedish&reform_date=1753-03-01')
|
|
122
|
-
((1700..1711).to_a + (1740..1752).to_a+[1802,1805,1818]).each do |year|
|
|
123
|
-
dates << When.tm_pos(year, {:frame=>civil}).easter.to_s
|
|
124
|
-
end
|
|
125
|
-
assert_equal(%w(1700-04-01 1701-04-21 1702-04-06 1703-03-29 1704-04-17 1705-04-02 1706-03-25
|
|
126
|
-
1707-04-14 1708-04-05 1709-04-18 1710-04-10 1711-03-26 1740-04-06 1741-03-22
|
|
127
|
-
1742-03-14 1743-04-03 1744-03-18 1745-04-07 1746-03-30 1747-03-22 1748-04-03
|
|
128
|
-
1749-03-26 1750-03-18 1751-03-31 1752-03-22 1802-04-25 1805-04-21 1818-03-29), dates)
|
|
129
|
-
end
|
|
130
|
-
end
|
|
131
|
-
|
|
132
97
|
class Civil < MiniTest::TestCase
|
|
133
98
|
def test__border
|
|
134
99
|
frame = When.Calendar('Civil?reform=1752-9-14&border=0-3-25(1753)0-1-1')
|
|
@@ -166,6 +131,22 @@ module MiniTest
|
|
|
166
131
|
end
|
|
167
132
|
end
|
|
168
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
|
+
|
|
169
150
|
def test__reform_year
|
|
170
151
|
date = When.when?('1752^^Civil?reform=1752-9-14&border=(1000)0-3-25(1753)0-1-1')
|
|
171
152
|
assert_equal(
|
|
@@ -0,0 +1,20 @@
|
|
|
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 Discordian < MiniTest::TestCase
|
|
12
|
+
def test_discordian
|
|
13
|
+
date = When.when? '2001.1.1'
|
|
14
|
+
400.times do |i|
|
|
15
|
+
assert_equal([2001+i+1166,1,1], (When::Discordian ^ date).cal_date)
|
|
16
|
+
date += When::P1Y
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
data/test/test/region/indian.rb
CHANGED
|
@@ -50,8 +50,36 @@ module MiniTest
|
|
|
50
50
|
cc = When.Calendar('HinduSolar?type=SBS')
|
|
51
51
|
date = When.when?('1913-01-01', {:frame=>cc})
|
|
52
52
|
assert_equal([2448361, "1913-01-01", "1991-04-14"], [date.to_i, date.to_s, date.to_date.to_s])
|
|
53
|
-
|
|
54
|
-
assert_equal(2448361,
|
|
53
|
+
dates = When::CalendarNote::HinduNote::Dates.new(date)
|
|
54
|
+
assert_equal(2448361, dates.to_i)
|
|
55
|
+
assert_equal('Prajāpati', When.CalendarNote('HinduNote').samvatsara(dates)/'en')
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_indian_date_4
|
|
59
|
+
date = When.when? '2001.2.28'
|
|
60
|
+
assert_equal('1922-12-09', (When::IndianNationalSolar ^ date).to_s)
|
|
61
|
+
399.times do
|
|
62
|
+
date += When::P1Y
|
|
63
|
+
assert_equal([12,9], (When::IndianNationalSolar ^ date).cal_date[-2..-1])
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def test_indian_date_5
|
|
68
|
+
date = When.when? '2014.3.14'
|
|
69
|
+
assert_equal('0546-01-01', (When::Nanakshahi ^ date).to_s)
|
|
70
|
+
399.times do
|
|
71
|
+
date += When::P1Y
|
|
72
|
+
assert_equal([1,1], (When::Nanakshahi ^ date).cal_date[-2..-1])
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def test_indian_date_6
|
|
77
|
+
date = When.when? '2014.4.14'
|
|
78
|
+
assert_equal('1421-01-01', (When::RevisedBengali ^ date).to_s)
|
|
79
|
+
399.times do
|
|
80
|
+
date += When::P1Y
|
|
81
|
+
assert_equal([1,1], (When::RevisedBengali ^ date).cal_date[-2..-1])
|
|
82
|
+
end
|
|
55
83
|
end
|
|
56
84
|
end
|
|
57
85
|
end
|
|
@@ -167,6 +167,10 @@ module MiniTest
|
|
|
167
167
|
When::CalendarNote::Japanese::SolarTerms.send(:patch=, {})
|
|
168
168
|
end
|
|
169
169
|
When::CalendarNote::Japanese::SolarTerms.send(:patch=, nil)
|
|
170
|
+
|
|
171
|
+
assert_equal('白露(135.375/560)',
|
|
172
|
+
When.when?('康和1.8.14').notes(:notes=>'廿四節気', :shoyo=>true)[:value].simplify.to_s)
|
|
173
|
+
|
|
170
174
|
end
|
|
171
175
|
|
|
172
176
|
def test__lunar_phases
|
|
@@ -201,6 +205,21 @@ module MiniTest
|
|
|
201
205
|
end
|
|
202
206
|
end
|
|
203
207
|
|
|
208
|
+
def test__eclipse
|
|
209
|
+
date = When.when?('貞観4.2.1')
|
|
210
|
+
assert_equal('夜日蝕七分', date.notes({:notes=>'日食'}).value)
|
|
211
|
+
assert_equal(nil, date.notes({:notes=>'日食', :solar_eclipse=>1}).value)
|
|
212
|
+
|
|
213
|
+
date = When.when?('貞観4.2.15')
|
|
214
|
+
assert_equal('(月蝕ニ分)', date.notes({:notes=>'月食'}).value)
|
|
215
|
+
assert_equal(nil, date.notes({:notes=>'月食', :lunar_eclipse=>3}).value)
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
def test_japanese_lunisolar
|
|
219
|
+
assert_equal({1850=>{"hI"=>"Hi"}, 1866=>{"cD"=>"Cd"}, 1884=>{"cD"=>"Cd"}, 1947=>{"b"=>"c"}},
|
|
220
|
+
When.Calendar('Japanese').verify(When.Calendar('JapaneseTwin::旧暦'), 1844..2033))
|
|
221
|
+
end
|
|
222
|
+
|
|
204
223
|
def test_japanese_era
|
|
205
224
|
assert_raises(RangeError) {When.TemporalPosition("正慶", 2, 11)}
|
|
206
225
|
assert_equal("延元02(1337).01.08", When.when?("建武4.1.8").to_s)
|
|
@@ -216,6 +235,11 @@ module MiniTest
|
|
|
216
235
|
弘長 文永 建治 弘安 正応 永仁 正安 乾元 嘉元 徳治
|
|
217
236
|
延慶 応長 正和 文保 元応 元亨 正中 嘉暦 元徳 元弘),
|
|
218
237
|
When.era('鎌倉時代')[0].map { |era| era.label.to_s})
|
|
238
|
+
|
|
239
|
+
date = When.when?('768-10-20^^Gregorian')
|
|
240
|
+
assert_equal('神護景雲02(0768).09.02', (date ^ When.CalendarEra('Japanese'))[0].to_s)
|
|
241
|
+
assert_equal('日本?V=0764::奈良時代::神護景雲02(0768).09.01', (date ^ When.CalendarEra('Japanese?V=0764'))[0].to_s)
|
|
242
|
+
assert_equal('日本::奈良時代::神護景雲02(0768).09.02', (date ^ When.CalendarEra('Japanese'))[0].to_s)
|
|
219
243
|
end
|
|
220
244
|
=begin
|
|
221
245
|
def test_japanese_date
|