when_exe 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +171 -0
  3. data/lib/when_exe.rb +78 -47
  4. data/lib/when_exe/basictypes.rb +752 -747
  5. data/lib/when_exe/calendarnote.rb +805 -801
  6. data/lib/when_exe/calendartypes.rb +1583 -1531
  7. data/lib/when_exe/coordinates.rb +16 -15
  8. data/lib/when_exe/core/duration.rb +114 -110
  9. data/lib/when_exe/core/extension.rb +504 -504
  10. data/lib/when_exe/ephemeris.rb +1917 -1913
  11. data/lib/when_exe/ephemeris/moon.rb +333 -333
  12. data/lib/when_exe/ephemeris/notes.rb +389 -387
  13. data/lib/when_exe/ephemeris/planets.rb +585 -585
  14. data/lib/when_exe/ephemeris/sun.rb +214 -214
  15. data/lib/when_exe/googlecalendar.rb +144 -140
  16. data/lib/when_exe/icalendar.rb +1636 -1636
  17. data/lib/when_exe/inspect.rb +46 -22
  18. data/lib/when_exe/locales/akt.rb +176 -176
  19. data/lib/when_exe/locales/encoding_conversion.rb +134 -126
  20. data/lib/when_exe/locales/iast.rb +90 -90
  21. data/lib/when_exe/locales/locale.rb +750 -746
  22. data/lib/when_exe/locales/transliteration_table.rb +62 -62
  23. data/lib/when_exe/mini_application.rb +307 -305
  24. data/lib/when_exe/parts/enumerator.rb +2 -2
  25. data/lib/when_exe/parts/geometric_complex.rb +397 -397
  26. data/lib/when_exe/parts/method_cash.rb +224 -224
  27. data/lib/when_exe/parts/resource.rb +1069 -1071
  28. data/lib/when_exe/parts/timezone.rb +240 -230
  29. data/lib/when_exe/region/armenian.rb +56 -56
  30. data/lib/when_exe/region/babylonian.rb +405 -0
  31. data/lib/when_exe/region/bahai.rb +146 -146
  32. data/lib/when_exe/region/balinese.rb +622 -622
  33. data/lib/when_exe/region/chinese.rb +95 -25
  34. data/lib/when_exe/region/chinese/calendars.rb +1016 -1016
  35. data/lib/when_exe/region/chinese/epochs.rb +1 -1
  36. data/lib/when_exe/region/chinese/twins.rb +803 -795
  37. data/lib/when_exe/region/christian.rb +824 -824
  38. data/lib/when_exe/region/coptic.rb +106 -87
  39. data/lib/when_exe/region/discordian.rb +225 -225
  40. data/lib/when_exe/region/far_east.rb +188 -188
  41. data/lib/when_exe/region/french.rb +56 -56
  42. data/lib/when_exe/region/geologicalage.rb +639 -639
  43. data/lib/when_exe/region/goddess.rb +58 -58
  44. data/lib/when_exe/region/indian.rb +1254 -1251
  45. data/lib/when_exe/region/iranian.rb +8 -8
  46. data/lib/when_exe/region/islamic.rb +3 -3
  47. data/lib/when_exe/region/japanese.rb +93 -99
  48. data/lib/when_exe/region/japanese/calendars.rb +396 -397
  49. data/lib/when_exe/region/japanese/epochs.rb +26 -26
  50. data/lib/when_exe/region/japanese/nihon_shoki.rb +71 -71
  51. data/lib/when_exe/region/japanese/notes.rb +1383 -1386
  52. data/lib/when_exe/region/japanese/residues.rb +1306 -1306
  53. data/lib/when_exe/region/japanese/twins.rb +225 -225
  54. data/lib/when_exe/region/japanese/weeks.rb +112 -0
  55. data/lib/when_exe/region/javanese.rb +230 -230
  56. data/lib/when_exe/region/jewish.rb +126 -126
  57. data/lib/when_exe/region/korean.rb +378 -378
  58. data/lib/when_exe/region/m17n.rb +114 -113
  59. data/lib/when_exe/region/martian.rb +258 -255
  60. data/lib/when_exe/region/mayan.rb +32 -32
  61. data/lib/when_exe/region/residue.rb +89 -89
  62. data/lib/when_exe/region/roman.rb +36 -24
  63. data/lib/when_exe/region/ryukyu.rb +97 -97
  64. data/lib/when_exe/region/shire.rb +240 -240
  65. data/lib/when_exe/region/soviet.rb +209 -0
  66. data/lib/when_exe/region/symmetry.rb +50 -50
  67. data/lib/when_exe/region/thai.rb +336 -335
  68. data/lib/when_exe/region/tibetan.rb +316 -315
  69. data/lib/when_exe/region/vietnamese.rb +440 -439
  70. data/lib/when_exe/region/weekdate.rb +80 -80
  71. data/lib/when_exe/region/world.rb +175 -175
  72. data/lib/when_exe/region/yerm.rb +14 -14
  73. data/lib/when_exe/region/zoroastrian.rb +203 -203
  74. data/lib/when_exe/timestandard.rb +707 -681
  75. data/lib/when_exe/tmduration.rb +338 -330
  76. data/lib/when_exe/tmobjects.rb +1346 -1325
  77. data/lib/when_exe/tmposition.rb +2115 -2072
  78. data/lib/when_exe/tmreference.rb +1693 -1669
  79. data/lib/when_exe/version.rb +1 -1
  80. data/link_to_online_documents +1 -1
  81. data/test/examples/JapanHolidaysRFC6350.ics +1 -1
  82. data/test/test.rb +67 -61
  83. data/test/test/basictypes.rb +409 -409
  84. data/test/test/calendarnote.rb +86 -69
  85. data/test/test/calendartypes.rb +97 -97
  86. data/test/test/coordinates.rb +396 -396
  87. data/test/test/ephemeris.rb +83 -74
  88. data/test/test/ephemeris/moon.rb +14 -14
  89. data/test/test/ephemeris/planets.rb +14 -14
  90. data/test/test/ephemeris/sun.rb +14 -14
  91. data/test/test/googlecalendar.rb +194 -176
  92. data/test/test/icalendar.rb +867 -858
  93. data/test/test/inspect.rb +117 -117
  94. data/test/test/parts.rb +487 -487
  95. data/test/test/region/balinese.rb +34 -0
  96. data/test/test/region/chinese.rb +218 -206
  97. data/test/test/region/christian.rb +245 -245
  98. data/test/test/region/coptic.rb +27 -27
  99. data/test/test/region/french.rb +33 -33
  100. data/test/test/region/geologicalage.rb +17 -17
  101. data/test/test/region/indian.rb +57 -57
  102. data/test/test/region/iran.rb +54 -54
  103. data/test/test/region/islamic.rb +18 -18
  104. data/test/test/region/japanese.rb +237 -219
  105. data/test/test/region/jewish.rb +61 -61
  106. data/test/test/region/m17n.rb +184 -184
  107. data/test/test/region/mayan.rb +195 -195
  108. data/test/test/region/residue.rb +147 -139
  109. data/test/test/region/thai.rb +116 -116
  110. data/test/test/region/tibetan.rb +30 -30
  111. data/test/test/region/vietnamese.rb +102 -102
  112. data/test/test/region/yerm.rb +146 -146
  113. data/test/test/timestandard.rb +81 -81
  114. data/test/test/tmobjects.rb +328 -328
  115. data/test/test/tmposition.rb +397 -284
  116. data/test/test/tmreference.rb +157 -157
  117. metadata +13 -10
@@ -1,61 +1,61 @@
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 Test
10
-
11
- class Jewish < Test::Unit::TestCase
12
- def test__jewish
13
- date = When.when? 'HY5700.1.1'
14
- [["HY5700.01.01", 2429521],
15
- ["HY5700.02.01", 2429551],
16
- ["HY5700.03.01", 2429581],
17
- ["HY5700.04.01", 2429611],
18
- ["HY5700.05.01", 2429640],
19
- ["HY5700.06*01", 2429670],
20
- ["HY5700.06=01", 2429700],
21
- ["HY5700.07.01", 2429729],
22
- ["HY5700.08.01", 2429759],
23
- ["HY5700.09.01", 2429788],
24
- ["HY5700.10.01", 2429818],
25
- ["HY5700.11.01", 2429847],
26
- ["HY5700.12.01", 2429877]].each do |sample|
27
- assert_equal(sample, [date.to_s, date.to_i])
28
- date += When.Duration('P1M')
29
- end
30
-
31
- date = When.when? 'HY5773.1.1'
32
- [["HY5773.01.01", 2456188],
33
- ["HY5774.01.01", 2456541],
34
- ["HY5775.01.01", 2456926],
35
- ["HY5776.01.01", 2457280],
36
- ["HY5777.01.01", 2457665],
37
- ["HY5778.01.01", 2458018],
38
- ["HY5779.01.01", 2458372],
39
- ["HY5780.01.01", 2458757],
40
- ["HY5781.01.01", 2459112],
41
- ["HY5782.01.01", 2459465],
42
- ["HY5783.01.01", 2459849],
43
- ["HY5784.01.01", 2460204],
44
- ["HY5785.01.01", 2460587],
45
- ["HY5786.01.01", 2460942],
46
- ["HY5787.01.01", 2461296],
47
- ["HY5788.01.01", 2461681],
48
- ["HY5789.01.01", 2462036],
49
- ["HY5790.01.01", 2462390],
50
- ["HY5791.01.01", 2462773],
51
- ["HY5792.01.01", 2463128]].each do |sample|
52
- assert_equal(sample, [date.to_s, date.to_i])
53
- date += When.Duration('P1Y')
54
- end
55
-
56
- assert_equal("BCE3761(-3760).10.07",
57
- (When.era('BCE')[0] ^ When.Calendar('Jewish').domain[''].first).to_s)
58
-
59
- end
60
- end
61
- 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
10
+
11
+ class Jewish < MiniTest::TestCase
12
+ def test__jewish
13
+ date = When.when? 'HY5700.1.1'
14
+ [["HY5700.01.01", 2429521],
15
+ ["HY5700.02.01", 2429551],
16
+ ["HY5700.03.01", 2429581],
17
+ ["HY5700.04.01", 2429611],
18
+ ["HY5700.05.01", 2429640],
19
+ ["HY5700.06*01", 2429670],
20
+ ["HY5700.06=01", 2429700],
21
+ ["HY5700.07.01", 2429729],
22
+ ["HY5700.08.01", 2429759],
23
+ ["HY5700.09.01", 2429788],
24
+ ["HY5700.10.01", 2429818],
25
+ ["HY5700.11.01", 2429847],
26
+ ["HY5700.12.01", 2429877]].each do |sample|
27
+ assert_equal(sample, [date.to_s, date.to_i])
28
+ date += When.Duration('P1M')
29
+ end
30
+
31
+ date = When.when? 'HY5773.1.1'
32
+ [["HY5773.01.01", 2456188],
33
+ ["HY5774.01.01", 2456541],
34
+ ["HY5775.01.01", 2456926],
35
+ ["HY5776.01.01", 2457280],
36
+ ["HY5777.01.01", 2457665],
37
+ ["HY5778.01.01", 2458018],
38
+ ["HY5779.01.01", 2458372],
39
+ ["HY5780.01.01", 2458757],
40
+ ["HY5781.01.01", 2459112],
41
+ ["HY5782.01.01", 2459465],
42
+ ["HY5783.01.01", 2459849],
43
+ ["HY5784.01.01", 2460204],
44
+ ["HY5785.01.01", 2460587],
45
+ ["HY5786.01.01", 2460942],
46
+ ["HY5787.01.01", 2461296],
47
+ ["HY5788.01.01", 2461681],
48
+ ["HY5789.01.01", 2462036],
49
+ ["HY5790.01.01", 2462390],
50
+ ["HY5791.01.01", 2462773],
51
+ ["HY5792.01.01", 2463128]].each do |sample|
52
+ assert_equal(sample, [date.to_s, date.to_i])
53
+ date += When.Duration('P1Y')
54
+ end
55
+
56
+ assert_equal("BCE3761(-3760).10.07",
57
+ (When.era('BCE')[0] ^ When.Calendar('Jewish').domain[''].first).to_s)
58
+
59
+ end
60
+ end
61
+ end
@@ -1,184 +1,184 @@
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 Test
10
-
11
- class M17n < Test::Unit::TestCase
12
-
13
- First = [
14
- ["Calendar", "Calendar", nil],
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:Calendar'].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_raises(NoMethodError) {When.m17n('[::_m:Calendar::Month::*]').map {|v| v.to_s}}
75
- When.Resource('_m:Calendar::Month::*')
76
- assert_equal(Second.map {|v| v[0]}, When.m17n('[::_m:Calendar::Month::*]').map {|v| v.to_s})
77
- assert_equal(["Accession", true, "http://hosi.org/When/BasicTypes/M17n/EpochEvents::Accession"],
78
- [era['::_m:EpochEvents::Accession'].to_s,
79
- era['::_m:EpochEvents::Accession'].registered?,
80
- era['::_m:EpochEvents::Accession'].iri])
81
-
82
- assert_equal(era['::_m:EpochEvents::*'].map {|v| v.to_s},
83
- ["Accession", "FelicitousEvent", "NaturalDisaster", "InauspiciousYear", "Foundation", "CalendarReform"])
84
-
85
- term = []
86
- term << When.m17n('[日本語, English]', nil, ', en').translate('ja')
87
- term << When.m17n('[日本語, English]', nil, ['ja', 'en']).translate('ja')
88
- term << When.m17n('[ja:日本語, en:English]').translate('ja')
89
- term << When.m17n(['ja:日本語', 'en:English']).translate('ja')
90
- term.each do |result|
91
- assert_equal("日本語", result)
92
- end
93
-
94
- date = When.when?('明治6.10.1')
95
- era = When.era('明治')[0]
96
- event = era.reference_event
97
- assert_equal("代始", event.translate('ja'))
98
- assert_equal(["Accession", true, "http://hosi.org/When/BasicTypes/M17n/EpochEvents::Accession"],
99
- [era['::_m:EpochEvents::Accession'].to_s,
100
- era['::_m:EpochEvents::Accession'].registered?,
101
- era['::_m:EpochEvents::Accession'].iri])
102
- end
103
-
104
- def test__m17n_3
105
- january = When.Resource('_m:Calendar::Month::January')
106
- [['en', 'January'], ['ja', '1月'], ['fr', 'janvier']].each do |sample|
107
- assert_equal(sample[1], january.translate(sample[0]))
108
- end
109
- end
110
-
111
- def test__m17n_4
112
- january = When.Resource('_m:Calendar::Month::January')
113
- [['en', 'January'], ['ja', '1月'], ['fr', 'janvier']].each do |sample|
114
- assert_equal(sample[1], january.translate(sample[0]))
115
- end
116
- end
117
-
118
- def test__m17n_5
119
- month = When.Resource('_m:Calendar::Month')
120
- [['en', 'Month'], ['ja', '月'], ['fr', 'Mois']].each do |sample|
121
- assert_equal(sample[1], month.translate(sample[0]))
122
- end
123
- end
124
-
125
- def test__to_h
126
- [
127
- ['HLC0.0.0.0.0',
128
- {:calendar=>["_e:LongCount::PHLC",-13], :sdn=>584283, :cal_date=>[13, 0, 0, 0, 0],
129
- :notes=>[[{:note=>"Trecena", :value=>"Trecena(4/13)"},
130
- {:note=>"Tzolk'in", :value=>"Ajaw(19/20)"},
131
- {:note=>"Lords_of_the_Night", :value=>"G9(0/9)"},
132
- {:note=>"Haab'", :value=>"8Kumk'u/365"}]]}],
133
-
134
- ['1985-1-1',
135
- {:calendar=>["_c:Gregorian"], :sdn=>2446067, :cal_date=>[1985, 1, 1],
136
- :notes=>[[{:note=>"Month", :value=>"January"}],[{:note=>"Week", :value=>"Tuesday(1)"}]]}],
137
-
138
- ['明治7.5.7',
139
- {:calendar=>["_e:Japanese::明治",1867], :sdn=>2405651, :cal_date=>[7, 5, 7],
140
- :notes=>[[{:note=>"干支", :value=>"甲戌(10)", :position=>"共通"}],
141
- [{:note=>"月名", :value=>"May", :position=>"月建"}],
142
- [{:note=>"七曜", :value=>"Thursday(3)", :position=>"共通"},
143
- {:note=>"干支", :value=>"甲子(00)", :position=>"共通"},
144
- {:note=>"六曜", :value=>"赤口", :position=>"民間"}]]}],
145
-
146
- ['明治17.5.7',
147
- {:calendar=>["_e:Japanese::明治",1867], :sdn=>2409304, :cal_date=>[17, 5, 7],
148
- :notes=>[[{:note=>"干支", :value=>"甲申(20)", :position=>"共通"}],
149
- [{:note=>"月名", :value=>"May", :position=>"月建"}],
150
- [{:note=>"七曜", :value=>"Wednesday(2)", :position=>"共通"},
151
- {:note=>"干支", :value=>"丁巳(53)", :position=>"共通"},
152
- {:note=>"六曜", :value=>"先負", :position=>"民間"}]]}],
153
-
154
- ['CE-2010.06.08T12:00:00+09:00',
155
- {:calendar=>["_e:Common::BCE", 1, true], :sdn=>987064, :cal_date=>[-2011, 6, 8],
156
- :notes=>[[{:note=>"Month", :value=>"June"}],[]],
157
- :clk_time=>[987064, 12, 0, 0]}],
158
-
159
- [11,
160
- {:calendar=>["_tm:JulianDate"], :sdn=>11,
161
- :notes=>[[{:note=>"Week", :value=>"Friday(4)"},
162
- {:note=>"干支", :value=>"甲子(00)"}]]}],
163
-
164
- [11.0,
165
- {:calendar=>["_tm:JulianDate"], :sdn=>11,
166
- :notes=>[[{:note=>"Week", :value=>"Friday(4)"},
167
- {:note=>"干支", :value=>"甲子(00)"}]],
168
- :clk_time=>[11, 12, 0, 0]}]
169
-
170
- ].each do |sample|
171
- date, verify = sample
172
- list = When.when?(date).to_h({:method=>:to_m17n, :prefix=>true})
173
- [:calendar, :cal_date, :sdn, :clk_time].each do |key|
174
- assert_equal(verify[key], list[key])
175
- end
176
- verify[:notes].each_index do |i|
177
- verify[:notes][i].each_index do |k|
178
- assert_equal(verify[:notes][i][k], list[:notes][i][k])
179
- end
180
- end
181
- end
182
- end
183
- end
184
- 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
10
+
11
+ class M17n < MiniTest::TestCase
12
+
13
+ First = [
14
+ ["Calendar", "Calendar", nil],
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:Calendar'].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_raises(NoMethodError) {When.m17n('[::_m:Calendar::Month::*]').map {|v| v.to_s}}
75
+ When.Resource('_m:Calendar::Month::*')
76
+ assert_equal(Second.map {|v| v[0]}, When.m17n('[::_m:Calendar::Month::*]').map {|v| v.to_s})
77
+ assert_equal(["Accession", true, "http://hosi.org/When/BasicTypes/M17n/EpochEvents::Accession"],
78
+ [era['::_m:EpochEvents::Accession'].to_s,
79
+ era['::_m:EpochEvents::Accession'].registered?,
80
+ era['::_m:EpochEvents::Accession'].iri])
81
+
82
+ assert_equal(era['::_m:EpochEvents::*'].map {|v| v.to_s},
83
+ ["Accession", "FelicitousEvent", "NaturalDisaster", "InauspiciousYear", "Foundation", "CalendarReform", "CalendarEpoch"])
84
+
85
+ term = []
86
+ term << When.m17n('[日本語, English]', nil, ', en').translate('ja')
87
+ term << When.m17n('[日本語, English]', nil, ['ja', 'en']).translate('ja')
88
+ term << When.m17n('[ja:日本語, en:English]').translate('ja')
89
+ term << When.m17n(['ja:日本語', 'en:English']).translate('ja')
90
+ term.each do |result|
91
+ assert_equal("日本語", result)
92
+ end
93
+
94
+ date = When.when?('明治6.10.1')
95
+ era = When.era('明治')[0]
96
+ event = era.reference_event
97
+ assert_equal("代始", event.translate('ja'))
98
+ assert_equal(["Accession", true, "http://hosi.org/When/BasicTypes/M17n/EpochEvents::Accession"],
99
+ [era['::_m:EpochEvents::Accession'].to_s,
100
+ era['::_m:EpochEvents::Accession'].registered?,
101
+ era['::_m:EpochEvents::Accession'].iri])
102
+ end
103
+
104
+ def test__m17n_3
105
+ january = When.Resource('_m:Calendar::Month::January')
106
+ [['en', 'January'], ['ja', '1月'], ['fr', 'janvier']].each do |sample|
107
+ assert_equal(sample[1], january.translate(sample[0]))
108
+ end
109
+ end
110
+
111
+ def test__m17n_4
112
+ january = When.Resource('_m:Calendar::Month::January')
113
+ [['en', 'January'], ['ja', '1月'], ['fr', 'janvier']].each do |sample|
114
+ assert_equal(sample[1], january.translate(sample[0]))
115
+ end
116
+ end
117
+
118
+ def test__m17n_5
119
+ month = When.Resource('_m:Calendar::Month')
120
+ [['en', 'Month'], ['ja', '月'], ['fr', 'Mois']].each do |sample|
121
+ assert_equal(sample[1], month.translate(sample[0]))
122
+ end
123
+ end
124
+
125
+ def test__to_h
126
+ [
127
+ ['HLC0.0.0.0.0',
128
+ {:calendar=>["_e:LongCount::PHLC",-13], :sdn=>584283, :cal_date=>[13, 0, 0, 0, 0],
129
+ :notes=>[[{:note=>"Trecena", :value=>"Trecena(4/13)"},
130
+ {:note=>"Tzolk'in", :value=>"Ajaw(19/20)"},
131
+ {:note=>"Lords_of_the_Night", :value=>"G9(0/9)"},
132
+ {:note=>"Haab'", :value=>"8Kumk'u/365"}]]}],
133
+
134
+ ['1985-1-1',
135
+ {:calendar=>["_c:Gregorian"], :sdn=>2446067, :cal_date=>[1985, 1, 1],
136
+ :notes=>[[{:note=>"Month", :value=>"January"}],[{:note=>"Week", :value=>"Tuesday(1)"}]]}],
137
+
138
+ ['明治7.5.7',
139
+ {:calendar=>["_e:Japanese::明治",1867], :sdn=>2405651, :cal_date=>[7, 5, 7],
140
+ :notes=>[[{:note=>"干支", :value=>"甲戌(10)", :position=>"共通"}],
141
+ [{:note=>"月名", :value=>"May", :position=>"月建"}],
142
+ [{:note=>"七曜", :value=>"Thursday(3)", :position=>"共通"},
143
+ {:note=>"干支", :value=>"甲子(00)", :position=>"共通"},
144
+ {:note=>"六曜", :value=>"赤口", :position=>"民間"}]]}],
145
+
146
+ ['明治17.5.7',
147
+ {:calendar=>["_e:Japanese::明治",1867], :sdn=>2409304, :cal_date=>[17, 5, 7],
148
+ :notes=>[[{:note=>"干支", :value=>"甲申(20)", :position=>"共通"}],
149
+ [{:note=>"月名", :value=>"May", :position=>"月建"}],
150
+ [{:note=>"七曜", :value=>"Wednesday(2)", :position=>"共通"},
151
+ {:note=>"干支", :value=>"丁巳(53)", :position=>"共通"},
152
+ {:note=>"六曜", :value=>"先負", :position=>"民間"}]]}],
153
+
154
+ ['CE-2010.06.08T12:00:00+09:00',
155
+ {:calendar=>["_e:Common::BCE", 1, true], :sdn=>987064, :cal_date=>[-2011, 6, 8],
156
+ :notes=>[[{:note=>"Month", :value=>"June"}],[]],
157
+ :clk_time=>[987064, 12, 0, 0]}],
158
+
159
+ [11,
160
+ {:calendar=>["_tm:JulianDate"], :sdn=>11,
161
+ :notes=>[[{:note=>"Week", :value=>"Friday(4)"},
162
+ {:note=>"干支", :value=>"甲子(00)"}]]}],
163
+
164
+ [11.0,
165
+ {:calendar=>["_tm:JulianDate"], :sdn=>11,
166
+ :notes=>[[{:note=>"Week", :value=>"Friday(4)"},
167
+ {:note=>"干支", :value=>"甲子(00)"}]],
168
+ :clk_time=>[11, 12, 0, 0]}]
169
+
170
+ ].each do |sample|
171
+ date, verify = sample
172
+ list = When.when?(date).to_h({:method=>:to_m17n, :prefix=>true})
173
+ [:calendar, :cal_date, :sdn, :clk_time].each do |key|
174
+ assert_equal(verify[key], list[key])
175
+ end
176
+ verify[:notes].each_index do |i|
177
+ verify[:notes][i].each_index do |k|
178
+ assert_equal(verify[:notes][i][k], list[:notes][i][k])
179
+ end
180
+ end
181
+ end
182
+ end
183
+ end
184
+ end