when_exe 0.2.100 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.ja.txt +25 -25
- data/LICENSE.txt +31 -31
- data/bin/irb.rc +5 -0
- data/bin/locales.rb +2 -2
- data/bin/when.rb +16 -0
- data/bin/when.rb.config +7 -0
- data/lib/when_exe.rb +616 -14
- data/lib/when_exe/basictypes.rb +615 -0
- data/lib/when_exe/calendartypes.rb +1700 -0
- data/lib/when_exe/coordinates.rb +1936 -0
- data/lib/when_exe/core/compatibility.rb +54 -0
- data/lib/when_exe/core/duration.rb +72 -72
- data/lib/when_exe/core/extension.rb +382 -0
- data/lib/when_exe/ephemeris.rb +1845 -0
- data/lib/when_exe/googlecalendar.rb +140 -0
- data/lib/when_exe/icalendar.rb +1587 -0
- data/lib/when_exe/inspect.rb +1237 -0
- data/lib/when_exe/locales/af.rb +90 -0
- data/lib/when_exe/locales/ar.rb +145 -0
- data/lib/when_exe/locales/az.rb +90 -0
- data/lib/when_exe/locales/bg.rb +90 -0
- data/lib/when_exe/locales/bn.rb +94 -0
- data/lib/when_exe/locales/bs.rb +121 -0
- data/lib/when_exe/locales/ca.rb +92 -0
- data/lib/when_exe/locales/cs.rb +107 -0
- data/lib/when_exe/locales/cy.rb +150 -0
- data/lib/when_exe/locales/da.rb +84 -0
- data/lib/when_exe/locales/de.rb +92 -0
- data/lib/when_exe/locales/de_AT.rb +92 -0
- data/lib/when_exe/locales/de_CH.rb +92 -0
- data/lib/when_exe/locales/el.rb +93 -0
- data/lib/when_exe/locales/en.rb +88 -0
- data/lib/when_exe/locales/en_AU.rb +88 -0
- data/lib/when_exe/locales/en_CA.rb +88 -0
- data/lib/when_exe/locales/en_GB.rb +88 -0
- data/lib/when_exe/locales/en_IN.rb +88 -0
- data/lib/when_exe/locales/en_NZ.rb +88 -0
- data/lib/when_exe/locales/eo.rb +89 -0
- data/lib/when_exe/locales/es.rb +84 -0
- data/lib/when_exe/locales/es_419.rb +84 -0
- data/lib/when_exe/locales/es_AR.rb +84 -0
- data/lib/when_exe/locales/es_CL.rb +84 -0
- data/lib/when_exe/locales/es_CO.rb +84 -0
- data/lib/when_exe/locales/es_MX.rb +84 -0
- data/lib/when_exe/locales/es_PE.rb +85 -0
- data/lib/when_exe/locales/es_VE.rb +84 -0
- data/lib/when_exe/locales/et.rb +94 -0
- data/lib/when_exe/locales/eu.rb +95 -0
- data/lib/when_exe/locales/fa.rb +80 -0
- data/lib/when_exe/locales/fi.rb +89 -0
- data/lib/when_exe/locales/fr.rb +88 -0
- data/lib/when_exe/locales/fr_CA.rb +88 -0
- data/lib/when_exe/locales/fr_CH.rb +88 -0
- data/lib/when_exe/locales/gl.rb +81 -0
- data/lib/when_exe/locales/he.rb +84 -0
- data/lib/when_exe/locales/hi.rb +80 -0
- data/lib/when_exe/locales/hi_IN.rb +84 -0
- data/lib/when_exe/locales/hr.rb +128 -0
- data/lib/when_exe/locales/hu.rb +84 -0
- data/lib/when_exe/locales/id.rb +89 -0
- data/lib/when_exe/locales/is.rb +89 -0
- data/lib/when_exe/locales/it.rb +87 -0
- data/lib/when_exe/locales/it_CH.rb +87 -0
- data/lib/when_exe/locales/ja.rb +78 -0
- data/lib/when_exe/locales/kn.rb +86 -0
- data/lib/when_exe/locales/ko.rb +78 -0
- data/lib/when_exe/locales/links.rb +2342 -0
- data/lib/when_exe/locales/lo.rb +123 -0
- data/lib/when_exe/locales/locales.rb +91 -0
- data/lib/when_exe/locales/lt.rb +111 -0
- data/lib/when_exe/locales/lv.rb +118 -0
- data/lib/when_exe/locales/mk.rb +93 -0
- data/lib/when_exe/locales/mn.rb +80 -0
- data/lib/when_exe/locales/nb.rb +81 -0
- data/lib/when_exe/locales/ne.rb +81 -0
- data/lib/when_exe/locales/nl.rb +92 -0
- data/lib/when_exe/locales/nn.rb +73 -0
- data/lib/when_exe/locales/or.rb +84 -0
- data/lib/when_exe/locales/pl.rb +128 -0
- data/lib/when_exe/locales/pt.rb +88 -0
- data/lib/when_exe/locales/pt_BR.rb +88 -0
- data/lib/when_exe/locales/rm.rb +143 -0
- data/lib/when_exe/locales/ro.rb +105 -0
- data/lib/when_exe/locales/ru.rb +128 -0
- data/lib/when_exe/locales/sk.rb +109 -0
- data/lib/when_exe/locales/sl.rb +122 -0
- data/lib/when_exe/locales/sr.rb +122 -0
- data/lib/when_exe/locales/sv.rb +83 -0
- data/lib/when_exe/locales/sw.rb +89 -0
- data/lib/when_exe/locales/th.rb +78 -0
- data/lib/when_exe/locales/tl.rb +99 -0
- data/lib/when_exe/locales/tr.rb +96 -0
- data/lib/when_exe/locales/uk.rb +128 -0
- data/lib/when_exe/locales/uz.rb +128 -0
- data/lib/when_exe/locales/vi.rb +94 -0
- data/lib/when_exe/locales/wo.rb +82 -0
- data/lib/when_exe/locales/zh_CN.rb +77 -0
- data/lib/when_exe/locales/zh_HK.rb +77 -0
- data/lib/when_exe/locales/zh_TW.rb +77 -0
- data/lib/when_exe/mini_application.rb +252 -0
- data/lib/when_exe/parts/enumerator.rb +472 -0
- data/lib/when_exe/parts/geometric_complex.rb +379 -0
- data/lib/when_exe/parts/locale.rb +513 -0
- data/lib/when_exe/parts/method_cash.rb +207 -0
- data/lib/when_exe/parts/resource.rb +806 -0
- data/lib/when_exe/parts/timezone.rb +182 -0
- data/lib/when_exe/region/bahai.rb +145 -0
- data/lib/when_exe/region/balinese.rb +627 -0
- data/lib/when_exe/region/chinese.rb +896 -0
- data/lib/when_exe/region/chinese_calendar.rb +919 -0
- data/lib/when_exe/region/chinese_epoch.rb +1245 -0
- data/lib/when_exe/region/christian.rb +644 -0
- data/lib/when_exe/region/far_east.rb +192 -0
- data/lib/when_exe/region/french.rb +66 -0
- data/lib/when_exe/region/geologicalage.rb +639 -0
- data/lib/when_exe/region/indian.rb +1066 -0
- data/lib/when_exe/region/iranian.rb +66 -0
- data/lib/when_exe/region/islamic.rb +105 -0
- data/lib/when_exe/region/japanese.rb +851 -0
- data/lib/when_exe/region/japanese_notes.rb +964 -0
- data/lib/when_exe/region/japanese_residues.rb +1149 -0
- data/lib/when_exe/region/javanese.rb +228 -0
- data/lib/when_exe/region/jewish.rb +127 -0
- data/lib/when_exe/region/korean.rb +267 -0
- data/lib/when_exe/region/m17n.rb +115 -0
- data/lib/when_exe/region/martian.rb +215 -0
- data/lib/when_exe/region/mayan.rb +122 -0
- data/lib/when_exe/region/moon.rb +333 -0
- data/lib/when_exe/region/nihon_shoki.rb +73 -0
- data/lib/when_exe/region/planets.rb +585 -0
- data/lib/when_exe/region/pope.rb +298 -0
- data/lib/when_exe/region/residue.rb +229 -0
- data/lib/when_exe/region/roman.rb +325 -0
- data/lib/when_exe/region/ryukyu.rb +98 -0
- data/lib/when_exe/region/shire.rb +254 -0
- data/lib/when_exe/region/sun.rb +210 -0
- data/lib/when_exe/region/thai.rb +227 -0
- data/lib/when_exe/region/tibetan.rb +233 -0
- data/lib/when_exe/region/v50.rb +111 -0
- data/lib/when_exe/region/vietnamese.rb +173 -0
- data/lib/when_exe/region/world.rb +197 -0
- data/lib/when_exe/timestandard.rb +547 -0
- data/lib/when_exe/tmduration.rb +330 -330
- data/lib/when_exe/tmobjects.rb +1295 -0
- data/lib/when_exe/tmposition.rb +1955 -0
- data/lib/when_exe/tmreference.rb +1547 -0
- data/lib/when_exe/version.rb +10 -3
- data/link_to_online_documents +4 -0
- data/test/examples/JapanHolidays.ics +456 -0
- data/test/examples/Millennium.ics +17 -0
- data/test/examples/NewYork.ics +61 -0
- data/test/examples/Residue.m17n +135 -0
- data/test/examples/Spatial.m17n +179 -0
- data/test/examples/Terms.m17n +39 -0
- data/test/examples/Test.ics +53 -0
- data/test/examples/USA-DST.ics +61 -0
- data/test/examples/geometric_complex.rb +41 -0
- data/test/examples/sample.xml +14 -0
- data/test/examples/today.rb +61 -0
- data/test/test.rb +54 -19
- data/test/test.rb.config +1 -0
- data/test/test/basictypes.rb +368 -0
- data/test/test/calendartypes.rb +57 -0
- data/test/test/coordinates.rb +380 -0
- data/test/test/ephemeris.rb +127 -0
- data/test/test/googlecalendar.rb +167 -0
- data/test/test/icalendar.rb +848 -0
- data/test/test/inspect.rb +115 -0
- data/test/test/parts.rb +480 -0
- data/test/test/region/chinese.rb +161 -0
- data/test/test/region/french.rb +33 -0
- data/test/test/region/geologicalage.rb +14 -0
- data/test/test/region/indian.rb +55 -0
- data/test/test/region/iran.rb +54 -0
- data/test/test/region/islamic.rb +18 -0
- data/test/test/region/japanese.rb +62 -0
- data/test/test/region/jewish.rb +61 -0
- data/test/test/region/m17n.rb +181 -0
- data/test/test/region/mayan.rb +78 -0
- data/test/test/region/moon.rb +14 -0
- data/test/test/region/planets.rb +14 -0
- data/test/test/region/residue.rb +123 -0
- data/test/test/region/sun.rb +14 -0
- data/test/test/region/thai.rb +94 -0
- data/test/test/region/tibetan.rb +30 -0
- data/test/test/tmobjects.rb +356 -57
- data/test/test/tmposition.rb +237 -0
- data/test/test/tmreference.rb +95 -0
- data/when_exe.gemspec +2 -2
- metadata +187 -7
- data/doc/COPYING +0 -31
- data/doc/COPYING.ja +0 -25
- data/doc/document_url +0 -1
@@ -0,0 +1,181 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2011-2013 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 Test
|
10
|
+
|
11
|
+
class M17n < Test::Unit::TestCase
|
12
|
+
|
13
|
+
First = [
|
14
|
+
["CalendarTerms", "CalendarTerms", "http://en.wikipedia.org/wiki/CalendarTerms"],
|
15
|
+
["Month", "月", "http://ja.wikipedia.org/wiki/%E6%9C%88_(%E6%9A%A6)"],
|
16
|
+
["Month", "月", "http://ja.wikipedia.org/wiki/%E6%9C%88_(%E6%9A%A6)"],
|
17
|
+
["January", "1月", "http://ja.wikipedia.org/wiki/1%E6%9C%88"]
|
18
|
+
]
|
19
|
+
|
20
|
+
Second = [
|
21
|
+
["January", "1月", "http://ja.wikipedia.org/wiki/1%E6%9C%88" ],
|
22
|
+
["February", "2月", "http://ja.wikipedia.org/wiki/2%E6%9C%88" ],
|
23
|
+
["March", "3月", "http://ja.wikipedia.org/wiki/3%E6%9C%88" ],
|
24
|
+
["April", "4月", "http://ja.wikipedia.org/wiki/4%E6%9C%88" ],
|
25
|
+
["May", "5月", "http://ja.wikipedia.org/wiki/5%E6%9C%88" ],
|
26
|
+
["June", "6月", "http://ja.wikipedia.org/wiki/6%E6%9C%88" ],
|
27
|
+
["July", "7月", "http://ja.wikipedia.org/wiki/7%E6%9C%88" ],
|
28
|
+
["August", "8月", "http://ja.wikipedia.org/wiki/8%E6%9C%88" ],
|
29
|
+
["September", "9月", "http://ja.wikipedia.org/wiki/9%E6%9C%88" ],
|
30
|
+
["October", "10月", "http://ja.wikipedia.org/wiki/10%E6%9C%88"],
|
31
|
+
["November", "11月", "http://ja.wikipedia.org/wiki/11%E6%9C%88"],
|
32
|
+
["December", "12月", "http://ja.wikipedia.org/wiki/12%E6%9C%88"]
|
33
|
+
]
|
34
|
+
|
35
|
+
def test__m17n_1
|
36
|
+
['examples/Terms.m17n', '_m:CalendarTerms'].each do |head|
|
37
|
+
When.Resource(head)
|
38
|
+
|
39
|
+
# pp When::Parts::Resource[head].child.map {|v| v.label}
|
40
|
+
assert_equal('Month', When::Parts::Resource[head].child[1].label.to_s)
|
41
|
+
|
42
|
+
assert_equal(First,
|
43
|
+
[head,
|
44
|
+
head + '::Month',
|
45
|
+
head + '::Month::Month',
|
46
|
+
head + '::Month::January'].inject([]) { |first, iri|
|
47
|
+
obj = When::Parts::Resource[iri]
|
48
|
+
first << [obj.label, obj.translate('ja'), obj.reference('ja')]
|
49
|
+
}
|
50
|
+
)
|
51
|
+
|
52
|
+
assert_equal(Second,
|
53
|
+
When::Parts::Resource[head + '::Month'].child.inject([]) { |second, obj|
|
54
|
+
second << [obj.label, obj.translate('ja'), obj.reference('ja')]
|
55
|
+
}
|
56
|
+
)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def test__m17n_2
|
61
|
+
march = When.m17n(['en:March=en_ns:', 'ja:3月=ja_ns:'],
|
62
|
+
{'en_ns'=>'http://en.wikipedia.org/wiki/',
|
63
|
+
'ja_ns'=>'http://ja.wikipedia.org/wiki/'})
|
64
|
+
|
65
|
+
[
|
66
|
+
['ja', ["3月", "3月", "http://ja.wikipedia.org/wiki/3%E6%9C%88"]],
|
67
|
+
['en', ["March", "March", "http://en.wikipedia.org/wiki/March" ]]
|
68
|
+
].each do |sample|
|
69
|
+
assert_equal(sample[1], [march.translate(sample[0]), march.translate(sample[0]), march.reference(sample[0])])
|
70
|
+
end
|
71
|
+
|
72
|
+
date = When.when?('CE2010.4.12')
|
73
|
+
era = When.era('CE')[0]
|
74
|
+
# assert_equal(Second.map {|v| v[0]}, era.m17n('[::_m:CalendarTerms::Month::*]').map {|v| v.to_s})
|
75
|
+
assert_equal(Second.map {|v| v[0]}, When.m17n('[::_m:CalendarTerms::Month::*]').map {|v| v.to_s})
|
76
|
+
assert_equal(["Accession", true, "http://hosi.org/When/BasicTypes/M17n/EpochEvents::Accession"],
|
77
|
+
[era['::_m:EpochEvents::Accession'].to_s,
|
78
|
+
era['::_m:EpochEvents::Accession'].registered?,
|
79
|
+
era['::_m:EpochEvents::Accession'].iri])
|
80
|
+
|
81
|
+
assert_equal(era['::_m:EpochEvents::*'].map {|v| v.to_s},
|
82
|
+
["Accession", "FelicitousEvent", "NaturalDisaster", "InauspiciousYear", "Foundation", "CalendarReform"])
|
83
|
+
|
84
|
+
term = []
|
85
|
+
term << When.m17n('[日本語, English]', nil, ', en').translate('ja')
|
86
|
+
term << When.m17n('[日本語, English]', nil, ['ja', 'en']).translate('ja')
|
87
|
+
term << When.m17n('[ja:日本語, en:English]').translate('ja')
|
88
|
+
term << When.m17n(['ja:日本語', 'en:English']).translate('ja')
|
89
|
+
term.each do |result|
|
90
|
+
assert_equal("日本語", result)
|
91
|
+
end
|
92
|
+
|
93
|
+
date = When.when?('明治6.10.1')
|
94
|
+
era = When.era('明治')[0]
|
95
|
+
event = era.reference_event
|
96
|
+
assert_equal("代始", event.translate('ja'))
|
97
|
+
assert_equal(["Accession", true, "http://hosi.org/When/BasicTypes/M17n/EpochEvents::Accession"],
|
98
|
+
[era['::_m:EpochEvents::Accession'].to_s,
|
99
|
+
era['::_m:EpochEvents::Accession'].registered?,
|
100
|
+
era['::_m:EpochEvents::Accession'].iri])
|
101
|
+
end
|
102
|
+
|
103
|
+
def test__m17n_3
|
104
|
+
january = When.Resource('_m:CalendarTerms::Month::January')
|
105
|
+
[['en', 'January'], ['ja', '1月'], ['fr', 'janvier']].each do |sample|
|
106
|
+
assert_equal(sample[1], january.translate(sample[0]))
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def test__m17n_4
|
111
|
+
january = When.Resource('_m:CalendarTerms::Month::January')
|
112
|
+
[['en', 'January'], ['ja', '1月'], ['fr', 'janvier']].each do |sample|
|
113
|
+
assert_equal(sample[1], january.translate(sample[0]))
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def test__m17n_5
|
118
|
+
month = When.Resource('_m:CalendarTerms::Month')
|
119
|
+
[['en', 'Month'], ['ja', '月'], ['fr', 'Mois']].each do |sample|
|
120
|
+
assert_equal(sample[1], month.translate(sample[0]))
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
def test__to_hash
|
125
|
+
[
|
126
|
+
['HLC0.0.0.0.0',
|
127
|
+
{:calendar=>["_e:Mayan::PHLC",-13], :sdn=>584283, :cal_date=>[13, 0, 0, 0, 0],
|
128
|
+
:notes=>[[{:note=>"Trecena", :value=>"Trecena(4/13)"},
|
129
|
+
{:note=>"Tzolk'in", :value=>"Ajaw(19/20)"},
|
130
|
+
{:note=>"Lords_of_the_Night", :value=>"G9(0/9)"},
|
131
|
+
{:note=>"Haab'", :value=>"8Kumk'u/365"}]]}],
|
132
|
+
|
133
|
+
['1985-1-1',
|
134
|
+
{:calendar=>["_c:Gregorian"], :sdn=>2446067, :cal_date=>[1985, 1, 1],
|
135
|
+
:notes=>[[{:note=>"Month", :value=>"January"}],[]]}],
|
136
|
+
|
137
|
+
['明治7.5.7',
|
138
|
+
{:calendar=>["_e:Japanese::明治",1867], :sdn=>2405651, :cal_date=>[7, 5, 7],
|
139
|
+
:notes=>[[{:note=>"干支", :value=>"庚午(6)", :position=>"共通"}],
|
140
|
+
[{:note=>"月名", :value=>"May", :position=>"月建"}],
|
141
|
+
[{:note=>"干支", :value=>"甲子(0)", :position=>"共通"},
|
142
|
+
{:note=>"六曜", :value=>"大安", :position=>"民間"}]]}],
|
143
|
+
|
144
|
+
['明治17.5.7',
|
145
|
+
{:calendar=>["_e:Japanese::明治",1867], :sdn=>2409304, :cal_date=>[17, 5, 7],
|
146
|
+
:notes=>[[{:note=>"干支", :value=>"庚辰(16)", :position=>"共通"}],
|
147
|
+
[{:note=>"月名", :value=>"May", :position=>"月建"}],
|
148
|
+
[{:note=>"干支", :value=>"丁巳(53)", :position=>"共通"},
|
149
|
+
{:note=>"六曜", :value=>"友引", :position=>"民間"}]]}],
|
150
|
+
|
151
|
+
['CE-2010.06.08T12:00:00+09:00',
|
152
|
+
{:calendar=>["_e:Common::BCE", 1, true], :sdn=>987064, :cal_date=>[-2011, 6, 8],
|
153
|
+
:notes=>[[{:note=>"Month", :value=>"June"}],[]],
|
154
|
+
:clk_time=>[987064, 12, 0, 0]}],
|
155
|
+
|
156
|
+
[11,
|
157
|
+
{:calendar=>["_tm:JulianDate"], :sdn=>11,
|
158
|
+
:notes=>[[{:note=>"Week", :value=>"Friday(4)"},
|
159
|
+
{:note=>"干支", :value=>"甲子(0)"}]]}],
|
160
|
+
|
161
|
+
[11.0,
|
162
|
+
{:calendar=>["_tm:JulianDate"], :sdn=>11,
|
163
|
+
:notes=>[[{:note=>"Week", :value=>"Friday(4)"},
|
164
|
+
{:note=>"干支", :value=>"甲子(0)"}]],
|
165
|
+
:clk_time=>[11, 12, 0, 0]}]
|
166
|
+
|
167
|
+
].each do |sample|
|
168
|
+
date, verify = sample
|
169
|
+
list = When.when?(date).to_hash({:simple=>true})
|
170
|
+
[:calendar, :cal_date, :sdn, :clk_time].each do |key|
|
171
|
+
assert_equal(verify[key], list[key])
|
172
|
+
end
|
173
|
+
verify[:notes].each_index do |i|
|
174
|
+
verify[:notes][i].each_index do |k|
|
175
|
+
assert_equal(verify[:notes][i][k], list[:notes][i][k])
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2011-2012 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 Test
|
10
|
+
|
11
|
+
class Mayan < Test::Unit::TestCase
|
12
|
+
def test__mayan_epoch
|
13
|
+
[['PHLC13.0.0.0.0', 'PHLC13(0000).00.00.00.00', 584283],
|
14
|
+
['HLC0.0.0.0.1', 'HLC00.00.00.00.01', 584284],
|
15
|
+
['HLC13.0.0.0.0', 'HLC13.00.00.00.00', 2456283],
|
16
|
+
['HLC13.0.0.0.1', 'NLC00(0013).00.00.00.01', 2456284]].each do |sample|
|
17
|
+
date = When.when?(sample.shift)
|
18
|
+
assert_equal(sample, [date.to_s, date.to_i])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test__mayan_period
|
23
|
+
date = When.when?('HLC0.0.0.0.1')
|
24
|
+
period = When.Duration('P2X1X3Y4M5D')
|
25
|
+
assert_equal('HLC02.01.03.04.06', (date + period).to_s)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test__haab
|
29
|
+
haab = When.Resource("_co:Mayan::Haab'")
|
30
|
+
assert_equal("ハアブ", haab.label.translate('ja'))
|
31
|
+
assert_equal("http://en.wikipedia.org/wiki/Haab'", haab.label.reference)
|
32
|
+
pop = When.Resource("_co:Mayan::Haab'::Pop")
|
33
|
+
assert_equal("Pop", pop.label.translate('en'))
|
34
|
+
assert_equal("http://en.wikipedia.org/wiki/File:Maya-Pop.jpg", pop.label.reference)
|
35
|
+
date0 = When.when?('2011-05-16T12:34:56Z')
|
36
|
+
sample = [
|
37
|
+
"2012-04-12T12:34:56Z",
|
38
|
+
"2012-04-13T12:34:56Z",
|
39
|
+
"2012-04-14T12:34:56Z"
|
40
|
+
]
|
41
|
+
[10,11,12].each do |i|
|
42
|
+
assert_equal(sample.shift, (date0 & pop[i]).to_s)
|
43
|
+
end
|
44
|
+
assert_equal(42, When.when?('2011-05-15') % haab)
|
45
|
+
h = haab % When.when?('2011-05-15')
|
46
|
+
assert_equal(["Sip", 2], [h.label.to_s, h.difference])
|
47
|
+
end
|
48
|
+
|
49
|
+
def test__tzolkin
|
50
|
+
trecena = When.Resource("_co:Mayan::Trecena")
|
51
|
+
assert_equal("トレセナ", trecena.label.translate('ja'))
|
52
|
+
assert_equal("http://en.wikipedia.org/wiki/Trecena", trecena.label.reference)
|
53
|
+
assert_equal(2, When.when?('2011-05-15') % trecena)
|
54
|
+
|
55
|
+
|
56
|
+
tzolkin = When.Resource("_co:Mayan::Tzolk'in")
|
57
|
+
assert_equal("ツォルキン", tzolkin.label.translate('ja'))
|
58
|
+
assert_equal("http://en.wikipedia.org/wiki/Tzolk'in", tzolkin.label.reference)
|
59
|
+
ajaw = When.Resource("_co:Mayan::Tzolk'in::Ajaw")
|
60
|
+
assert_equal("Ajaw", ajaw.label.translate('en'))
|
61
|
+
assert_equal("http://en.wikipedia.org/wiki/File:MAYA-g-log-cal-D20-Ajaw-cdxW.png", ajaw.label.reference('alias'))
|
62
|
+
date0 = When.when?('2011-05-16T12:34:56Z')
|
63
|
+
sample = [
|
64
|
+
"2011-05-21T12:34:56Z",
|
65
|
+
"2011-05-21T12:34:56Z",
|
66
|
+
"2011-05-21T12:34:56Z"
|
67
|
+
]
|
68
|
+
[10,11,12].each do |i|
|
69
|
+
assert_equal(sample.shift, (date0 & ajaw).to_s)
|
70
|
+
end
|
71
|
+
assert_equal(13, When.when?('2011-05-15') % tzolkin)
|
72
|
+
assert_equal('Ix', (tzolkin % When.when?('2011-05-15')).label.to_s)
|
73
|
+
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
74
|
+
assert_equal('Ix', (tzolkin % Date.new(2011,5,15)).label.to_s)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2011 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 Test::Ephemeris
|
10
|
+
class Moon < Test::Unit::TestCase
|
11
|
+
def test_nothing
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2011 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 Test::Ephemeris
|
10
|
+
class Planets < Test::Unit::TestCase
|
11
|
+
def test_nothing
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2011-2012 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 Test
|
10
|
+
|
11
|
+
class Residue < Test::Unit::TestCase
|
12
|
+
def test__enumerator0
|
13
|
+
list = []
|
14
|
+
res = When::Coordinates::Residue.new(365.2422, 29.530589)
|
15
|
+
res.each({:error=>1E-10}) do |v|
|
16
|
+
list << v[0..1]
|
17
|
+
end
|
18
|
+
assert_equal(
|
19
|
+
[[12, 1],
|
20
|
+
[25, 2],
|
21
|
+
[37, 3],
|
22
|
+
[99, 8],
|
23
|
+
[136, 11],
|
24
|
+
[235, 19],
|
25
|
+
[4131, 334],
|
26
|
+
[8497, 687],
|
27
|
+
[12628, 1021],
|
28
|
+
[33753, 2729],
|
29
|
+
[46381, 3750],
|
30
|
+
[219277, 17729],
|
31
|
+
[923489, 74666]], list)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test__kanshi
|
35
|
+
['_co:CommonResidue', 'examples/Residue.m17n'].each do |iri|
|
36
|
+
assert_equal("Week", When.Resource(iri + '::Week').label)
|
37
|
+
assert_equal("Monday", When.Resource(iri + '::Week::Monday').label)
|
38
|
+
assert_equal(7, When.Resource(iri + '::Week::Friday').divisor)
|
39
|
+
assert_equal(6, When.Resource(iri + '::Week::Sunday').remainder)
|
40
|
+
assert_equal(7, When.Resource(iri + '::Week::Sunday').divisor)
|
41
|
+
assert_equal("日曜日", When.Resource(iri + '::Week::Sunday::Sunday').translate('ja'))
|
42
|
+
|
43
|
+
sample = [
|
44
|
+
["Monday", "月曜日", "http://en.wikipedia.org/wiki/Monday"],
|
45
|
+
["Tuesday", "火曜日", "http://en.wikipedia.org/wiki/Tuesday"],
|
46
|
+
["Wednesday", "水曜日", "http://en.wikipedia.org/wiki/Wednesday"],
|
47
|
+
["Thursday", "木曜日", "http://en.wikipedia.org/wiki/Thursday"],
|
48
|
+
["Friday", "金曜日", "http://en.wikipedia.org/wiki/Friday"],
|
49
|
+
["Saturday", "土曜日", "http://en.wikipedia.org/wiki/Saturday"],
|
50
|
+
["Sunday", "日曜日", "http://en.wikipedia.org/wiki/Sunday"]
|
51
|
+
]
|
52
|
+
assert_equal(7, When::Parts::Resource[iri + '::Week'].child.size)
|
53
|
+
When::Parts::Resource[iri + '::Week'].child.each do |obj|
|
54
|
+
name = obj.label
|
55
|
+
assert_equal(sample.shift, [name.label, name.translate('ja'), name.reference('en')])
|
56
|
+
end
|
57
|
+
|
58
|
+
stem = When.Resource(iri + '::干')
|
59
|
+
kinoto = When.Resource(iri + '::干::乙')
|
60
|
+
ushi = When.Resource(iri + '::支::丑')
|
61
|
+
kinoto_ushi = When.Resource(iri + '::干支::乙丑')
|
62
|
+
|
63
|
+
sample = [
|
64
|
+
["干", 10, 0],
|
65
|
+
["乙", 10, 1],
|
66
|
+
["丑", 12, 1]
|
67
|
+
]
|
68
|
+
[stem, kinoto, ushi].each do |v|
|
69
|
+
assert_equal(sample.shift, [v.label, v.divisor, v.remainder])
|
70
|
+
end
|
71
|
+
|
72
|
+
assert_equal("hinoto", stem[3].label.translate('en'))
|
73
|
+
|
74
|
+
date0 = When.when?('2011-05-16T12:34:56Z')
|
75
|
+
date = date0 & (kinoto & ushi)
|
76
|
+
assert_equal("2011-07-09T12:34:56Z", date.to_s)
|
77
|
+
|
78
|
+
date = date0 & (kinoto & ushi).to('day')
|
79
|
+
assert_equal("2011-07-09T12:34:56Z", date.to_s)
|
80
|
+
|
81
|
+
date = date0 & (kinoto & ushi) / 'day'
|
82
|
+
assert_equal("2011-07-09T12:34:56Z", date.to_s)
|
83
|
+
|
84
|
+
date = date0 & (kinoto & ushi).to('year')
|
85
|
+
assert_equal("2045-05-16T12:34:56Z", date.to_s)
|
86
|
+
|
87
|
+
date = date0 & kinoto_ushi / 'year'
|
88
|
+
assert_equal("2045-05-16T12:34:56Z", date.to_s)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def test__epoch_in_CE
|
93
|
+
cals = [
|
94
|
+
'Gregorian',
|
95
|
+
'EgyptianCoptic',
|
96
|
+
'EthiopianCoptic',
|
97
|
+
'IndianNationalSolar',
|
98
|
+
'HinduSolar?type=SBV',
|
99
|
+
'HinduSolar?type=SBVZ',
|
100
|
+
'HinduSolar?type=SBS',
|
101
|
+
'HinduSolar?type=SBSZ',
|
102
|
+
# 'HinduLuniSolar?type=SBVA',
|
103
|
+
# 'HinduLuniSolar?type=SBVZA',
|
104
|
+
# 'HinduLuniSolar?type=SBSA',
|
105
|
+
# 'HinduLuniSolar?type=SBSZA',
|
106
|
+
'SolarHejri',
|
107
|
+
'Jewish',
|
108
|
+
'ThaiB',
|
109
|
+
# 'ThaiC',
|
110
|
+
'Tibetan',
|
111
|
+
]
|
112
|
+
eto = When.Resource('_co:CommonResidue::干支').to('year')
|
113
|
+
today = When.when?('2012-06-13')
|
114
|
+
assert_equal([[28, 246778, 246778]],
|
115
|
+
cals.map { |cal|
|
116
|
+
date = When.Calendar(cal) ^ today
|
117
|
+
[date % eto, (eto & date).to_i/10, (date & eto).to_i/10]
|
118
|
+
}.uniq
|
119
|
+
)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2011 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 Test::Ephemeris
|
10
|
+
class Sun < Test::Unit::TestCase
|
11
|
+
def test_nothing
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2011-2013 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 Test
|
10
|
+
|
11
|
+
class Thai < Test::Unit::TestCase
|
12
|
+
def test_thai_date
|
13
|
+
|
14
|
+
date = When.Resource('_c:ThaiC') ^ When.when?('2011-05-16')
|
15
|
+
[["1373-07-15", 2455698],
|
16
|
+
["1373-07<01", 2455699],
|
17
|
+
["1373-07<02", 2455700]].each do |sample|
|
18
|
+
assert_equal(sample, [date.to_s, date.to_i])
|
19
|
+
date += When.Duration('P1D')
|
20
|
+
end
|
21
|
+
|
22
|
+
[["1373-07<03", 2455701],
|
23
|
+
["1373-08-03", 2455716],
|
24
|
+
["1373-08<03", 2455731],
|
25
|
+
["1373-09-03", 2455745],
|
26
|
+
["1373-09<03", 2455760],
|
27
|
+
["1373-10-03", 2455775],
|
28
|
+
["1373-10<03", 2455790],
|
29
|
+
["1373-11-03", 2455804],
|
30
|
+
["1373-11<03", 2455819],
|
31
|
+
["1373-12-03", 2455834]].each do |sample|
|
32
|
+
assert_equal(sample, [date.to_s, date.to_i])
|
33
|
+
date += When.Duration('P1M')
|
34
|
+
end
|
35
|
+
|
36
|
+
date = When.Resource('_c:ThaiB') ^ When.when?('2011-05-16')
|
37
|
+
[["1373-06-14", 2455698],
|
38
|
+
["1373-06-15", 2455699],
|
39
|
+
["1373-06<01", 2455700]].each do |sample|
|
40
|
+
assert_equal(sample, [date.to_s, date.to_i])
|
41
|
+
date += When.Duration('P1D')
|
42
|
+
end
|
43
|
+
|
44
|
+
[["1373-06<02", 2455701],
|
45
|
+
["1373-07-02", 2455716],
|
46
|
+
["1373-07<02", 2455731],
|
47
|
+
["1373-08-02", 2455745],
|
48
|
+
["1373-08<02", 2455760],
|
49
|
+
["1373-09-02", 2455775],
|
50
|
+
["1373-09<02", 2455790],
|
51
|
+
["1373-10-02", 2455804],
|
52
|
+
["1373-10<02", 2455819],
|
53
|
+
["1373-11-02", 2455834],
|
54
|
+
["1373-11<02", 2455849],
|
55
|
+
["1373-12-02", 2455863],
|
56
|
+
["1373-12<02", 2455878],
|
57
|
+
["1374-01-02", 2455893],
|
58
|
+
["1374-01<02", 2455908],
|
59
|
+
["1374-02-02", 2455922],
|
60
|
+
["1374-02<02", 2455937],
|
61
|
+
["1374-03-02", 2455952],
|
62
|
+
["1374-03<02", 2455967],
|
63
|
+
["1374-04-02", 2455981],
|
64
|
+
["1374-04<02", 2455996],
|
65
|
+
["1374-05-02", 2456011],
|
66
|
+
["1374-05<02", 2456026],
|
67
|
+
["1374-06-02", 2456040],
|
68
|
+
["1374-06<02", 2456055],
|
69
|
+
["1374-07-02", 2456070],
|
70
|
+
["1374-07<02", 2456085],
|
71
|
+
["1374-08&02", 2456099],
|
72
|
+
["1374-08*02", 2456114],
|
73
|
+
["1374-08-02", 2456129],
|
74
|
+
["1374-08<02", 2456144],
|
75
|
+
["1374-09-02", 2456159],
|
76
|
+
["1374-09<02", 2456174],
|
77
|
+
["1374-10-02", 2456188],
|
78
|
+
["1374-10<02", 2456203],
|
79
|
+
["1374-11-02", 2456218],
|
80
|
+
["1374-11<02", 2456233],
|
81
|
+
["1374-12-02", 2456247],
|
82
|
+
["1374-12<02", 2456262],
|
83
|
+
["1375-01-02", 2456277]].each do |sample|
|
84
|
+
assert_equal(sample, [date.to_s, date.to_i])
|
85
|
+
date += When.Duration('P1M')
|
86
|
+
end
|
87
|
+
|
88
|
+
date = When.when?('1374-08&02', {:frame=>When.Resource('_c:ThaiB')})
|
89
|
+
assert_equal(["1374-08&02", 2456099, "adhika Āṣāḍha Śuklapakṣa"],
|
90
|
+
[date.to_s, date.to_i, date.name('Month').translate('en')])
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|