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,57 @@
|
|
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::CalendarTypes
|
10
|
+
|
11
|
+
class UTC < Test::Unit::TestCase
|
12
|
+
def test__utc
|
13
|
+
assert_equal("+00:00", When.utc.tzname[0].to_s)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class TableBased < Test::Unit::TestCase
|
18
|
+
def test_nothing
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class PatternTableBasedLuniSolar < Test::Unit::TestCase
|
23
|
+
def test__japanese
|
24
|
+
|
25
|
+
frame = When.Resource('Japanese', '_c:')
|
26
|
+
date = When.when?('16000101^Japanese')
|
27
|
+
assert_equal(["1600-01-01", 2305493], [date.to_s, date.to_i])
|
28
|
+
assert_equal(2305493, frame._coordinates_to_number(1600-454,0,0))
|
29
|
+
assert_equal([1146, 0, 0], frame._number_to_coordinates(2305493))
|
30
|
+
|
31
|
+
date = When.when?('0594-09=12^Japanese')
|
32
|
+
assert_equal(["0594-09=12", 1938320], [date.to_s, date.to_i])
|
33
|
+
assert_equal(594, date['YEAR'])
|
34
|
+
assert_equal(When::BasicTypes::M17n, date.name('Month').class)
|
35
|
+
|
36
|
+
result = []
|
37
|
+
(date ^ When::TM::Calendar).each do |d|
|
38
|
+
result << d.to_s
|
39
|
+
end
|
40
|
+
result.sort!
|
41
|
+
|
42
|
+
sample = ["0594-09=12", "0594-11-02", "0594-11-02"] #TODO �Ȃ� Greg 2��?
|
43
|
+
# assert_equal(sample, result)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class CyclicTableBased < Test::Unit::TestCase
|
48
|
+
def test__islamic
|
49
|
+
frame = When.Resource('_c:TabularIslamic')
|
50
|
+
date = When.when?('00010101^TabularIslamic')
|
51
|
+
assert_equal(["0001-01-01", 1948440], [date.to_s, date.to_i])
|
52
|
+
assert_equal(1959071, frame._coordinates_to_number(31,0,0))
|
53
|
+
assert_equal([31, 0, 0], frame._number_to_coordinates(1948440+10631))
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
@@ -0,0 +1,380 @@
|
|
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::Coordinates
|
10
|
+
|
11
|
+
#
|
12
|
+
# 剰余類
|
13
|
+
#
|
14
|
+
class Residue < Test::Unit::TestCase
|
15
|
+
|
16
|
+
def test__intersection
|
17
|
+
r1 = When::Coordinates::Residue.new(3,10)
|
18
|
+
r2 = When::Coordinates::Residue.new(5,12)
|
19
|
+
r3 = When::Coordinates::Residue.new(6,12)
|
20
|
+
r = r1 & r2
|
21
|
+
assert_equal([53,60], [r.remainder, r.divisor])
|
22
|
+
assert_nil(r1 & r3)
|
23
|
+
|
24
|
+
r4 = When::Coordinates::Residue.new(2,7)
|
25
|
+
date1 = When.when?(2440587.5)
|
26
|
+
assert_equal(2440593.5, (date1 & r4).to_f)
|
27
|
+
|
28
|
+
r5 = When::Coordinates::Residue.new(3,7)
|
29
|
+
date2 = When.when?("19820606^^Julian")
|
30
|
+
assert_equal("1982-06-11", (date2 & r5).to_s)
|
31
|
+
assert_equal("1982-06-11", (r5 & date2).to_s)
|
32
|
+
|
33
|
+
assert_equal("1982-06-10T00:00:00.00Z", (r5 & Time.utc(1982,6,6)).to_s)
|
34
|
+
if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
|
35
|
+
assert_equal("1982-06-24", (r5 & Date.new(1982,6,6,Date::JULIAN)).to_s)
|
36
|
+
end
|
37
|
+
|
38
|
+
date3 = When.when?("19820606T021540+0900^^Julian")
|
39
|
+
[[-5, "1979-06-06T02:15:40+09:00"],
|
40
|
+
[-4, "1980-06-06T02:15:40+09:00"],
|
41
|
+
[-3, "1981-06-06T02:15:40+09:00"],
|
42
|
+
[-2, "1922-06-06T02:15:40+09:00"],
|
43
|
+
[-1, "1923-06-06T02:15:40+09:00"],
|
44
|
+
[ 0, "1984-06-06T02:15:40+09:00"],
|
45
|
+
[ 1, "1985-06-06T02:15:40+09:00"],
|
46
|
+
[ 2, "1986-06-06T02:15:40+09:00"],
|
47
|
+
[ 3, "1987-06-06T02:15:40+09:00"],
|
48
|
+
[ 4, "1988-06-06T02:15:40+09:00"],
|
49
|
+
[ 5, "1989-06-06T02:15:40+09:00"]].each do |sample|
|
50
|
+
r6 = When::Coordinates::Residue.new(sample[0], 60, {'year'=>4})
|
51
|
+
assert_equal(sample[1], (date3 & r6).to_s)
|
52
|
+
assert_equal(sample[1], (r6 & date3).to_s)
|
53
|
+
end
|
54
|
+
|
55
|
+
kanshi = When.Resource("_co:Residue?divisor=60&YEAR=4&DAY=11")
|
56
|
+
date = When.when?("19820606T021540+0900^^Julian")
|
57
|
+
assert_equal("1982-07-27T02:15:40+09:00", (date & kanshi.to('day')).to_s)
|
58
|
+
assert_equal("1985-06-06T02:15:40+09:00", (date & kanshi.to('year')[1]).to_s)
|
59
|
+
|
60
|
+
week = When.Resource("_co:Residue?divisor=7")
|
61
|
+
[[0, "1982-06-08T02:15:40+09:00"],
|
62
|
+
[1, "1982-06-09T02:15:40+09:00"],
|
63
|
+
[2, "1982-06-10T02:15:40+09:00"],
|
64
|
+
[3, "1982-06-11T02:15:40+09:00"],
|
65
|
+
[4, "1982-06-12T02:15:40+09:00"],
|
66
|
+
[5, "1982-06-06T02:15:40+09:00"],
|
67
|
+
[6, "1982-06-07T02:15:40+09:00"],
|
68
|
+
[7, "1982-06-15T02:15:40+09:00"]].each do |sample|
|
69
|
+
assert_equal(sample[1], (date & week[sample[0]]).to_s)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
class BestRationalApproximations < Test::Unit::TestCase
|
74
|
+
def test__continued_fraction
|
75
|
+
it = When.Resource("_co:Residue?remainder=365.2421875&divisor=1").each
|
76
|
+
[[365, 1], [1461, 4], [10592, 29], [12053, 33], [46751, 128]].each do |ratio|
|
77
|
+
assert_equal(ratio, it.next[0..1])
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
class Enumerator < Test::Unit::TestCase
|
83
|
+
def test_nothing
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# 暦座標番号
|
89
|
+
class Index < Test::Unit::TestCase
|
90
|
+
def test__trunk
|
91
|
+
month = When::Coordinates::Index.new({:label=>'month', :unit=>12, :base=>1,
|
92
|
+
:trunk => %w(January February March April May June July August September October November December).map {|v| When.m17n(v)}})
|
93
|
+
assert_equal({
|
94
|
+
1=>"January",
|
95
|
+
2=>"February",
|
96
|
+
3=>"March",
|
97
|
+
4=>"April",
|
98
|
+
5=>"May",
|
99
|
+
6=>"June",
|
100
|
+
7=>"July",
|
101
|
+
8=>"August",
|
102
|
+
9=>"September",
|
103
|
+
10=>"October",
|
104
|
+
11=>"November",
|
105
|
+
12=>"December"
|
106
|
+
}, month.trunk)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
# 暦座標要素
|
111
|
+
class Pair < Test::Unit::TestCase
|
112
|
+
def test_nothing
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
class Temporal < Test::Unit::TestCase
|
117
|
+
def test__validate
|
118
|
+
|
119
|
+
midJulian = When.Resource("_c:Julian?border=[0,3,25]")
|
120
|
+
# assert_equal([0, 3, 25], midJulian.border)
|
121
|
+
|
122
|
+
mDate = When.when?('20100324', {:frame=>midJulian})
|
123
|
+
assert_equal("2009=03-24", mDate.to_s)
|
124
|
+
|
125
|
+
assert_equal("2010-05-11", When.when?('2010-05-11').to_s)
|
126
|
+
assert_equal("2010=05-11", When.when?('2010=05-11').to_s)
|
127
|
+
|
128
|
+
date1 =When.when?("M32.01.01")
|
129
|
+
date2 =When.when?("M34.05.05")
|
130
|
+
assert_equal("M34(1901).05.05", date2.to_s)
|
131
|
+
assert_equal("M35(1902).05.05", (date2+When::Duration('P1Y')).to_s)
|
132
|
+
assert_equal("S06(1931).05.05", (date2+When::Duration('P30Y')).to_s)
|
133
|
+
|
134
|
+
assert_equal(2426467, (date2+When::Duration('P30Y')).to_i)
|
135
|
+
sample = [
|
136
|
+
["Japan64(1931).05.05", false],
|
137
|
+
["S06(1931).05.05", true]
|
138
|
+
]
|
139
|
+
((date2+When::Duration('P30Y')).scan(When.Resource('ModernJapanese', '_e:'))).each do |d|
|
140
|
+
assert_equal(sample.shift, [d.to_s, d.leaf?])
|
141
|
+
end
|
142
|
+
|
143
|
+
sample = [
|
144
|
+
["S06(1931).05.05", true]
|
145
|
+
]
|
146
|
+
((date2+When::Duration('P30Y'))^When.Resource('ModernJapanese', '_e:')).each do |d|
|
147
|
+
assert_equal(sample.shift, [d.to_s, d.leaf?])
|
148
|
+
end
|
149
|
+
|
150
|
+
sample =[
|
151
|
+
["明治", "http://ja.wikipedia.org/wiki/%E6%98%8E%E6%B2%BB"],
|
152
|
+
["Meiji", "http://en.wikipedia.org/wiki/Meiji_period"],
|
153
|
+
["M", ""],
|
154
|
+
["大正", "http://ja.wikipedia.org/wiki/%E5%A4%A7%E6%AD%A3"],
|
155
|
+
["Taishō", "http://en.wikipedia.org/wiki/Taish%C5%8D_period"],
|
156
|
+
["T", ""],
|
157
|
+
["昭和", "http://ja.wikipedia.org/wiki/%E6%98%AD%E5%92%8C"],
|
158
|
+
["Shōwa", "http://en.wikipedia.org/wiki/Sh%C5%8Dwa_period"],
|
159
|
+
["S", ""],
|
160
|
+
["平成", "http://ja.wikipedia.org/wiki/%E5%B9%B3%E6%88%90"],
|
161
|
+
["Heisei", "http://en.wikipedia.org/wiki/Heisei_period"],
|
162
|
+
["H", ""]
|
163
|
+
]
|
164
|
+
['明治', '大正', '昭和', '平成'].each do |nengo|
|
165
|
+
era = When::era(nengo)
|
166
|
+
['ja', 'en', 'alias'].each do |lang|
|
167
|
+
assert_equal(sample.shift, [era[0].label.translate(lang), era[0].label.reference(lang)])
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
sample =[
|
172
|
+
["明治天皇", "http://ja.wikipedia.org/wiki/%E6%98%8E%E6%B2%BB%E5%A4%A9%E7%9A%87"],
|
173
|
+
["Emperor_Meiji", "http://en.wikipedia.org/wiki/Emperor_Meiji"],
|
174
|
+
["大正天皇", "http://ja.wikipedia.org/wiki/%E5%A4%A7%E6%AD%A3%E5%A4%A9%E7%9A%87"],
|
175
|
+
["Emperor_Taishō", "http://en.wikipedia.org/wiki/Emperor_Taish%C5%8D"],
|
176
|
+
["昭和天皇", "http://ja.wikipedia.org/wiki/%E6%98%AD%E5%92%8C%E5%A4%A9%E7%9A%87"],
|
177
|
+
["Emperor_Shōwa", "http://en.wikipedia.org/wiki/Emperor_Sh%C5%8Dwa"],
|
178
|
+
["今上天皇", "http://ja.wikipedia.org/wiki/%E6%98%8E%E4%BB%81"],
|
179
|
+
["Emperor_Kinjō", "http://en.wikipedia.org/wiki/Akihito"]
|
180
|
+
]
|
181
|
+
['明治', '大正', '昭和', '平成'].each do |nengo|
|
182
|
+
name = When.when?(nengo + '06.01.01').query['name']
|
183
|
+
['ja', 'en'].each do |lang|
|
184
|
+
assert_equal(sample.shift, [name.translate(lang), name.reference(lang)])
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
assert_equal("昭和02(1927).03.01", When.when?('大正16.2.29').to_s)
|
189
|
+
assert_equal({"name"=>"大正天皇", "period"=>nil, "area"=>"日本"}, When::era('大正')[0].options)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
#
|
194
|
+
# 空間位置
|
195
|
+
#
|
196
|
+
class Spatial < Test::Unit::TestCase
|
197
|
+
IndianCities = [
|
198
|
+
["CentralIndia",
|
199
|
+
"インド中部",
|
200
|
+
"http://en.wikipedia.org/wiki/CentralIndia",
|
201
|
+
23.15 + 1.0/30,
|
202
|
+
82.5],
|
203
|
+
["NorthIndia",
|
204
|
+
"インド北部",
|
205
|
+
"http://en.wikipedia.org/wiki/NorthIndia",
|
206
|
+
29.0,
|
207
|
+
82.5],
|
208
|
+
["Agra",
|
209
|
+
"アーグラ",
|
210
|
+
"http://en.wikipedia.org/wiki/Agra",
|
211
|
+
27.2,
|
212
|
+
78.0],
|
213
|
+
["Ahmedabad",
|
214
|
+
"アフマダーバード",
|
215
|
+
"http://en.wikipedia.org/wiki/Ahmedabad",
|
216
|
+
23.0,
|
217
|
+
72.6],
|
218
|
+
["Ajmer",
|
219
|
+
"アジメール",
|
220
|
+
"http://en.wikipedia.org/wiki/Ajmer",
|
221
|
+
26.5,
|
222
|
+
74.6],
|
223
|
+
["Aligarh",
|
224
|
+
"アリーガル",
|
225
|
+
"http://en.wikipedia.org/wiki/Aligarh",
|
226
|
+
27.9,
|
227
|
+
78.1],
|
228
|
+
["Amritsar",
|
229
|
+
"アムリトサル",
|
230
|
+
"http://en.wikipedia.org/wiki/Amritsar",
|
231
|
+
31.6,
|
232
|
+
74.9],
|
233
|
+
["Bangalore",
|
234
|
+
"バンガロール",
|
235
|
+
"http://en.wikipedia.org/wiki/Bangalore",
|
236
|
+
13.0,
|
237
|
+
77.6],
|
238
|
+
["Bhuvaneswar",
|
239
|
+
"ブヴァネーシュヴァル",
|
240
|
+
"http://en.wikipedia.org/wiki/Bhuvaneswar",
|
241
|
+
20.2,
|
242
|
+
85.8],
|
243
|
+
["Chennai",
|
244
|
+
"チェンナイ",
|
245
|
+
"http://en.wikipedia.org/wiki/Chennai",
|
246
|
+
13.1,
|
247
|
+
80.3],
|
248
|
+
["Colombo",
|
249
|
+
"コロンボ",
|
250
|
+
"http://en.wikipedia.org/wiki/Colombo",
|
251
|
+
6.9,
|
252
|
+
79.9],
|
253
|
+
["Dacca",
|
254
|
+
"ダッカ",
|
255
|
+
"http://en.wikipedia.org/wiki/Dacca",
|
256
|
+
23.7,
|
257
|
+
90.4],
|
258
|
+
["Delhi",
|
259
|
+
"デリー",
|
260
|
+
"http://en.wikipedia.org/wiki/Delhi",
|
261
|
+
28.6,
|
262
|
+
77.2],
|
263
|
+
["Hyderabad",
|
264
|
+
"ハイデラバード",
|
265
|
+
"http://en.wikipedia.org/wiki/Hyderabad",
|
266
|
+
17.4,
|
267
|
+
78.5],
|
268
|
+
["Jaipur",
|
269
|
+
"ジャイプル",
|
270
|
+
"http://en.wikipedia.org/wiki/Jaipur",
|
271
|
+
26.9,
|
272
|
+
75.8],
|
273
|
+
["Kathmandu",
|
274
|
+
"カトマンズ",
|
275
|
+
"http://en.wikipedia.org/wiki/Kathmandu",
|
276
|
+
27.7,
|
277
|
+
85.2],
|
278
|
+
["Kochi",
|
279
|
+
"コーチ",
|
280
|
+
"http://en.wikipedia.org/wiki/Kochi",
|
281
|
+
10.0,
|
282
|
+
76.2],
|
283
|
+
["Kolkata",
|
284
|
+
"コルカタ",
|
285
|
+
"http://en.wikipedia.org/wiki/Kolkata",
|
286
|
+
22.6,
|
287
|
+
88.4],
|
288
|
+
["Lahor",
|
289
|
+
"ラホール",
|
290
|
+
"http://en.wikipedia.org/wiki/Lahor",
|
291
|
+
31.6,
|
292
|
+
74.3],
|
293
|
+
["Mathura",
|
294
|
+
"マトゥラー",
|
295
|
+
"http://en.wikipedia.org/wiki/Mathura",
|
296
|
+
27.5,
|
297
|
+
77.7],
|
298
|
+
["Mumbai",
|
299
|
+
"ムンバイ",
|
300
|
+
"http://en.wikipedia.org/wiki/Mumbai",
|
301
|
+
19.0,
|
302
|
+
72.8],
|
303
|
+
["Mysore",
|
304
|
+
"マイソール",
|
305
|
+
"http://en.wikipedia.org/wiki/Mysore",
|
306
|
+
12.3,
|
307
|
+
76.6],
|
308
|
+
["Patna",
|
309
|
+
"パトナ",
|
310
|
+
"http://en.wikipedia.org/wiki/Patna",
|
311
|
+
25.6,
|
312
|
+
85.1],
|
313
|
+
["Pune",
|
314
|
+
"プネー",
|
315
|
+
"http://en.wikipedia.org/wiki/Pune",
|
316
|
+
18.5,
|
317
|
+
73.9],
|
318
|
+
["Srinagar",
|
319
|
+
"シュリーナガル",
|
320
|
+
"http://en.wikipedia.org/wiki/Srinagar",
|
321
|
+
34.1,
|
322
|
+
74.8],
|
323
|
+
["Thiruvananthapuram",
|
324
|
+
"ティルヴァナンタプラム",
|
325
|
+
"http://en.wikipedia.org/wiki/Thiruvananthapuram",
|
326
|
+
8.5,
|
327
|
+
77.0],
|
328
|
+
["Varanasi",
|
329
|
+
"ワーラーナシー",
|
330
|
+
"http://en.wikipedia.org/wiki/Varanasi",
|
331
|
+
25.3,
|
332
|
+
83.0],
|
333
|
+
["Ujjain",
|
334
|
+
"ウッジャイン",
|
335
|
+
"http://en.wikipedia.org/wiki/Ujjain",
|
336
|
+
23.2,
|
337
|
+
75.8]
|
338
|
+
]
|
339
|
+
|
340
|
+
def test__inner_representation
|
341
|
+
location = When.Resource("examples/sample.xml?lat=35&long=135")
|
342
|
+
assert_equal( 7875.0, location.lat)
|
343
|
+
assert_equal(30375.0, location.long)
|
344
|
+
end
|
345
|
+
|
346
|
+
def test__reference
|
347
|
+
location = When.Resource("_co:Spatial?label=Kyoto&long=136&lat=30&ref=http%3A%2F%2f")
|
348
|
+
assert_equal("http://", location.ref)
|
349
|
+
end
|
350
|
+
|
351
|
+
def test__spatial_m17n
|
352
|
+
['_co:IndianCities', 'examples/Spatial.m17n'].each do |iri|
|
353
|
+
samples = IndianCities.dup
|
354
|
+
assert_equal(samples.size, When.Resource(iri).child.size)
|
355
|
+
When.Resource(iri).child.each do |obj|
|
356
|
+
name = obj.label
|
357
|
+
sample = samples.shift.dup
|
358
|
+
sample << iri.sub(/_co:/, 'http://hosi.org/When/Coordinates/') + '::' + sample[0]
|
359
|
+
assert_equal(sample,
|
360
|
+
[name.label,
|
361
|
+
name.translate('ja'),
|
362
|
+
name.reference('en'),
|
363
|
+
obj.lat / When::Coordinates::Spatial::DEGREE,
|
364
|
+
obj.long / When::Coordinates::Spatial::DEGREE,
|
365
|
+
obj.iri])
|
366
|
+
end
|
367
|
+
end
|
368
|
+
end
|
369
|
+
|
370
|
+
def test__to_dms
|
371
|
+
assert_equal(+135.9, When::Coordinates.to_deg("東経135度54分", 'EW'))
|
372
|
+
assert_equal(+135.9, When::Coordinates.to_deg("135度54分E", 'EW'))
|
373
|
+
assert_equal(+135.9, When::Coordinates.to_deg("135.5400E", 'EW'))
|
374
|
+
assert_equal(+135.9, When::Coordinates.to_deg("E135.5400", 'EW'))
|
375
|
+
assert_equal("135.5400E", When::Coordinates.to_dms(+135.9, 'EW'))
|
376
|
+
assert_equal( "35.3935N", When::Coordinates.to_dms(+35.66, 'NS'))
|
377
|
+
end
|
378
|
+
end
|
379
|
+
end
|
380
|
+
|
@@ -0,0 +1,127 @@
|
|
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::Ephemeris
|
10
|
+
|
11
|
+
class Ephemeris < Test::Unit::TestCase
|
12
|
+
def test_nothing
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class CelestialObject < Test::Unit::TestCase
|
17
|
+
def test_nothing
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class Star < Test::Unit::TestCase
|
22
|
+
|
23
|
+
def test_nothing
|
24
|
+
end
|
25
|
+
|
26
|
+
# 恒星
|
27
|
+
class Fixed < Test::Unit::TestCase
|
28
|
+
def test__access_hr
|
29
|
+
polaris = When::Resource('_sc:HR0424')
|
30
|
+
assert_equal("Alp UMi", polaris.bayer_name)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# 春分点
|
35
|
+
class Vernal < Test::Unit::TestCase
|
36
|
+
def test_nothing
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# 北極
|
41
|
+
class Pole < Test::Unit::TestCase
|
42
|
+
def test_nothing
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
class Planet < Test::Unit::TestCase
|
48
|
+
def test_nothing
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class Coords < Test::Unit::TestCase
|
53
|
+
def test_nothing
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
class UniversalTime < Test::Unit::TestCase
|
58
|
+
def view(time)
|
59
|
+
return time unless time.instance_of?(When::Coordinates::LeapSeconds)
|
60
|
+
return [time.trunk, time.branch, time.second]
|
61
|
+
end
|
62
|
+
|
63
|
+
def test__delta_t
|
64
|
+
date = When.when?('2009-01-01T00:00:00Z')
|
65
|
+
assert_equal("2008-12-31T23:59:01Z", (date - When::TM::IntervalLength.new(60, 'second')).to_s)
|
66
|
+
assert_equal("2008-12-31T23:59:00Z", (date - When::Duration('PT60S')).to_s)
|
67
|
+
|
68
|
+
date = When::TM::JulianDate.dynamical_time((2500000-(When::TM::JulianDate::JD19700101-0.5))*675)
|
69
|
+
assert_equal(2500000.0, +date)
|
70
|
+
assert_equal(true, +date > date.to_f)
|
71
|
+
|
72
|
+
date = When::TM::JulianDate.universal_time((2500000-(When::TM::JulianDate::JD19700101-0.5))*675)
|
73
|
+
assert_equal(2500000.0, date.to_f)
|
74
|
+
assert_equal(true, +date > date.to_f)
|
75
|
+
|
76
|
+
assert_equal((40 + 377.0/2048), When::TimeStandard.delta_t(When.when?('1970-01-01T').to_f))
|
77
|
+
|
78
|
+
date = When.when?('2008-10-31T23:59:60Z')
|
79
|
+
assert_equal([[2008, 11, 1], [0, 0, 0, 0]], [date.cal_date, date.clk_time.clk_time])
|
80
|
+
|
81
|
+
pair = When::Coordinates::Pair.new(1,1)
|
82
|
+
assert_equal([-1, -1, 1], [0.9, 1, 1.1].map {|v| v<=>pair})
|
83
|
+
|
84
|
+
time = When.Resource('_t:UniversalTime')
|
85
|
+
date0 = When.when?('2008-12-31T23:59:58Z') ^ When.Duration('1s') # Duration('PT1S')
|
86
|
+
[
|
87
|
+
"2008-12-31T23:59:58Z",
|
88
|
+
"2008-12-31T23:59:59Z",
|
89
|
+
"2008-12-31T23:59:60Z",
|
90
|
+
"2009-01-01T00:00:00Z",
|
91
|
+
"2009-01-01T00:00:01Z"
|
92
|
+
].each do |sample|
|
93
|
+
date = date0.next
|
94
|
+
assert_equal([sample, true], [date.to_s, date.universal_time == time.from_dynamical_time(date.dynamical_time)])
|
95
|
+
end
|
96
|
+
|
97
|
+
it = When::V::Event.new({
|
98
|
+
'rrule' => 'FREQ=MINUTELY;BYSECOND=59,60',
|
99
|
+
'dtstart' => '2008-12-31T23:58:59Z'
|
100
|
+
}).each
|
101
|
+
|
102
|
+
[
|
103
|
+
"2008-12-31T23:58:59Z",
|
104
|
+
"2008-12-31T23:59:59Z",
|
105
|
+
"2009-01-01T00:00:59Z",
|
106
|
+
"2009-01-01T00:01:59Z"
|
107
|
+
].each do |sample|
|
108
|
+
assert_equal(sample, it.next.to_s)
|
109
|
+
end
|
110
|
+
|
111
|
+
it = When::V::Event.new({
|
112
|
+
'rrule' => 'FREQ=1s', #;BYSECOND=59,60',
|
113
|
+
'dtstart' => '2008-12-31T23:59:58Z'
|
114
|
+
}).each
|
115
|
+
|
116
|
+
[
|
117
|
+
"2008-12-31T23:59:58Z",
|
118
|
+
"2008-12-31T23:59:59Z",
|
119
|
+
"2008-12-31T23:59:60Z",
|
120
|
+
"2009-01-01T00:00:00Z",
|
121
|
+
"2009-01-01T00:00:01Z"
|
122
|
+
].each do |sample|
|
123
|
+
assert_equal(sample, it.next.to_s)
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|