when_exe 0.4.2 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE.ja.txt +8 -21
- data/LICENSE.txt +5 -27
- data/README.md +25 -79
- data/bin/.pryrc +9 -0
- data/bin/make_ttl.rb +3 -2
- data/bin/make_ttl.rb.config +3 -3
- data/lib/when_exe.rb +101 -5
- data/lib/when_exe/basictypes.rb +47 -16
- data/lib/when_exe/calendarnote.rb +27 -18
- data/lib/when_exe/calendartypes.rb +12 -50
- data/lib/when_exe/coordinates.rb +37 -391
- data/lib/when_exe/ephemeris.rb +53 -14
- data/lib/when_exe/ephemeris/eclipse.rb +8 -8
- data/lib/when_exe/ephemeris/moon.rb +333 -333
- data/lib/when_exe/ephemeris/notes.rb +29 -17
- data/lib/when_exe/ephemeris/phase_table.rb +825 -0
- data/lib/when_exe/ephemeris/term_table.rb +603 -0
- data/lib/when_exe/events.rb +1888 -0
- data/lib/when_exe/google_api.rb +26 -31
- data/lib/when_exe/icalendar.rb +129 -12
- data/lib/when_exe/inspect.rb +5 -5
- data/lib/when_exe/linkeddata.rb +43 -23
- data/lib/when_exe/locales/akt.rb +63 -0
- data/lib/when_exe/locales/encoding_conversion.rb +134 -134
- data/lib/when_exe/locales/iast.rb +90 -90
- data/lib/when_exe/locales/locale.rb +88 -18
- data/lib/when_exe/locales/transliteration_table.rb +62 -62
- data/lib/when_exe/mini_application.rb +14 -8
- data/lib/when_exe/namespace.rb +42 -0
- data/lib/when_exe/parts/enumerator.rb +16 -5
- data/lib/when_exe/parts/geometric_complex.rb +52 -2
- data/lib/when_exe/parts/method_cash.rb +229 -224
- data/lib/when_exe/parts/resource.rb +65 -35
- data/lib/when_exe/parts/timezone.rb +25 -34
- data/lib/when_exe/region/balinese.rb +5 -3
- data/lib/when_exe/region/chinese.rb +39 -11
- data/lib/when_exe/region/chinese/calendars.rb +1016 -1016
- data/lib/when_exe/region/chinese/epochs.rb +7 -7
- data/lib/when_exe/region/chinese/notes.rb +3 -3
- data/lib/when_exe/region/chinese/twins.rb +134 -11
- data/lib/when_exe/region/dee.rb +4 -4
- data/lib/when_exe/region/discordian.rb +1 -1
- data/lib/when_exe/region/geologicalage.rb +139 -128
- data/lib/when_exe/region/hanke_henry.rb +4 -4
- data/lib/when_exe/region/indian.rb +77 -8
- data/lib/when_exe/region/international_fixed.rb +3 -3
- data/lib/when_exe/region/islamic.rb +1 -1
- data/lib/when_exe/region/japanese.rb +12 -8
- data/lib/when_exe/region/japanese/calendars.rb +397 -397
- data/lib/when_exe/region/japanese/eclipses.rb +1194 -1194
- data/lib/when_exe/region/japanese/epochs.rb +8 -4
- data/lib/when_exe/region/japanese/location.rb +93 -0
- data/lib/when_exe/region/japanese/nihon_shoki.rb +70 -70
- data/lib/when_exe/region/japanese/notes.rb +57 -18
- data/lib/when_exe/region/japanese/residues.rb +33 -11
- data/lib/when_exe/region/japanese/twins.rb +27 -14
- data/lib/when_exe/region/japanese/weeks.rb +7 -7
- data/lib/when_exe/region/korean.rb +384 -384
- data/lib/when_exe/region/location.rb +40 -0
- data/lib/when_exe/region/martian.rb +1 -1
- data/lib/when_exe/region/mayan.rb +2 -2
- data/lib/when_exe/region/roman.rb +2 -2
- data/lib/when_exe/region/ryukyu.rb +101 -101
- data/lib/when_exe/region/saudi_arabian.rb +57 -0
- data/lib/when_exe/region/shire.rb +1 -1
- data/lib/when_exe/region/world.rb +3 -3
- data/lib/when_exe/region/zoroastrian.rb +1 -1
- data/lib/when_exe/spatial.rb +611 -0
- data/lib/when_exe/timestandard.rb +9 -7
- data/lib/when_exe/tmobjects.rb +34 -2
- data/lib/when_exe/tmposition.rb +225 -1322
- data/lib/when_exe/tmptypes.rb +1279 -0
- data/lib/when_exe/tmreference.rb +42 -7
- data/lib/when_exe/version.rb +3 -3
- data/test/events/example-datasets +6 -0
- data/test/events/history-dataset.csv +22 -0
- data/test/events/japanese-holiday-index.csv +28 -0
- data/test/events/japanese-holiday.csv +94 -0
- data/test/events/japanese-holiday.ttl +948 -0
- data/test/events/make_events_ttl.rb +18 -0
- data/test/events/mori_wikichoshi.csv +14 -0
- data/test/events/ndl_koyomi.csv +220 -0
- data/test/events/ndl_koyomi_index.csv +44 -0
- data/test/events/primeminister-dataset.csv +19 -0
- data/test/events/shogun-dataset.csv +22 -0
- data/test/events/test-history-dataset-edge-sparql.csv +26 -0
- data/test/events/test-history-dataset-edge.csv +27 -0
- data/test/events/test-history-dataset-sparql.csv +22 -0
- data/test/events/test-history-dataset.csv +23 -0
- data/test/events/test-history-events-edge.ttl +89 -0
- data/test/events/test-history-events.csv +6 -0
- data/test/examples/JapanHolidays.ics +2 -2
- data/test/examples/JapanHolidaysRFC6350.ics +3 -3
- data/test/examples/Residue.m17n +2 -2
- data/test/examples/Spatial.m17n +3 -3
- data/test/examples/Terms.m17n +3 -3
- data/test/scripts/8.ext.rb +6 -6
- data/test/scripts/8.rb +6 -6
- data/test/scripts/geometric_complex.rb +41 -41
- data/test/scripts/korea.rb +59 -59
- data/test/scripts/thai.rb +36 -36
- data/test/test.rb +6 -0
- data/test/test/basictypes.rb +431 -431
- data/test/test/calendarnote.rb +86 -86
- data/test/test/calendartypes.rb +97 -97
- data/test/test/coordinates.rb +399 -397
- data/test/test/ephemeris.rb +115 -115
- data/test/test/ephemeris/moon.rb +14 -14
- data/test/test/ephemeris/planets.rb +14 -14
- data/test/test/ephemeris/sun.rb +14 -14
- data/test/test/events.rb +32 -0
- data/test/test/google_api.rb +45 -32
- data/test/test/inspect.rb +153 -153
- data/test/test/parts.rb +488 -488
- data/test/test/region/armenian.rb +20 -20
- data/test/test/region/bahai.rb +58 -58
- data/test/test/region/balinese.rb +34 -34
- data/test/test/region/chinese.rb +229 -229
- data/test/test/region/christian.rb +226 -226
- data/test/test/region/coptic.rb +27 -27
- data/test/test/region/discordian.rb +20 -20
- data/test/test/region/french.rb +33 -33
- data/test/test/region/geologicalage.rb +17 -17
- data/test/test/region/indian.rb +14 -1
- data/test/test/region/iran.rb +54 -54
- data/test/test/region/islamic.rb +64 -54
- data/test/test/region/japanese.rb +281 -261
- data/test/test/region/jewish.rb +63 -63
- data/test/test/region/m17n.rb +21 -21
- data/test/test/region/mayan.rb +17 -16
- data/test/test/region/reforms.rb +2 -2
- data/test/test/region/residue.rb +7 -7
- data/test/test/region/shire.rb +58 -58
- data/test/test/region/swedish.rb +45 -45
- data/test/test/region/thai.rb +116 -116
- data/test/test/region/tibetan.rb +30 -30
- data/test/test/region/vietnamese.rb +102 -102
- data/test/test/region/zoroastrian.rb +58 -58
- data/test/test/timestandard.rb +81 -81
- data/test/test/tmobjects.rb +402 -402
- data/test/test/tmposition.rb +66 -4
- data/test/test/tmreference.rb +157 -157
- metadata +36 -93
data/test/test/tmposition.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2011-
|
3
|
+
Copyright (C) 2011-2021 Takashi SUGA
|
4
4
|
|
5
5
|
You may use and/or modify this file according to the license
|
6
6
|
described in the LICENSE.txt file included in this archive.
|
@@ -55,12 +55,20 @@ LIST
|
|
55
55
|
assert_equal("2001-08-02..2001-09-10", When.when?("2001-08-02/09-10").to_s)
|
56
56
|
assert_equal(364, When.when?('20130101/1230').count) if Enumerable.method_defined?(:count)
|
57
57
|
assert_equal("1980-02-01", When.when?("800201", {:abbr=>1970}).to_s)
|
58
|
-
#
|
58
|
+
# assert_nil(When.TemporalPosition(2011,2,29))
|
59
59
|
assert_equal('2011-03-01', When.TemporalPosition(2011,2,29).to_s)
|
60
|
-
|
60
|
+
assert_nil(When.TemporalPosition(2011,2,29, {:invalid=>:check}))
|
61
61
|
assert_raises(ArgumentError) { When.TemporalPosition(2011,2,29, {:invalid=>:raise}) }
|
62
62
|
end
|
63
63
|
|
64
|
+
def test__strptime
|
65
|
+
assert_equal('1950-08', When.strptime('1950 Aug', '%Y %B').to_s)
|
66
|
+
assert_equal('1950-08-31', When.strptime('1950 Aug 31', '%Y %B %d').to_s)
|
67
|
+
assert_equal('2015-01-06T09:18:24+09:00', When.strptime('Tue Jan 6 9:18:24 +09:00 2015', "%A %B %d %H:%M:%S %z %Y").to_s)
|
68
|
+
assert_equal('2021-01-07T09:18:24+09:00', When.strptime("木 1月 6 9:18:24 JST", "%A %B %d %H:%M:%S %z", {:locale=>'ja'}).to_s)
|
69
|
+
assert_raises(ArgumentError) {When.strptime("Thu Jan 6 9:18:24 +09:00 2015", "%A %B %d %H:%M:%S %z %Y", {:invalid=>:raise})}
|
70
|
+
end
|
71
|
+
|
64
72
|
def test__to_date
|
65
73
|
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
66
74
|
assert(/\ATue Jun 7 00:00:00 (\+00:00|Z) 2011\z/ =~ When.when?("2011-06-07").to_date.strftime('%+'))
|
@@ -148,10 +156,64 @@ LIST
|
|
148
156
|
assert_equal('平成26(2014).08.21', When.tm_pos('平成', When.Residue('甲午'), 8, When.Residue('甲子')).to_s)
|
149
157
|
|
150
158
|
assert_equal('2014-09-06', When.tm_pos(2014, 8, When.Residue('SA:6')).to_s)
|
151
|
-
|
159
|
+
assert_nil(When.tm_pos(2014, 8, When.Residue('SA:6'), :invalid=>:check))
|
152
160
|
assert_raises(ArgumentError) {When.tm_pos(2014, 8, When.Residue('SA:6'), :invalid=>:raise)}
|
153
161
|
end
|
154
162
|
|
163
|
+
def test__residue_and_repeat
|
164
|
+
|
165
|
+
assert_equal('1924-01-01', When.when?('1900{甲子}-01-01').to_s)
|
166
|
+
assert_equal('1924-01-01', When.when?('{甲子}-01-01', :abbr=>1900).to_s)
|
167
|
+
assert_equal('昭和59(1984).01.01', When.when?('昭和{甲子}-01-01').to_s)
|
168
|
+
|
169
|
+
assert_equal('2015-02-01', When.when?('2015-02-{SU}').to_s)
|
170
|
+
assert_equal('2015-02-22', When.when?('2015-02-{4SU}').to_s)
|
171
|
+
assert_equal('2015-09-23T17+09:00', When.when?('2015-09-01{SolarTerms#term180}T00+09:00').to_s)
|
172
|
+
assert_equal('2015-04-05', When.when?('2015-01-01{Christian#easter}').to_s)
|
173
|
+
assert_equal('2015-12-25', When.when?('2015-01-01{Christian#christmas}').to_s)
|
174
|
+
assert_equal('2015-09-22T00:00+09:00', When.when?('2015-09-01{SolarTerms#term180-1&TU}T00:00+09:00').to_s)
|
175
|
+
assert_equal('2015-05-06', When.when?('2015-05-{06&MO,TU,WE}').to_s)
|
176
|
+
assert_nil(When.when?('2016-05-{06&MO,TU,WE}'))
|
177
|
+
|
178
|
+
assert_equal('2015-03-01', When.when?('2015-02-01{5SU}').to_s)
|
179
|
+
assert_nil(When.when?('2015-02-{5SU}'))
|
180
|
+
assert_equal('2015-02-22', When.when?('2015-02-{-SU}').to_s)
|
181
|
+
|
182
|
+
it = When.when?('R/2015-09-01{SolarTerms#term180-1&TU}T00:00+09:00')
|
183
|
+
assert_equal('2015-09-22T00:00+09:00', it.succ.to_s)
|
184
|
+
assert_equal('2026-09-22T00:00+09:00', it.succ.to_s)
|
185
|
+
assert_equal('2032-09-21T00:00+09:00', it.succ.to_s)
|
186
|
+
|
187
|
+
assert_equal(
|
188
|
+
%w(2015-02-02 2015-02-09 2015-02-16 2015-02-23
|
189
|
+
2016-02-01 2016-02-08 2016-02-15 2016-02-22
|
190
|
+
2016-02-29 2017-02-06),
|
191
|
+
When.when?('R10/2015-02-{MO}').map {|d| d.to_s})
|
192
|
+
|
193
|
+
assert_equal(%w(2015-05-15 2017-05-15 2019-05-15),
|
194
|
+
When.when?('R3/2015-05-15/P2Y').map {|d| d.to_s})
|
195
|
+
|
196
|
+
assert_equal(%w(2015-09-22T00:00+09:00 2026-09-22T00:00+09:00 2032-09-21T00:00+09:00),
|
197
|
+
When.when?('R3/2015-09-01{SolarTerms#term180-1&TU}T00:00+09:00').map {|d| d.to_s})
|
198
|
+
|
199
|
+
assert_equal(%w(安政02(1855).02.10 慶応03(1867).02.07),
|
200
|
+
When.when?('R2/弘化{卯}-02-{1卯}').map {|d| d.to_s})
|
201
|
+
|
202
|
+
assert_equal(
|
203
|
+
%w(2016-01-06T07+09:00 2016-01-21T00+09:00 2016-02-04T18+09:00 2016-02-19T14+09:00
|
204
|
+
2016-03-05T12+09:00 2016-03-20T13+09:00 2016-04-04T17+09:00 2016-04-20T00+09:00
|
205
|
+
2016-05-05T10+09:00 2016-05-20T23+09:00 2016-06-05T14+09:00 2016-06-21T07+09:00
|
206
|
+
2016-07-07T01+09:00 2016-07-22T18+09:00 2016-08-07T10+09:00 2016-08-23T01+09:00
|
207
|
+
2016-09-07T13+09:00 2016-09-22T23+09:00 2016-10-08T05+09:00 2016-10-23T08+09:00
|
208
|
+
2016-11-07T08+09:00 2016-11-22T06+09:00 2016-12-07T01+09:00 2016-12-21T19+09:00),
|
209
|
+
When.when?('R24/2016-01-01{SolarTerms#term0/15}T00+09:00').map {|d| d.to_s})
|
210
|
+
|
211
|
+
assert_equal(
|
212
|
+
%w(2011-03-05...2011-03-08 2012-02-18...2012-02-21
|
213
|
+
2013-02-09...2013-02-12 2014-03-01...2014-03-04),
|
214
|
+
When.when?('R4P3D/2011-01-01{Christian#easter-50}').map {|d| d.to_s})
|
215
|
+
end
|
216
|
+
|
155
217
|
def test__prefixed_calendar
|
156
218
|
[['平成27(2015).1.15', '平成27(2015).01.15'],
|
157
219
|
['HinduLuniSolar?note=HinduNote&location=(_co:Indian::Ujjain)&type=SBSA&start_month=5(1936-10<10)', '1936-10<10-'],
|
data/test/test/tmreference.rb
CHANGED
@@ -1,157 +1,157 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
=begin
|
3
|
-
Copyright (C) 2011-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::TM
|
10
|
-
|
11
|
-
#
|
12
|
-
# (5.3) Temporal Reference System Package
|
13
|
-
#
|
14
|
-
#
|
15
|
-
|
16
|
-
class ReferenceSystem < MiniTest::TestCase
|
17
|
-
def test_nothing
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
class OrdinalReferenceSystem < MiniTest::TestCase
|
22
|
-
def test_nothing
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
class Calendar < MiniTest::TestCase
|
27
|
-
def test__jul_trans
|
28
|
-
gc = When.Calendar('Gregorian')
|
29
|
-
assert_equal("1858-11-16", (gc ^ 2400000).to_s)
|
30
|
-
assert_equal("1858-11-16T12:00:00.00Z", (gc ^ 2400000.0).to_s)
|
31
|
-
assert_equal("1858-11-16T21:00:00.00+09:00", (gc.jul_trans(2400000.0, {:clock=>'+0900'})).to_s)
|
32
|
-
assert_equal("1970-01-01T12:00:00.00Z", (gc ^ Time.utc(1970,1,1,12)).to_s)
|
33
|
-
assert_equal("1970-01-01T12:00:00.00Z", When.when?(Time.utc(1970,1,1,12)).to_s)
|
34
|
-
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
35
|
-
assert_equal("1858-11-16T12:00:00.00Z", (gc ^ DateTime.new(1858,11,16,12,0,0,0)).to_s)
|
36
|
-
assert_equal("1858-11-16T12:00:00.00Z", When.when?(DateTime.new(1858,11,16,12,0,0,0)).to_s)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
class Clock < MiniTest::TestCase
|
42
|
-
def test__clock_trans
|
43
|
-
obj1 = When.when?("20100928T234512.33-0600^^Gregorian")
|
44
|
-
assert_equal("2010-09-29T14:45:12.33+09:00", (When.Clock("+0900") ^ obj1).to_s)
|
45
|
-
assert_equal("2010-09-29T14:45:12.33+09:00", (When.Clock("+0900") ^ Time.utc(2010,9,29,5,45,12,330000)).to_s)
|
46
|
-
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
47
|
-
assert_equal("2010-09-29T14:45:12.00+09:00", (When.Clock("+0900") ^ DateTime.new(2010,9,29,5,45,12)).to_s)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
class CoordinateSystem < MiniTest::TestCase
|
53
|
-
def test_nothing
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
class OrdinalEra < MiniTest::TestCase
|
58
|
-
def test_nothing
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
class CalendarEra < MiniTest::TestCase
|
63
|
-
def test__pool
|
64
|
-
era = When.Resource('_e:ModernJapanese')
|
65
|
-
assert_equal([true, false, true, false],
|
66
|
-
[era.registered?, era.dup.registered?, era['M'].registered?, era['M'].dup.registered?])
|
67
|
-
assert_equal("M", era['M'].label)
|
68
|
-
assert_equal("http://hosi.org/When/TM/CalendarEra/ModernJapanese::M", era['M'].iri)
|
69
|
-
assert_equal("http://hosi.org/When/TM/CalendarEra/ModernJapanese::M", When::Parts::Resource[era['M'].iri].iri)
|
70
|
-
end
|
71
|
-
|
72
|
-
def test__ce_bce
|
73
|
-
[['BCE11.2.21', 'BCE11(-010).02.21', 1717457],
|
74
|
-
['CE-10.2.21', 'BCE11(-010).02.21', 1717457],
|
75
|
-
['-10.2.21', '-00010-02-21', 1717459],
|
76
|
-
['CE1.1.1', 'Common::CE01.01.01', 1721424]
|
77
|
-
].each do |sample|
|
78
|
-
date = When::when?(sample.shift)
|
79
|
-
assert_equal(sample, [date.to_s, date.to_i])
|
80
|
-
end
|
81
|
-
|
82
|
-
assert_equal('BCE11(-010).02.21', When::TemporalPosition('BCE', 11, 2, 21).to_s)
|
83
|
-
end
|
84
|
-
|
85
|
-
def test__era_trans
|
86
|
-
common =When.Resource('_e:Common::CE')
|
87
|
-
obj1 = When.when?("20100929T144512.33+0900^^Gregorian")
|
88
|
-
assert_equal("Common::CE2010.09.29T14:45:12.33+09:00", (common ^ obj1).to_s)
|
89
|
-
assert_equal("Common::CE2010.09.29T14:45:12.33Z", (common ^ Time.utc(2010,9,29,14,45,12,330000)).to_s)
|
90
|
-
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
91
|
-
assert_equal("Common::CE2010.09.29T14:45:12.00Z", (common ^ DateTime.new(2010,9,29,14,45,12)).to_s)
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def test__julian_gregorian_change
|
96
|
-
epoch = When.when?('CE1582.10.03') ^ When.Duration('1D')
|
97
|
-
sample = [
|
98
|
-
"Common::CE1582.10.03",
|
99
|
-
"Common::CE1582.10.04",
|
100
|
-
"Common::CE1582.10.15",
|
101
|
-
"Common::CE1582.10.16"
|
102
|
-
]
|
103
|
-
4.times do
|
104
|
-
assert_equal(sample.shift, epoch.next.to_s)
|
105
|
-
end
|
106
|
-
|
107
|
-
sample = [
|
108
|
-
"Common::CE1582.10.16",
|
109
|
-
"Common::CE1582.10.15",
|
110
|
-
"Common::CE1582.10.04",
|
111
|
-
"Common::CE1582.10.03"
|
112
|
-
]
|
113
|
-
epoch = When.when?('CE1582.10.16') ^ -When.Duration('P1D')
|
114
|
-
4.times do
|
115
|
-
assert_equal(sample.shift, epoch.next.to_s)
|
116
|
-
end
|
117
|
-
|
118
|
-
assert_equal(
|
119
|
-
[["October 1582",
|
120
|
-
["-", 1, 2, 3, 4, 15, 16],
|
121
|
-
[17, 18, 19, 20, 21, 22, 23],
|
122
|
-
[24, 25, 26, 27, 28, 29, 30],
|
123
|
-
[31, "-", "-", "-", "-", "-", "-"]]],
|
124
|
-
When.when?('CE1582.10').month_included('SU') {|date, type|
|
125
|
-
case type
|
126
|
-
when When::YEAR,
|
127
|
-
When::MONTH ; date.strftime("%B %Y")
|
128
|
-
when When::WEEK ; nil
|
129
|
-
when When::DAY ; date[0]
|
130
|
-
else ; '-'
|
131
|
-
end
|
132
|
-
})
|
133
|
-
|
134
|
-
epoch = When.when?('Common?Reform=1752.09.14::CE1752.09.01') ^ When.Duration('1D')
|
135
|
-
sample = [
|
136
|
-
"Common?Reform=1752.09.14::CE1752.09.01",
|
137
|
-
"Common?Reform=1752.09.14::CE1752.09.02",
|
138
|
-
"Common?Reform=1752.09.14::CE1752.09.14",
|
139
|
-
"Common?Reform=1752.09.14::CE1752.09.15"
|
140
|
-
]
|
141
|
-
4.times do
|
142
|
-
assert_equal(sample.shift, epoch.next.to_s)
|
143
|
-
end
|
144
|
-
|
145
|
-
sample = [
|
146
|
-
"Common?Reform=1752.09.14::CE1752.09.15",
|
147
|
-
"Common?Reform=1752.09.14::CE1752.09.14",
|
148
|
-
"Common?Reform=1752.09.14::CE1752.09.02",
|
149
|
-
"Common?Reform=1752.09.14::CE1752.09.01"
|
150
|
-
]
|
151
|
-
epoch = When.when?('Common?Reform=1752.09.14::CE1752.09.15') ^ -When.Duration('1D')
|
152
|
-
4.times do
|
153
|
-
assert_equal(sample.shift, epoch.next.to_s)
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2011-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::TM
|
10
|
+
|
11
|
+
#
|
12
|
+
# (5.3) Temporal Reference System Package
|
13
|
+
#
|
14
|
+
#
|
15
|
+
|
16
|
+
class ReferenceSystem < MiniTest::TestCase
|
17
|
+
def test_nothing
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class OrdinalReferenceSystem < MiniTest::TestCase
|
22
|
+
def test_nothing
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class Calendar < MiniTest::TestCase
|
27
|
+
def test__jul_trans
|
28
|
+
gc = When.Calendar('Gregorian')
|
29
|
+
assert_equal("1858-11-16", (gc ^ 2400000).to_s)
|
30
|
+
assert_equal("1858-11-16T12:00:00.00Z", (gc ^ 2400000.0).to_s)
|
31
|
+
assert_equal("1858-11-16T21:00:00.00+09:00", (gc.jul_trans(2400000.0, {:clock=>'+0900'})).to_s)
|
32
|
+
assert_equal("1970-01-01T12:00:00.00Z", (gc ^ Time.utc(1970,1,1,12)).to_s)
|
33
|
+
assert_equal("1970-01-01T12:00:00.00Z", When.when?(Time.utc(1970,1,1,12)).to_s)
|
34
|
+
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
35
|
+
assert_equal("1858-11-16T12:00:00.00Z", (gc ^ DateTime.new(1858,11,16,12,0,0,0)).to_s)
|
36
|
+
assert_equal("1858-11-16T12:00:00.00Z", When.when?(DateTime.new(1858,11,16,12,0,0,0)).to_s)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class Clock < MiniTest::TestCase
|
42
|
+
def test__clock_trans
|
43
|
+
obj1 = When.when?("20100928T234512.33-0600^^Gregorian")
|
44
|
+
assert_equal("2010-09-29T14:45:12.33+09:00", (When.Clock("+0900") ^ obj1).to_s)
|
45
|
+
assert_equal("2010-09-29T14:45:12.33+09:00", (When.Clock("+0900") ^ Time.utc(2010,9,29,5,45,12,330000)).to_s)
|
46
|
+
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
47
|
+
assert_equal("2010-09-29T14:45:12.00+09:00", (When.Clock("+0900") ^ DateTime.new(2010,9,29,5,45,12)).to_s)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class CoordinateSystem < MiniTest::TestCase
|
53
|
+
def test_nothing
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class OrdinalEra < MiniTest::TestCase
|
58
|
+
def test_nothing
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class CalendarEra < MiniTest::TestCase
|
63
|
+
def test__pool
|
64
|
+
era = When.Resource('_e:ModernJapanese')
|
65
|
+
assert_equal([true, false, true, false],
|
66
|
+
[era.registered?, era.dup.registered?, era['M'].registered?, era['M'].dup.registered?])
|
67
|
+
assert_equal("M", era['M'].label)
|
68
|
+
assert_equal("http://hosi.org/When/TM/CalendarEra/ModernJapanese::M", era['M'].iri)
|
69
|
+
assert_equal("http://hosi.org/When/TM/CalendarEra/ModernJapanese::M", When::Parts::Resource[era['M'].iri].iri)
|
70
|
+
end
|
71
|
+
|
72
|
+
def test__ce_bce
|
73
|
+
[['BCE11.2.21', 'BCE11(-010).02.21', 1717457],
|
74
|
+
['CE-10.2.21', 'BCE11(-010).02.21', 1717457],
|
75
|
+
['-10.2.21', '-00010-02-21', 1717459],
|
76
|
+
['CE1.1.1', 'Common::CE01.01.01', 1721424]
|
77
|
+
].each do |sample|
|
78
|
+
date = When::when?(sample.shift)
|
79
|
+
assert_equal(sample, [date.to_s, date.to_i])
|
80
|
+
end
|
81
|
+
|
82
|
+
assert_equal('BCE11(-010).02.21', When::TemporalPosition('BCE', 11, 2, 21).to_s)
|
83
|
+
end
|
84
|
+
|
85
|
+
def test__era_trans
|
86
|
+
common =When.Resource('_e:Common::CE')
|
87
|
+
obj1 = When.when?("20100929T144512.33+0900^^Gregorian")
|
88
|
+
assert_equal("Common::CE2010.09.29T14:45:12.33+09:00", (common ^ obj1).to_s)
|
89
|
+
assert_equal("Common::CE2010.09.29T14:45:12.33Z", (common ^ Time.utc(2010,9,29,14,45,12,330000)).to_s)
|
90
|
+
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
91
|
+
assert_equal("Common::CE2010.09.29T14:45:12.00Z", (common ^ DateTime.new(2010,9,29,14,45,12)).to_s)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def test__julian_gregorian_change
|
96
|
+
epoch = When.when?('CE1582.10.03') ^ When.Duration('1D')
|
97
|
+
sample = [
|
98
|
+
"Common::CE1582.10.03",
|
99
|
+
"Common::CE1582.10.04",
|
100
|
+
"Common::CE1582.10.15",
|
101
|
+
"Common::CE1582.10.16"
|
102
|
+
]
|
103
|
+
4.times do
|
104
|
+
assert_equal(sample.shift, epoch.next.to_s)
|
105
|
+
end
|
106
|
+
|
107
|
+
sample = [
|
108
|
+
"Common::CE1582.10.16",
|
109
|
+
"Common::CE1582.10.15",
|
110
|
+
"Common::CE1582.10.04",
|
111
|
+
"Common::CE1582.10.03"
|
112
|
+
]
|
113
|
+
epoch = When.when?('CE1582.10.16') ^ -When.Duration('P1D')
|
114
|
+
4.times do
|
115
|
+
assert_equal(sample.shift, epoch.next.to_s)
|
116
|
+
end
|
117
|
+
|
118
|
+
assert_equal(
|
119
|
+
[["October 1582",
|
120
|
+
["-", 1, 2, 3, 4, 15, 16],
|
121
|
+
[17, 18, 19, 20, 21, 22, 23],
|
122
|
+
[24, 25, 26, 27, 28, 29, 30],
|
123
|
+
[31, "-", "-", "-", "-", "-", "-"]]],
|
124
|
+
When.when?('CE1582.10').month_included('SU') {|date, type|
|
125
|
+
case type
|
126
|
+
when When::YEAR,
|
127
|
+
When::MONTH ; date.strftime("%B %Y")
|
128
|
+
when When::WEEK ; nil
|
129
|
+
when When::DAY ; date[0]
|
130
|
+
else ; '-'
|
131
|
+
end
|
132
|
+
})
|
133
|
+
|
134
|
+
epoch = When.when?('Common?Reform=1752.09.14::CE1752.09.01') ^ When.Duration('1D')
|
135
|
+
sample = [
|
136
|
+
"Common?Reform=1752.09.14::CE1752.09.01",
|
137
|
+
"Common?Reform=1752.09.14::CE1752.09.02",
|
138
|
+
"Common?Reform=1752.09.14::CE1752.09.14",
|
139
|
+
"Common?Reform=1752.09.14::CE1752.09.15"
|
140
|
+
]
|
141
|
+
4.times do
|
142
|
+
assert_equal(sample.shift, epoch.next.to_s)
|
143
|
+
end
|
144
|
+
|
145
|
+
sample = [
|
146
|
+
"Common?Reform=1752.09.14::CE1752.09.15",
|
147
|
+
"Common?Reform=1752.09.14::CE1752.09.14",
|
148
|
+
"Common?Reform=1752.09.14::CE1752.09.02",
|
149
|
+
"Common?Reform=1752.09.14::CE1752.09.01"
|
150
|
+
]
|
151
|
+
epoch = When.when?('Common?Reform=1752.09.14::CE1752.09.15') ^ -When.Duration('1D')
|
152
|
+
4.times do
|
153
|
+
assert_equal(sample.shift, epoch.next.to_s)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: when_exe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takashi SUGA
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A multicultural and multilingualized calendar library based on ISO 8601,
|
14
14
|
ISO 19108, RFC 5545(iCalendar) and RFC6350. JSON-LD formats for TemporalPosition
|
@@ -18,6 +18,7 @@ description: A multicultural and multilingualized calendar library based on ISO
|
|
18
18
|
email:
|
19
19
|
- suchowan@box.email.ne.jp
|
20
20
|
executables:
|
21
|
+
- ".pryrc"
|
21
22
|
- irb.rc
|
22
23
|
- locales.rb
|
23
24
|
- make_ttl.rb
|
@@ -33,6 +34,7 @@ files:
|
|
33
34
|
- LICENSE.txt
|
34
35
|
- README.md
|
35
36
|
- Rakefile
|
37
|
+
- bin/.pryrc
|
36
38
|
- bin/irb.rc
|
37
39
|
- bin/locales.rb
|
38
40
|
- bin/make_ttl.rb
|
@@ -51,9 +53,12 @@ files:
|
|
51
53
|
- lib/when_exe/ephemeris/eclipse.rb
|
52
54
|
- lib/when_exe/ephemeris/moon.rb
|
53
55
|
- lib/when_exe/ephemeris/notes.rb
|
56
|
+
- lib/when_exe/ephemeris/phase_table.rb
|
54
57
|
- lib/when_exe/ephemeris/planets.rb
|
55
58
|
- lib/when_exe/ephemeris/sun.rb
|
59
|
+
- lib/when_exe/ephemeris/term_table.rb
|
56
60
|
- lib/when_exe/ephemeris/v50.rb
|
61
|
+
- lib/when_exe/events.rb
|
57
62
|
- lib/when_exe/google_api.rb
|
58
63
|
- lib/when_exe/icalendar.rb
|
59
64
|
- lib/when_exe/inspect.rb
|
@@ -158,6 +163,7 @@ files:
|
|
158
163
|
- lib/when_exe/locales/zh_TW.rb
|
159
164
|
- lib/when_exe/locales/zh_YUE.rb
|
160
165
|
- lib/when_exe/mini_application.rb
|
166
|
+
- lib/when_exe/namespace.rb
|
161
167
|
- lib/when_exe/obsolete/googlecalendar.rb
|
162
168
|
- lib/when_exe/parts/enumerator.rb
|
163
169
|
- lib/when_exe/parts/geometric_complex.rb
|
@@ -190,6 +196,7 @@ files:
|
|
190
196
|
- lib/when_exe/region/japanese/calendars.rb
|
191
197
|
- lib/when_exe/region/japanese/eclipses.rb
|
192
198
|
- lib/when_exe/region/japanese/epochs.rb
|
199
|
+
- lib/when_exe/region/japanese/location.rb
|
193
200
|
- lib/when_exe/region/japanese/nihon_shoki.rb
|
194
201
|
- lib/when_exe/region/japanese/notes.rb
|
195
202
|
- lib/when_exe/region/japanese/residues.rb
|
@@ -198,6 +205,7 @@ files:
|
|
198
205
|
- lib/when_exe/region/javanese.rb
|
199
206
|
- lib/when_exe/region/jewish.rb
|
200
207
|
- lib/when_exe/region/korean.rb
|
208
|
+
- lib/when_exe/region/location.rb
|
201
209
|
- lib/when_exe/region/m17n.rb
|
202
210
|
- lib/when_exe/region/martian.rb
|
203
211
|
- lib/when_exe/region/mayan.rb
|
@@ -208,6 +216,7 @@ files:
|
|
208
216
|
- lib/when_exe/region/roman.rb
|
209
217
|
- lib/when_exe/region/russian.rb
|
210
218
|
- lib/when_exe/region/ryukyu.rb
|
219
|
+
- lib/when_exe/region/saudi_arabian.rb
|
211
220
|
- lib/when_exe/region/shire.rb
|
212
221
|
- lib/when_exe/region/symmetry.rb
|
213
222
|
- lib/when_exe/region/thai.rb
|
@@ -220,13 +229,32 @@ files:
|
|
220
229
|
- lib/when_exe/region/world_season.rb
|
221
230
|
- lib/when_exe/region/yerm.rb
|
222
231
|
- lib/when_exe/region/zoroastrian.rb
|
232
|
+
- lib/when_exe/spatial.rb
|
223
233
|
- lib/when_exe/timestandard.rb
|
224
234
|
- lib/when_exe/tmduration.rb
|
225
235
|
- lib/when_exe/tmobjects.rb
|
226
236
|
- lib/when_exe/tmposition.rb
|
237
|
+
- lib/when_exe/tmptypes.rb
|
227
238
|
- lib/when_exe/tmreference.rb
|
228
239
|
- lib/when_exe/version.rb
|
229
240
|
- link_to_online_documents
|
241
|
+
- test/events/example-datasets
|
242
|
+
- test/events/history-dataset.csv
|
243
|
+
- test/events/japanese-holiday-index.csv
|
244
|
+
- test/events/japanese-holiday.csv
|
245
|
+
- test/events/japanese-holiday.ttl
|
246
|
+
- test/events/make_events_ttl.rb
|
247
|
+
- test/events/mori_wikichoshi.csv
|
248
|
+
- test/events/ndl_koyomi.csv
|
249
|
+
- test/events/ndl_koyomi_index.csv
|
250
|
+
- test/events/primeminister-dataset.csv
|
251
|
+
- test/events/shogun-dataset.csv
|
252
|
+
- test/events/test-history-dataset-edge-sparql.csv
|
253
|
+
- test/events/test-history-dataset-edge.csv
|
254
|
+
- test/events/test-history-dataset-sparql.csv
|
255
|
+
- test/events/test-history-dataset.csv
|
256
|
+
- test/events/test-history-events-edge.ttl
|
257
|
+
- test/events/test-history-events.csv
|
230
258
|
- test/examples/JapanHolidays.ics
|
231
259
|
- test/examples/JapanHolidaysRFC6350.ics
|
232
260
|
- test/examples/Millennium.ics
|
@@ -276,6 +304,7 @@ files:
|
|
276
304
|
- test/test/ephemeris/moon.rb
|
277
305
|
- test/test/ephemeris/planets.rb
|
278
306
|
- test/test/ephemeris/sun.rb
|
307
|
+
- test/test/events.rb
|
279
308
|
- test/test/google_api.rb
|
280
309
|
- test/test/icalendar.rb
|
281
310
|
- test/test/inspect.rb
|
@@ -315,7 +344,7 @@ files:
|
|
315
344
|
homepage: http://www.asahi-net.or.jp/~dd6t-sg/
|
316
345
|
licenses: []
|
317
346
|
metadata: {}
|
318
|
-
post_install_message:
|
347
|
+
post_install_message:
|
319
348
|
rdoc_options: []
|
320
349
|
require_paths:
|
321
350
|
- lib
|
@@ -330,95 +359,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
330
359
|
- !ruby/object:Gem::Version
|
331
360
|
version: '0'
|
332
361
|
requirements: []
|
333
|
-
|
334
|
-
|
335
|
-
signing_key:
|
362
|
+
rubygems_version: 3.2.3
|
363
|
+
signing_key:
|
336
364
|
specification_version: 4
|
337
365
|
summary: A multicultural and multilingualized calendar library based on ISO 8601,
|
338
366
|
ISO 19108, RFC 5545(iCalendar) and RFC6350
|
339
|
-
test_files:
|
340
|
-
- test/examples/JapanHolidays.ics
|
341
|
-
- test/examples/JapanHolidaysRFC6350.ics
|
342
|
-
- test/examples/Millennium.ics
|
343
|
-
- test/examples/NewYork.ics
|
344
|
-
- test/examples/Residue.m17n
|
345
|
-
- test/examples/Spatial.m17n
|
346
|
-
- test/examples/Terms.m17n
|
347
|
-
- test/examples/Test.ics
|
348
|
-
- test/examples/USA-DST.ics
|
349
|
-
- test/examples/sample.json
|
350
|
-
- test/examples/sample.xml
|
351
|
-
- test/examples/today.rb
|
352
|
-
- test/scripts.rb
|
353
|
-
- test/scripts/2.ext.rb
|
354
|
-
- test/scripts/2.rb
|
355
|
-
- test/scripts/3.ext.rb
|
356
|
-
- test/scripts/3.rb
|
357
|
-
- test/scripts/4.ext.rb
|
358
|
-
- test/scripts/4.min.rb
|
359
|
-
- test/scripts/4.rb
|
360
|
-
- test/scripts/5.ext.rb
|
361
|
-
- test/scripts/5.rb
|
362
|
-
- test/scripts/6.gcal.rb
|
363
|
-
- test/scripts/6.rb
|
364
|
-
- test/scripts/6.tz.rb
|
365
|
-
- test/scripts/7.phase.rb
|
366
|
-
- test/scripts/7.rb
|
367
|
-
- test/scripts/7.term.rb
|
368
|
-
- test/scripts/7.week.rb
|
369
|
-
- test/scripts/8.ext.rb
|
370
|
-
- test/scripts/8.rb
|
371
|
-
- test/scripts/9.ext.rb
|
372
|
-
- test/scripts/9.rb
|
373
|
-
- test/scripts/chinese-luni-solar.rb
|
374
|
-
- test/scripts/geometric_complex.rb
|
375
|
-
- test/scripts/geometric_complex.txt
|
376
|
-
- test/scripts/korea.rb
|
377
|
-
- test/scripts/thai-reviewed.txt
|
378
|
-
- test/scripts/thai.rb
|
379
|
-
- test/scripts/thai.txt
|
380
|
-
- test/test.rb
|
381
|
-
- test/test/basictypes.rb
|
382
|
-
- test/test/calendarnote.rb
|
383
|
-
- test/test/calendartypes.rb
|
384
|
-
- test/test/coordinates.rb
|
385
|
-
- test/test/ephemeris.rb
|
386
|
-
- test/test/ephemeris/moon.rb
|
387
|
-
- test/test/ephemeris/planets.rb
|
388
|
-
- test/test/ephemeris/sun.rb
|
389
|
-
- test/test/google_api.rb
|
390
|
-
- test/test/icalendar.rb
|
391
|
-
- test/test/inspect.rb
|
392
|
-
- test/test/linkeddata.rb
|
393
|
-
- test/test/obsolete/googlecalendar.rb
|
394
|
-
- test/test/parts.rb
|
395
|
-
- test/test/region/armenian.rb
|
396
|
-
- test/test/region/bahai.rb
|
397
|
-
- test/test/region/balinese.rb
|
398
|
-
- test/test/region/chinese.rb
|
399
|
-
- test/test/region/christian.rb
|
400
|
-
- test/test/region/coptic.rb
|
401
|
-
- test/test/region/discordian.rb
|
402
|
-
- test/test/region/french.rb
|
403
|
-
- test/test/region/geologicalage.rb
|
404
|
-
- test/test/region/indian.rb
|
405
|
-
- test/test/region/iran.rb
|
406
|
-
- test/test/region/islamic.rb
|
407
|
-
- test/test/region/japanese.rb
|
408
|
-
- test/test/region/jewish.rb
|
409
|
-
- test/test/region/m17n.rb
|
410
|
-
- test/test/region/mayan.rb
|
411
|
-
- test/test/region/reforms.rb
|
412
|
-
- test/test/region/residue.rb
|
413
|
-
- test/test/region/shire.rb
|
414
|
-
- test/test/region/swedish.rb
|
415
|
-
- test/test/region/thai.rb
|
416
|
-
- test/test/region/tibetan.rb
|
417
|
-
- test/test/region/vietnamese.rb
|
418
|
-
- test/test/region/yerm.rb
|
419
|
-
- test/test/region/zoroastrian.rb
|
420
|
-
- test/test/timestandard.rb
|
421
|
-
- test/test/tmobjects.rb
|
422
|
-
- test/test/tmposition.rb
|
423
|
-
- test/test/tmreference.rb
|
424
|
-
has_rdoc:
|
367
|
+
test_files: []
|