when_exe 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. data/bin/irb.rc +1 -0
  2. data/bin/locales.rb +8 -6
  3. data/bin/when.rb +1 -1
  4. data/lib/when_exe.rb +231 -146
  5. data/lib/when_exe/basictypes.rb +108 -18
  6. data/lib/when_exe/calendarnote.rb +263 -116
  7. data/lib/when_exe/calendartypes.rb +413 -22
  8. data/lib/when_exe/coordinates.rb +58 -36
  9. data/lib/when_exe/core/compatibility.rb +8 -6
  10. data/lib/when_exe/core/extension.rb +40 -15
  11. data/lib/when_exe/ephemeris.rb +20 -19
  12. data/lib/when_exe/{region → ephemeris}/moon.rb +4 -4
  13. data/lib/when_exe/{region/ephemeric_notes.rb → ephemeris/notes.rb} +25 -6
  14. data/lib/when_exe/{region → ephemeris}/planets.rb +0 -0
  15. data/lib/when_exe/{region → ephemeris}/sun.rb +7 -3
  16. data/lib/when_exe/{region → ephemeris}/v50.rb +0 -0
  17. data/lib/when_exe/googlecalendar.rb +2 -2
  18. data/lib/when_exe/icalendar.rb +3 -3
  19. data/lib/when_exe/inspect.rb +130 -70
  20. data/lib/when_exe/locales/af.rb +2 -2
  21. data/lib/when_exe/locales/akt.rb +176 -0
  22. data/lib/when_exe/locales/ar.rb +2 -2
  23. data/lib/when_exe/locales/{locales.rb → autoload.rb} +6 -2
  24. data/lib/when_exe/locales/az.rb +2 -2
  25. data/lib/when_exe/locales/bg.rb +2 -2
  26. data/lib/when_exe/locales/bn.rb +2 -2
  27. data/lib/when_exe/locales/bs.rb +2 -2
  28. data/lib/when_exe/locales/ca.rb +2 -2
  29. data/lib/when_exe/locales/cs.rb +2 -2
  30. data/lib/when_exe/locales/cy.rb +2 -2
  31. data/lib/when_exe/locales/da.rb +2 -2
  32. data/lib/when_exe/locales/de.rb +2 -2
  33. data/lib/when_exe/locales/de_AT.rb +2 -2
  34. data/lib/when_exe/locales/de_CH.rb +2 -2
  35. data/lib/when_exe/locales/el.rb +2 -2
  36. data/lib/when_exe/locales/en.rb +2 -2
  37. data/lib/when_exe/locales/en_AU.rb +2 -2
  38. data/lib/when_exe/locales/en_CA.rb +2 -2
  39. data/lib/when_exe/locales/en_GB.rb +2 -2
  40. data/lib/when_exe/locales/en_IE.rb +2 -2
  41. data/lib/when_exe/locales/en_IN.rb +3 -3
  42. data/lib/when_exe/locales/en_NZ.rb +2 -2
  43. data/lib/when_exe/locales/en_US.rb +2 -2
  44. data/lib/when_exe/locales/en_ZA.rb +88 -0
  45. data/lib/when_exe/locales/encoding_conversion.rb +126 -0
  46. data/lib/when_exe/locales/eo.rb +2 -2
  47. data/lib/when_exe/locales/es.rb +2 -2
  48. data/lib/when_exe/locales/es_419.rb +2 -2
  49. data/lib/when_exe/locales/es_AR.rb +2 -2
  50. data/lib/when_exe/locales/es_CL.rb +2 -2
  51. data/lib/when_exe/locales/es_CO.rb +2 -2
  52. data/lib/when_exe/locales/es_CR.rb +2 -2
  53. data/lib/when_exe/locales/es_EC.rb +2 -2
  54. data/lib/when_exe/locales/es_MX.rb +2 -2
  55. data/lib/when_exe/locales/es_PA.rb +2 -2
  56. data/lib/when_exe/locales/es_PE.rb +2 -2
  57. data/lib/when_exe/locales/es_US.rb +84 -0
  58. data/lib/when_exe/locales/es_VE.rb +2 -2
  59. data/lib/when_exe/locales/et.rb +2 -2
  60. data/lib/when_exe/locales/eu.rb +2 -2
  61. data/lib/when_exe/locales/fa.rb +2 -2
  62. data/lib/when_exe/locales/fi.rb +3 -3
  63. data/lib/when_exe/locales/fr.rb +2 -2
  64. data/lib/when_exe/locales/fr_CA.rb +2 -2
  65. data/lib/when_exe/locales/fr_CH.rb +2 -2
  66. data/lib/when_exe/locales/gl.rb +2 -2
  67. data/lib/when_exe/locales/he.rb +3 -3
  68. data/lib/when_exe/locales/hi.rb +2 -2
  69. data/lib/when_exe/locales/hi_IN.rb +2 -2
  70. data/lib/when_exe/locales/hr.rb +2 -2
  71. data/lib/when_exe/locales/hu.rb +6 -5
  72. data/lib/when_exe/locales/iast.rb +90 -0
  73. data/lib/when_exe/locales/id.rb +2 -2
  74. data/lib/when_exe/locales/is.rb +2 -2
  75. data/lib/when_exe/locales/it.rb +2 -2
  76. data/lib/when_exe/locales/it_CH.rb +2 -2
  77. data/lib/when_exe/locales/ja.rb +2 -2
  78. data/lib/when_exe/locales/kn.rb +2 -2
  79. data/lib/when_exe/locales/ko.rb +2 -2
  80. data/lib/when_exe/locales/links.rb +3 -3
  81. data/lib/when_exe/locales/lo.rb +2 -2
  82. data/lib/when_exe/{parts → locales}/locale.rb +77 -49
  83. data/lib/when_exe/locales/lt.rb +6 -2
  84. data/lib/when_exe/locales/lv.rb +2 -2
  85. data/lib/when_exe/locales/mk.rb +2 -2
  86. data/lib/when_exe/locales/mn.rb +2 -2
  87. data/lib/when_exe/locales/ms.rb +2 -2
  88. data/lib/when_exe/locales/nb.rb +2 -2
  89. data/lib/when_exe/locales/ne.rb +2 -2
  90. data/lib/when_exe/locales/nl.rb +2 -2
  91. data/lib/when_exe/locales/nn.rb +2 -2
  92. data/lib/when_exe/locales/or.rb +2 -2
  93. data/lib/when_exe/locales/pl.rb +2 -2
  94. data/lib/when_exe/locales/pt.rb +2 -2
  95. data/lib/when_exe/locales/pt_BR.rb +2 -2
  96. data/lib/when_exe/locales/rm.rb +2 -2
  97. data/lib/when_exe/locales/ro.rb +2 -2
  98. data/lib/when_exe/locales/ru.rb +2 -2
  99. data/lib/when_exe/locales/sk.rb +2 -2
  100. data/lib/when_exe/locales/sl.rb +2 -2
  101. data/lib/when_exe/locales/sr.rb +2 -2
  102. data/lib/when_exe/locales/sv.rb +2 -2
  103. data/lib/when_exe/locales/sw.rb +2 -2
  104. data/lib/when_exe/locales/ta.rb +95 -0
  105. data/lib/when_exe/locales/th.rb +2 -2
  106. data/lib/when_exe/locales/tl.rb +3 -3
  107. data/lib/when_exe/locales/tr.rb +2 -2
  108. data/lib/when_exe/locales/transliteration_table.rb +62 -0
  109. data/lib/when_exe/locales/uk.rb +15 -15
  110. data/lib/when_exe/locales/ur.rb +2 -2
  111. data/lib/when_exe/locales/uz.rb +2 -2
  112. data/lib/when_exe/locales/vi.rb +2 -2
  113. data/lib/when_exe/locales/wo.rb +2 -2
  114. data/lib/when_exe/locales/zh_CN.rb +2 -2
  115. data/lib/when_exe/locales/zh_HK.rb +15 -15
  116. data/lib/when_exe/locales/zh_TW.rb +2 -2
  117. data/lib/when_exe/locales/zh_YUE.rb +77 -0
  118. data/lib/when_exe/mini_application.rb +22 -12
  119. data/lib/when_exe/parts/geometric_complex.rb +16 -1
  120. data/lib/when_exe/parts/method_cash.rb +184 -238
  121. data/lib/when_exe/parts/resource.rb +65 -16
  122. data/lib/when_exe/region/armenian.rb +56 -0
  123. data/lib/when_exe/region/bahai.rb +13 -13
  124. data/lib/when_exe/region/balinese.rb +33 -35
  125. data/lib/when_exe/region/chinese.rb +82 -78
  126. data/lib/when_exe/region/{chinese_calendar.rb → chinese/calendars.rb} +59 -40
  127. data/lib/when_exe/region/{chinese_epoch.rb → chinese/epochs.rb} +3 -4
  128. data/lib/when_exe/region/{chinese_twin.rb → chinese/twins.rb} +48 -51
  129. data/lib/when_exe/region/christian.rb +236 -127
  130. data/lib/when_exe/region/coptic.rb +9 -10
  131. data/lib/when_exe/region/dee.rb +48 -0
  132. data/lib/when_exe/region/discordian.rb +225 -0
  133. data/lib/when_exe/region/far_east.rb +2 -6
  134. data/lib/when_exe/region/french.rb +7 -17
  135. data/lib/when_exe/region/geologicalage.rb +0 -1
  136. data/lib/when_exe/region/goddess.rb +58 -0
  137. data/lib/when_exe/region/indian.rb +323 -231
  138. data/lib/when_exe/region/iranian.rb +159 -22
  139. data/lib/when_exe/region/islamic.rb +7 -9
  140. data/lib/when_exe/region/japanese.rb +14 -803
  141. data/lib/when_exe/region/japanese/calendars.rb +397 -0
  142. data/lib/when_exe/region/japanese/epochs.rb +426 -0
  143. data/lib/when_exe/region/{nihon_shoki.rb → japanese/nihon_shoki.rb} +0 -2
  144. data/lib/when_exe/region/{japanese_notes.rb → japanese/notes.rb} +179 -150
  145. data/lib/when_exe/region/japanese/residues.rb +1306 -0
  146. data/lib/when_exe/region/{japanese_twin.rb → japanese/twins.rb} +12 -15
  147. data/lib/when_exe/region/javanese.rb +16 -14
  148. data/lib/when_exe/region/jewish.rb +8 -9
  149. data/lib/when_exe/region/korean.rb +146 -35
  150. data/lib/when_exe/region/m17n.rb +8 -10
  151. data/lib/when_exe/region/martian.rb +44 -16
  152. data/lib/when_exe/region/mayan.rb +12 -10
  153. data/lib/when_exe/region/pope.rb +0 -1
  154. data/lib/when_exe/region/residue.rb +4 -5
  155. data/lib/when_exe/region/roman.rb +20 -24
  156. data/lib/when_exe/region/ryukyu.rb +3 -4
  157. data/lib/when_exe/region/shire.rb +97 -94
  158. data/lib/when_exe/region/symmetry.rb +50 -0
  159. data/lib/when_exe/region/thai.rb +164 -56
  160. data/lib/when_exe/region/tibetan.rb +86 -86
  161. data/lib/when_exe/region/vietnamese.rb +9 -12
  162. data/lib/when_exe/region/weekdate.rb +80 -0
  163. data/lib/when_exe/region/world.rb +65 -70
  164. data/lib/when_exe/region/yerm.rb +98 -0
  165. data/lib/when_exe/region/zoroastrian.rb +203 -0
  166. data/lib/when_exe/timestandard.rb +4 -4
  167. data/lib/when_exe/tmobjects.rb +1 -3
  168. data/lib/when_exe/tmposition.rb +13 -12
  169. data/lib/when_exe/tmreference.rb +11 -10
  170. data/lib/when_exe/version.rb +1 -1
  171. data/link_to_online_documents +3 -3
  172. data/test/examples/Residue.m17n +1 -1
  173. data/test/examples/Terms.m17n +1 -1
  174. data/test/test.rb +2 -1
  175. data/test/test/basictypes.rb +18 -2
  176. data/test/test/calendarnote.rb +1 -1
  177. data/test/test/calendartypes.rb +1 -1
  178. data/test/test/coordinates.rb +7 -7
  179. data/test/test/{region → ephemeris}/moon.rb +0 -0
  180. data/test/test/{region → ephemeris}/planets.rb +0 -0
  181. data/test/test/{region → ephemeris}/sun.rb +0 -0
  182. data/test/test/parts.rb +8 -13
  183. data/test/test/region/christian.rb +245 -0
  184. data/test/test/region/french.rb +16 -16
  185. data/test/test/region/iran.rb +34 -34
  186. data/test/test/region/japanese.rb +6 -4
  187. data/test/test/region/m17n.rb +8 -7
  188. data/test/test/region/mayan.rb +12 -12
  189. data/test/test/region/residue.rb +20 -4
  190. data/test/test/region/thai.rb +25 -3
  191. data/test/test/region/yerm.rb +146 -0
  192. metadata +39 -20
  193. data/lib/when_exe/region/japanese_residues.rb +0 -1212
  194. data/test/test/region/civil.rb +0 -124
@@ -10,23 +10,23 @@ module Test
10
10
 
11
11
  class FrenchRepublican < Test::Unit::TestCase
12
12
  def test__french_republican
13
- date = When.when? 'FRE1.1.1'
14
- [["FRE01(1793).01.01", 2375840],
15
- ["FRE02(1794).01.01", 2376205],
16
- ["FRE03(1795).01.01", 2376570],
17
- ["FRE04(1796).01.01", 2376936],
18
- ["FRE05(1797).01.01", 2377301],
19
- ["FRE06(1798).01.01", 2377666],
20
- ["FRE07(1799).01.01", 2378031],
21
- ["FRE08(1800).01.01", 2378397],
22
- ["FRE09(1801).01.01", 2378762],
23
- ["FRE10(1802).01.01", 2379127],
24
- ["FRE11(1803).01.01", 2379492],
25
- ["FRE12(1804).01.01", 2379858],
26
- ["FRE13(1805).01.01", 2380223],
27
- ["FRE14(1806).01.01", 2380588]].each do |sample|
13
+ date = When.when? '1.1.1^^FrenchRepublican'
14
+ [["0001-01-01", 2375840],
15
+ ["0002-01-01", 2376205],
16
+ ["0003-01-01", 2376570],
17
+ ["0004-01-01", 2376936],
18
+ ["0005-01-01", 2377301],
19
+ ["0006-01-01", 2377666],
20
+ ["0007-01-01", 2378031],
21
+ ["0008-01-01", 2378397],
22
+ ["0009-01-01", 2378762],
23
+ ["0010-01-01", 2379127],
24
+ ["0011-01-01", 2379492],
25
+ ["0012-01-01", 2379858],
26
+ ["0013-01-01", 2380223],
27
+ ["0014-01-01", 2380588]].each do |sample|
28
28
  assert_equal(sample, [date.to_s, date.to_i])
29
- date += When.Duration('P1Y')
29
+ date += When::P1Y
30
30
  end
31
31
  end
32
32
  end
@@ -11,40 +11,40 @@ module Test
11
11
  class Iranian < Test::Unit::TestCase
12
12
  def test__iranian
13
13
  date = When.when? 'AP1391.1.1'
14
- [["AP1391.01.01", 2456007], # (2012)
15
- ["AP1392.01.01", 2456373], # (2013)
16
- ["AP1393.01.01", 2456738], # (2014)
17
- ["AP1394.01.01", 2457103], # (2015)
18
- ["AP1395.01.01", 2457468], # (2016)
19
- ["AP1396.01.01", 2457834], # (2017)
20
- ["AP1397.01.01", 2458199], # (2018)
21
- ["AP1398.01.01", 2458564], # (2019)
22
- ["AP1399.01.01", 2458929], # (2020)
23
- ["AP1400.01.01", 2459295], # (2021)
24
- ["AP1401.01.01", 2459660], # (2022)
25
- ["AP1402.01.01", 2460025], # (2023)
26
- ["AP1403.01.01", 2460390], # (2024)
27
- ["AP1404.01.01", 2460756], # (2025)
28
- ["AP1405.01.01", 2461121], # (2026)
29
- ["AP1406.01.01", 2461486], # (2027)
30
- ["AP1407.01.01", 2461851], # (2028)
31
- ["AP1408.01.01", 2462216], # (2029)
32
- ["AP1409.01.01", 2462582], # (2030)
33
- ["AP1410.01.01", 2462947], # (2031)
34
- ["AP1411.01.01", 2463312], # (2032)
35
- ["AP1412.01.01", 2463677], # (2033)
36
- ["AP1413.01.01", 2464043], # (2034)
37
- ["AP1414.01.01", 2464408], # (2035)
38
- ["AP1415.01.01", 2464773], # (2036)
39
- ["AP1416.01.01", 2465138], # (2037)
40
- ["AP1417.01.01", 2465504], # (2038)
41
- ["AP1418.01.01", 2465869], # (2039)
42
- ["AP1419.01.01", 2466234], # (2040)
43
- ["AP1420.01.01", 2466599], # (2041)
44
- ["AP1421.01.01", 2466965], # (2042)
45
- ["AP1422.01.01", 2467330], # (2043)
46
- ["AP1423.01.01", 2467695], # (2044)
47
- ["AP1424.01.01", 2468060] # (2045)
14
+ [["Iranian::AH1391.01.01", 2456007], # (2012)
15
+ ["Iranian::AH1392.01.01", 2456373], # (2013)
16
+ ["Iranian::AH1393.01.01", 2456738], # (2014)
17
+ ["Iranian::AH1394.01.01", 2457103], # (2015)
18
+ ["Iranian::AH1395.01.01", 2457468], # (2016)
19
+ ["Iranian::AH1396.01.01", 2457834], # (2017)
20
+ ["Iranian::AH1397.01.01", 2458199], # (2018)
21
+ ["Iranian::AH1398.01.01", 2458564], # (2019)
22
+ ["Iranian::AH1399.01.01", 2458929], # (2020)
23
+ ["Iranian::AH1400.01.01", 2459295], # (2021)
24
+ ["Iranian::AH1401.01.01", 2459660], # (2022)
25
+ ["Iranian::AH1402.01.01", 2460025], # (2023)
26
+ ["Iranian::AH1403.01.01", 2460390], # (2024)
27
+ ["Iranian::AH1404.01.01", 2460756], # (2025)
28
+ ["Iranian::AH1405.01.01", 2461121], # (2026)
29
+ ["Iranian::AH1406.01.01", 2461486], # (2027)
30
+ ["Iranian::AH1407.01.01", 2461851], # (2028)
31
+ ["Iranian::AH1408.01.01", 2462216], # (2029)
32
+ ["Iranian::AH1409.01.01", 2462582], # (2030)
33
+ ["Iranian::AH1410.01.01", 2462947], # (2031)
34
+ ["Iranian::AH1411.01.01", 2463312], # (2032)
35
+ ["Iranian::AH1412.01.01", 2463677], # (2033)
36
+ ["Iranian::AH1413.01.01", 2464043], # (2034)
37
+ ["Iranian::AH1414.01.01", 2464408], # (2035)
38
+ ["Iranian::AH1415.01.01", 2464773], # (2036)
39
+ ["Iranian::AH1416.01.01", 2465138], # (2037)
40
+ ["Iranian::AH1417.01.01", 2465504], # (2038)
41
+ ["Iranian::AH1418.01.01", 2465869], # (2039)
42
+ ["Iranian::AH1419.01.01", 2466234], # (2040)
43
+ ["Iranian::AH1420.01.01", 2466599], # (2041)
44
+ ["Iranian::AH1421.01.01", 2466965], # (2042)
45
+ ["Iranian::AH1422.01.01", 2467330], # (2043)
46
+ ["Iranian::AH1423.01.01", 2467695], # (2044)
47
+ ["Iranian::AH1424.01.01", 2468060] # (2045)
48
48
  ].each do |sample|
49
49
  assert_equal(sample, [date.to_s, date.to_i])
50
50
  date += When.Duration('P1Y')
@@ -10,6 +10,8 @@ module Test
10
10
 
11
11
  class Japanese < Test::Unit::TestCase
12
12
 
13
+ include When::CalendarNote::Japanese::Index
14
+
13
15
  def test_japanese_epoch
14
16
  eras = When.Resource('_e:Japanese')
15
17
 
@@ -149,21 +151,21 @@ module Test
149
151
  2449525..2449526].each do |range|
150
152
  range.each do |jdn|
151
153
  (When.when?(jdn) ^ When.CalendarEra('Japanese')).each do |date|
152
- dates = When.CalendarNote('JapaneseNote').send(:_to_date_for_note, date)
154
+ dates = When.CalendarNote('Japanese').send(:_to_date_for_note, date)
153
155
  date = When.when?(dates.o_date.to_cal_date.to_s,
154
156
  {:clock=>dates.s_date.frame.time_basis})
155
157
  long = dates.cal4note.s_terms.position(date)
156
158
  notes = date.notes(:indices => When::DAY,
157
- :notes => (13<<9|1<<48|1<<71),
159
+ :notes => MD廿四節気|MD七十二候|MD六十卦|MD没|MD往亡,
158
160
  :locale => 'ja').simplify[:value].compact
159
161
  result << [date.to_m17n/'ja', notes]
160
162
  end
161
163
  end
162
164
  end
163
165
  assert_equal(sample.shift, result)
164
- When::CalendarNote::JapaneseNote::SolarTerms.send(:patch=, {})
166
+ When::CalendarNote::Japanese::SolarTerms.send(:patch=, {})
165
167
  end
166
- When::CalendarNote::JapaneseNote::SolarTerms.send(:patch=, nil)
168
+ When::CalendarNote::Japanese::SolarTerms.send(:patch=, nil)
167
169
  end
168
170
 
169
171
  def test__lunar_phases
@@ -11,7 +11,7 @@ module Test
11
11
  class M17n < Test::Unit::TestCase
12
12
 
13
13
  First = [
14
- ["CalendarTerms", "CalendarTerms", ""],
14
+ ["Calendar", "Calendar", nil],
15
15
  ["Month", "月", "http://ja.wikipedia.org/wiki/%E6%9C%88_(%E6%9A%A6)"],
16
16
  ["Month", "月", "http://ja.wikipedia.org/wiki/%E6%9C%88_(%E6%9A%A6)"],
17
17
  ["January", "1月", "http://ja.wikipedia.org/wiki/1%E6%9C%88"]
@@ -33,7 +33,7 @@ module Test
33
33
  ]
34
34
 
35
35
  def test__m17n_1
36
- ['examples/Terms.m17n', '_m:CalendarTerms'].each do |head|
36
+ ['examples/Terms.m17n', '_m:Calendar'].each do |head|
37
37
  When.Resource(head)
38
38
 
39
39
  # pp When::Parts::Resource[head].child.map {|v| v.label}
@@ -71,8 +71,9 @@ module Test
71
71
 
72
72
  date = When.when?('CE2010.4.12')
73
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})
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})
76
77
  assert_equal(["Accession", true, "http://hosi.org/When/BasicTypes/M17n/EpochEvents::Accession"],
77
78
  [era['::_m:EpochEvents::Accession'].to_s,
78
79
  era['::_m:EpochEvents::Accession'].registered?,
@@ -101,21 +102,21 @@ module Test
101
102
  end
102
103
 
103
104
  def test__m17n_3
104
- january = When.Resource('_m:CalendarTerms::Month::January')
105
+ january = When.Resource('_m:Calendar::Month::January')
105
106
  [['en', 'January'], ['ja', '1月'], ['fr', 'janvier']].each do |sample|
106
107
  assert_equal(sample[1], january.translate(sample[0]))
107
108
  end
108
109
  end
109
110
 
110
111
  def test__m17n_4
111
- january = When.Resource('_m:CalendarTerms::Month::January')
112
+ january = When.Resource('_m:Calendar::Month::January')
112
113
  [['en', 'January'], ['ja', '1月'], ['fr', 'janvier']].each do |sample|
113
114
  assert_equal(sample[1], january.translate(sample[0]))
114
115
  end
115
116
  end
116
117
 
117
118
  def test__m17n_5
118
- month = When.Resource('_m:CalendarTerms::Month')
119
+ month = When.Resource('_m:Calendar::Month')
119
120
  [['en', 'Month'], ['ja', '月'], ['fr', 'Mois']].each do |sample|
120
121
  assert_equal(sample[1], month.translate(sample[0]))
121
122
  end
@@ -11,28 +11,28 @@ module Test
11
11
  class Mayan < Test::Unit::TestCase
12
12
  def test__mayan_epoch
13
13
  # No offset
14
- [['PHLC13.0.0.0.0', 'PHLC13(0000).00.00.00.00', 584283],
15
- ['HLC0.0.0.0.1', 'HLC00.00.00.00.01', 584284],
16
- ['HLC13.0.0.0.0', 'HLC13.00.00.00.00', 2456283],
17
- ['HLC13.0.0.0.1', 'NLC00(0013).00.00.00.01', 2456284]].each do |sample|
14
+ [['PHLC13.0.0.0.0', 'PHLC13(00).00.00.00.00', 584283],
15
+ ['HLC0.0.0.0.1', 'HLC00.00.00.00.01', 584284],
16
+ ['HLC13.0.0.0.0', 'HLC13.00.00.00.00', 2456283],
17
+ ['HLC13.0.0.0.1', 'NLC00(13).00.00.00.01', 2456284]].each do |sample|
18
18
  date = When.when?(sample.shift)
19
19
  assert_equal(sample, [date.to_s, date.to_i])
20
20
  end
21
21
 
22
22
  # offset 0B
23
- [['LongCount?Epoch=0D::PHLC13.0.0.0.0', 'LongCount?Epoch=0D::PHLC13(0000).00.00.00.00', 584283],
24
- ['LongCount?Epoch=0D::HLC0.0.0.0.1', 'LongCount?Epoch=0D::HLC00.00.00.00.01', 584284],
25
- ['LongCount?Epoch=0D::HLC13.0.0.0.0', 'LongCount?Epoch=0D::HLC13.00.00.00.00', 2456283],
26
- ['LongCount?Epoch=0D::HLC13.0.0.0.1', 'LongCount?Epoch=0D::NLC00(0013).00.00.00.01', 2456284]].each do |sample|
23
+ [['LongCount?Epoch=0D::PHLC13.0.0.0.0', 'LongCount?Epoch=0D::PHLC13(00).00.00.00.00', 584283],
24
+ ['LongCount?Epoch=0D::HLC0.0.0.0.1', 'LongCount?Epoch=0D::HLC00.00.00.00.01', 584284],
25
+ ['LongCount?Epoch=0D::HLC13.0.0.0.0', 'LongCount?Epoch=0D::HLC13.00.00.00.00', 2456283],
26
+ ['LongCount?Epoch=0D::HLC13.0.0.0.1', 'LongCount?Epoch=0D::NLC00(13).00.00.00.01', 2456284]].each do |sample|
27
27
  date = When.when?(sample.shift)
28
28
  assert_equal(sample, [date.to_s, date.to_i])
29
29
  end
30
30
 
31
31
  # offset 2B
32
- [['LongCount?Epoch=2D::PHLC13.0.0.0.0', 'LongCount?Epoch=2D::PHLC13(0000).00.00.00.00', 584285],
33
- ['LongCount?Epoch=2D::HLC0.0.0.0.1', 'LongCount?Epoch=2D::HLC00.00.00.00.01', 584286],
34
- ['LongCount?Epoch=2D::HLC13.0.0.0.0', 'LongCount?Epoch=2D::HLC13.00.00.00.00', 2456285],
35
- ['LongCount?Epoch=2D::HLC13.0.0.0.1', 'LongCount?Epoch=2D::NLC00(0013).00.00.00.01', 2456286]].each do |sample|
32
+ [['LongCount?Epoch=2D::PHLC13.0.0.0.0', 'LongCount?Epoch=2D::PHLC13(00).00.00.00.00', 584285],
33
+ ['LongCount?Epoch=2D::HLC0.0.0.0.1', 'LongCount?Epoch=2D::HLC00.00.00.00.01', 584286],
34
+ ['LongCount?Epoch=2D::HLC13.0.0.0.0', 'LongCount?Epoch=2D::HLC13.00.00.00.00', 2456285],
35
+ ['LongCount?Epoch=2D::HLC13.0.0.0.1', 'LongCount?Epoch=2D::NLC00(13).00.00.00.01', 2456286]].each do |sample|
36
36
  date = When.when?(sample.shift)
37
37
  assert_equal(sample, [date.to_s, date.to_i])
38
38
  end
@@ -32,7 +32,7 @@ module Test
32
32
  end
33
33
 
34
34
  def test__kanshi
35
- ['_co:CommonResidue', 'examples/Residue.m17n'].each do |iri|
35
+ ['_co:Common', 'examples/Residue.m17n'].each do |iri|
36
36
  assert_equal("Week", When.Resource(iri + '::Week').label)
37
37
  assert_equal("Monday", When.Resource(iri + '::Week::Monday').label)
38
38
  assert_equal(7, When.Resource(iri + '::Week::Friday').divisor)
@@ -92,24 +92,40 @@ module Test
92
92
  def test__epoch_in_CE
93
93
  cals = [
94
94
  'Gregorian',
95
+ # 'Dee',
96
+ # 'DeeCecil',
95
97
  'Coptic?Epoch=284Y',
96
98
  'Coptic?Epoch=8Y',
97
99
  'IndianNationalSolar',
100
+ 'Nanakshahi',
101
+ 'RevisedBengali',
98
102
  'HinduSolar?type=SBV',
99
103
  'HinduSolar?type=SBVZ',
100
104
  'HinduSolar?type=SBS',
101
105
  'HinduSolar?type=SBSZ',
106
+ 'HinduSolar?type=SBB',
107
+ 'HinduSolar?type=SBBZ',
108
+ 'HinduSolar?type=SBH',
109
+ 'HinduSolar?type=SBHZ',
102
110
  # 'HinduLuniSolar?type=SBVA',
103
111
  # 'HinduLuniSolar?type=SBVZA',
104
112
  # 'HinduLuniSolar?type=SBSA',
105
113
  # 'HinduLuniSolar?type=SBSZA',
106
- 'SolarHejri',
114
+ # 'HinduLuniSolar?type=SBB',
115
+ # 'HinduLuniSolar?type=SBBZ',
116
+ # 'HinduLuniSolar?type=SBH',
117
+ # 'HinduLuniSolar?type=SBHZ',
118
+ 'FrenchRepublican',
119
+ 'Jalali',
120
+ 'SolarHijri',
121
+ 'SolarHijriAlgorithmic',
122
+ 'Borji',
107
123
  'Jewish',
108
- 'ThaiB',
124
+ 'Thai',
109
125
  # 'ThaiC',
110
126
  'Tibetan',
111
127
  ]
112
- eto = When.Resource('_co:CommonResidue::干支').to('year')
128
+ eto = When.Resource('_co:Common::干支').to('year')
113
129
  today = When.when?('2012-06-13')
114
130
  assert_equal([[28, 246778, 246778]],
115
131
  cals.map { |cal|
@@ -11,7 +11,7 @@ module Test
11
11
  class Thai < Test::Unit::TestCase
12
12
  def test_thai_date
13
13
 
14
- date = When.Resource('_c:ThaiC') ^ When.when?('2011-05-16')
14
+ date = When.Resource('_c:ThaiP') ^ When.when?('2011-05-16')
15
15
  [["1373-07-15", 2455698],
16
16
  ["1373-07<01", 2455699],
17
17
  ["1373-07<02", 2455700]].each do |sample|
@@ -33,7 +33,7 @@ module Test
33
33
  date += When.Duration('P1M')
34
34
  end
35
35
 
36
- date = When.Resource('_c:ThaiB') ^ When.when?('2011-05-16')
36
+ date = When.Resource('_c:Thai') ^ When.when?('2011-05-16')
37
37
  [["1373-06-14", 2455698],
38
38
  ["1373-06-15", 2455699],
39
39
  ["1373-06<01", 2455700]].each do |sample|
@@ -85,9 +85,31 @@ module Test
85
85
  date += When.Duration('P1M')
86
86
  end
87
87
 
88
- date = When.when?('1374-08&02', {:frame=>When.Resource('_c:ThaiB')})
88
+ date = When.when?('1374-08&02', {:frame=>When.Resource('_c:Thai')})
89
89
  assert_equal(["1374-08&02", 2456099, "adhika Āṣāḍha Śuklapakṣa"],
90
90
  [date.to_s, date.to_i, date.name('Month').translate('en')])
91
+
92
+ diffs = [
93
+ [1840,-1], [1860, 1], [1865, 1], [1876,-1], [1880,-1], [1881,-1], [1891,29], [1901, 1],
94
+ [1902, 1], [1906, 1], [1910,30], [1911, 1], [1915, 1], [1916, 1], [1922, 1], [1926, 1],
95
+ [1927, 1], [1934, 1], [1935, 1], [1936, 1], [1963, 1], [2024,-1], [2025,-1], [2040,-1],
96
+ [2041,-1]]
97
+ (1840..2050).each do |year|
98
+ cdate = When.TemporalPosition(year-638, 1, 1, :frame=>'ThaiC').to_i
99
+ tdate = When.TemporalPosition(year-638, 1, 1, :frame=>'ThaiT').to_i
100
+ unless cdate == tdate
101
+ assert_equal(diffs.shift, [year, tdate - cdate])
102
+ end
103
+ end
104
+ assert_equal(0, diffs.size)
105
+
106
+ diffs = [[1961,0], [1962,0], [1963,1], [1964,1]]
107
+ (1961..1964).each do |year|
108
+ t0date = When.TemporalPosition(year-638, 1, 1, :frame=>'ThaiT').to_i
109
+ t1date = When.TemporalPosition(year-638, 1, 1, :frame=>'ThaiT?patch=1962A').to_i
110
+ assert_equal(diffs.shift, [year, t0date - t1date])
111
+ end
112
+ assert_equal(0, diffs.size)
91
113
  end
92
114
  end
93
115
  end
@@ -0,0 +1,146 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2014 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license
6
+ described in the LICENSE.txt file included in this archive.
7
+ =end
8
+
9
+ module Test
10
+
11
+ class Yerm < Test::Unit::TestCase
12
+ Abbrs = [[], 21, [21,14], [21,14, 5]]
13
+ Crecents = %w<
14
+ -1(02(03(04
15
+ 20(02(03(04
16
+ -1-02(03(04
17
+ 20-02(03(04
18
+ -1-02(03
19
+ 20-02(03
20
+ -1-02
21
+ 20-02
22
+ -1-
23
+ 20-
24
+ -1
25
+ 02(03(04
26
+ 03(04
27
+ 04
28
+ 04)03)02)-1
29
+ 04)03)02)20
30
+ 04)03)02--1
31
+ 04)03)02-20
32
+ 03)02--1
33
+ 03)02-20
34
+ 02--1
35
+ 04)03)02
36
+ 04)03
37
+ >
38
+ Results = [
39
+ [[], "-1(02(03(04", "-1-02-03-04"],
40
+ [[], "20(02(03(04", "20-02-03-04"],
41
+ [[], "-1-02(03(04", "-1-02-03-04"],
42
+ [[], "20-02(03(04", "20-02-03-04"],
43
+ [[], "-1-02(03", "-1-02-03"],
44
+ [[], "20-02(03", "20-02-03"],
45
+ [[], "-1-02", "-1-02"],
46
+ [[], "20-02", "20-02"],
47
+ [[], "-1-", "-1"],
48
+ [[], "20-", "20"],
49
+ [[], "-1", "-1"],
50
+ [[], "02(03(04", :error],
51
+ [[], "03(04", :error],
52
+ [[], "04", :error],
53
+ [[], "04)03)02)-1", "-1-02-03-04"],
54
+ [[], "04)03)02)20", "20-02-03-04"],
55
+ [[], "04)03)02--1", "-1-02-03-04"],
56
+ [[], "04)03)02-20", "20-02-03-04"],
57
+ [[], "03)02--1", "-1-02-03"],
58
+ [[], "03)02-20", "20-02-03"],
59
+ [[], "02--1", "-1-02"],
60
+ [[], "04)03)02", :error],
61
+ [[], "04)03", :error],
62
+ [21, "-1(02(03(04", "-1-02-03-04"],
63
+ [21, "20(02(03(04", "20-02-03-04"],
64
+ [21, "-1-02(03(04", "-1-02-03-04"],
65
+ [21, "20-02(03(04", "20-02-03-04"],
66
+ [21, "-1-02(03", "-1-02-03"],
67
+ [21, "20-02(03", "20-02-03"],
68
+ [21, "-1-02", "-1-02"],
69
+ [21, "20-02", "20-02"],
70
+ [21, "-1-", "-1"],
71
+ [21, "20-", "20"],
72
+ [21, "-1", "-1"],
73
+ [21, "02(03(04", "21-02-03-04"],
74
+ [21, "03(04", :error],
75
+ [21, "04", :error],
76
+ [21, "04)03)02)-1", "-1-02-03-04"],
77
+ [21, "04)03)02)20", "20-02-03-04"],
78
+ [21, "04)03)02--1", "-1-02-03-04"],
79
+ [21, "04)03)02-20", "20-02-03-04"],
80
+ [21, "03)02--1", "-1-02-03"],
81
+ [21, "03)02-20", "20-02-03"],
82
+ [21, "02--1", "-1-02"],
83
+ [21, "04)03)02", "21-02-03-04"],
84
+ [21, "04)03", :error],
85
+ [[21, 14], "-1(02(03(04", "-1-02-03-04"],
86
+ [[21, 14], "20(02(03(04", "20-02-03-04"],
87
+ [[21, 14], "-1-02(03(04", "-1-02-03-04"],
88
+ [[21, 14], "20-02(03(04", "20-02-03-04"],
89
+ [[21, 14], "-1-02(03", "-1-02-03"],
90
+ [[21, 14], "20-02(03", "20-02-03"],
91
+ [[21, 14], "-1-02", "-1-02"],
92
+ [[21, 14], "20-02", "20-02"],
93
+ [[21, 14], "-1-", "-1"],
94
+ [[21, 14], "20-", "20"],
95
+ [[21, 14], "-1", "-1"],
96
+ [[21, 14], "02(03(04", "21-02-03-04"],
97
+ [[21, 14], "03(04", "21-14-03-04"],
98
+ [[21, 14], "04", :error],
99
+ [[21, 14], "04)03)02)-1", "-1-02-03-04"],
100
+ [[21, 14], "04)03)02)20", "20-02-03-04"],
101
+ [[21, 14], "04)03)02--1", "-1-02-03-04"],
102
+ [[21, 14], "04)03)02-20", "20-02-03-04"],
103
+ [[21, 14], "03)02--1", "-1-02-03"],
104
+ [[21, 14], "03)02-20", "20-02-03"],
105
+ [[21, 14], "02--1", "-1-02"],
106
+ [[21, 14], "04)03)02", "21-02-03-04"],
107
+ [[21, 14], "04)03", "21-14-03-04"],
108
+ [[21, 14, 5], "-1(02(03(04", "-1-02-03-04"],
109
+ [[21, 14, 5], "20(02(03(04", "20-02-03-04"],
110
+ [[21, 14, 5], "-1-02(03(04", "-1-02-03-04"],
111
+ [[21, 14, 5], "20-02(03(04", "20-02-03-04"],
112
+ [[21, 14, 5], "-1-02(03", "-1-02-03"],
113
+ [[21, 14, 5], "20-02(03", "20-02-03"],
114
+ [[21, 14, 5], "-1-02", "-1-02"],
115
+ [[21, 14, 5], "20-02", "20-02"],
116
+ [[21, 14, 5], "-1-", "-1"],
117
+ [[21, 14, 5], "20-", "20"],
118
+ [[21, 14, 5], "-1", "-1"],
119
+ [[21, 14, 5], "02(03(04", "21-02-03-04"],
120
+ [[21, 14, 5], "03(04", "21-14-03-04"],
121
+ [[21, 14, 5], "04", "21-14-5-04"],
122
+ [[21, 14, 5], "04)03)02)-1", "-1-02-03-04"],
123
+ [[21, 14, 5], "04)03)02)20", "20-02-03-04"],
124
+ [[21, 14, 5], "04)03)02--1", "-1-02-03-04"],
125
+ [[21, 14, 5], "04)03)02-20", "20-02-03-04"],
126
+ [[21, 14, 5], "03)02--1", "-1-02-03"],
127
+ [[21, 14, 5], "03)02-20", "20-02-03"],
128
+ [[21, 14, 5], "02--1", "-1-02"],
129
+ [[21, 14, 5], "04)03)02", "21-02-03-04"],
130
+ [[21, 14, 5], "04)03", "21-14-03-04"]]
131
+
132
+ def test__parse_crecents
133
+ results = []
134
+ Abbrs.each do |abbr|
135
+ Crecents.each do |crecent|
136
+ begin
137
+ results << [abbr, crecent, When::CalendarTypes::Yerm.parse(crecent, abbr)]
138
+ rescue
139
+ results << [abbr, crecent, :error]
140
+ end
141
+ end
142
+ end
143
+ assert_equal(Results, results)
144
+ end
145
+ end
146
+ end