when_exe 0.2.100 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. data/LICENSE.ja.txt +25 -25
  2. data/LICENSE.txt +31 -31
  3. data/bin/irb.rc +5 -0
  4. data/bin/locales.rb +2 -2
  5. data/bin/when.rb +16 -0
  6. data/bin/when.rb.config +7 -0
  7. data/lib/when_exe.rb +616 -14
  8. data/lib/when_exe/basictypes.rb +615 -0
  9. data/lib/when_exe/calendartypes.rb +1700 -0
  10. data/lib/when_exe/coordinates.rb +1936 -0
  11. data/lib/when_exe/core/compatibility.rb +54 -0
  12. data/lib/when_exe/core/duration.rb +72 -72
  13. data/lib/when_exe/core/extension.rb +382 -0
  14. data/lib/when_exe/ephemeris.rb +1845 -0
  15. data/lib/when_exe/googlecalendar.rb +140 -0
  16. data/lib/when_exe/icalendar.rb +1587 -0
  17. data/lib/when_exe/inspect.rb +1237 -0
  18. data/lib/when_exe/locales/af.rb +90 -0
  19. data/lib/when_exe/locales/ar.rb +145 -0
  20. data/lib/when_exe/locales/az.rb +90 -0
  21. data/lib/when_exe/locales/bg.rb +90 -0
  22. data/lib/when_exe/locales/bn.rb +94 -0
  23. data/lib/when_exe/locales/bs.rb +121 -0
  24. data/lib/when_exe/locales/ca.rb +92 -0
  25. data/lib/when_exe/locales/cs.rb +107 -0
  26. data/lib/when_exe/locales/cy.rb +150 -0
  27. data/lib/when_exe/locales/da.rb +84 -0
  28. data/lib/when_exe/locales/de.rb +92 -0
  29. data/lib/when_exe/locales/de_AT.rb +92 -0
  30. data/lib/when_exe/locales/de_CH.rb +92 -0
  31. data/lib/when_exe/locales/el.rb +93 -0
  32. data/lib/when_exe/locales/en.rb +88 -0
  33. data/lib/when_exe/locales/en_AU.rb +88 -0
  34. data/lib/when_exe/locales/en_CA.rb +88 -0
  35. data/lib/when_exe/locales/en_GB.rb +88 -0
  36. data/lib/when_exe/locales/en_IN.rb +88 -0
  37. data/lib/when_exe/locales/en_NZ.rb +88 -0
  38. data/lib/when_exe/locales/eo.rb +89 -0
  39. data/lib/when_exe/locales/es.rb +84 -0
  40. data/lib/when_exe/locales/es_419.rb +84 -0
  41. data/lib/when_exe/locales/es_AR.rb +84 -0
  42. data/lib/when_exe/locales/es_CL.rb +84 -0
  43. data/lib/when_exe/locales/es_CO.rb +84 -0
  44. data/lib/when_exe/locales/es_MX.rb +84 -0
  45. data/lib/when_exe/locales/es_PE.rb +85 -0
  46. data/lib/when_exe/locales/es_VE.rb +84 -0
  47. data/lib/when_exe/locales/et.rb +94 -0
  48. data/lib/when_exe/locales/eu.rb +95 -0
  49. data/lib/when_exe/locales/fa.rb +80 -0
  50. data/lib/when_exe/locales/fi.rb +89 -0
  51. data/lib/when_exe/locales/fr.rb +88 -0
  52. data/lib/when_exe/locales/fr_CA.rb +88 -0
  53. data/lib/when_exe/locales/fr_CH.rb +88 -0
  54. data/lib/when_exe/locales/gl.rb +81 -0
  55. data/lib/when_exe/locales/he.rb +84 -0
  56. data/lib/when_exe/locales/hi.rb +80 -0
  57. data/lib/when_exe/locales/hi_IN.rb +84 -0
  58. data/lib/when_exe/locales/hr.rb +128 -0
  59. data/lib/when_exe/locales/hu.rb +84 -0
  60. data/lib/when_exe/locales/id.rb +89 -0
  61. data/lib/when_exe/locales/is.rb +89 -0
  62. data/lib/when_exe/locales/it.rb +87 -0
  63. data/lib/when_exe/locales/it_CH.rb +87 -0
  64. data/lib/when_exe/locales/ja.rb +78 -0
  65. data/lib/when_exe/locales/kn.rb +86 -0
  66. data/lib/when_exe/locales/ko.rb +78 -0
  67. data/lib/when_exe/locales/links.rb +2342 -0
  68. data/lib/when_exe/locales/lo.rb +123 -0
  69. data/lib/when_exe/locales/locales.rb +91 -0
  70. data/lib/when_exe/locales/lt.rb +111 -0
  71. data/lib/when_exe/locales/lv.rb +118 -0
  72. data/lib/when_exe/locales/mk.rb +93 -0
  73. data/lib/when_exe/locales/mn.rb +80 -0
  74. data/lib/when_exe/locales/nb.rb +81 -0
  75. data/lib/when_exe/locales/ne.rb +81 -0
  76. data/lib/when_exe/locales/nl.rb +92 -0
  77. data/lib/when_exe/locales/nn.rb +73 -0
  78. data/lib/when_exe/locales/or.rb +84 -0
  79. data/lib/when_exe/locales/pl.rb +128 -0
  80. data/lib/when_exe/locales/pt.rb +88 -0
  81. data/lib/when_exe/locales/pt_BR.rb +88 -0
  82. data/lib/when_exe/locales/rm.rb +143 -0
  83. data/lib/when_exe/locales/ro.rb +105 -0
  84. data/lib/when_exe/locales/ru.rb +128 -0
  85. data/lib/when_exe/locales/sk.rb +109 -0
  86. data/lib/when_exe/locales/sl.rb +122 -0
  87. data/lib/when_exe/locales/sr.rb +122 -0
  88. data/lib/when_exe/locales/sv.rb +83 -0
  89. data/lib/when_exe/locales/sw.rb +89 -0
  90. data/lib/when_exe/locales/th.rb +78 -0
  91. data/lib/when_exe/locales/tl.rb +99 -0
  92. data/lib/when_exe/locales/tr.rb +96 -0
  93. data/lib/when_exe/locales/uk.rb +128 -0
  94. data/lib/when_exe/locales/uz.rb +128 -0
  95. data/lib/when_exe/locales/vi.rb +94 -0
  96. data/lib/when_exe/locales/wo.rb +82 -0
  97. data/lib/when_exe/locales/zh_CN.rb +77 -0
  98. data/lib/when_exe/locales/zh_HK.rb +77 -0
  99. data/lib/when_exe/locales/zh_TW.rb +77 -0
  100. data/lib/when_exe/mini_application.rb +252 -0
  101. data/lib/when_exe/parts/enumerator.rb +472 -0
  102. data/lib/when_exe/parts/geometric_complex.rb +379 -0
  103. data/lib/when_exe/parts/locale.rb +513 -0
  104. data/lib/when_exe/parts/method_cash.rb +207 -0
  105. data/lib/when_exe/parts/resource.rb +806 -0
  106. data/lib/when_exe/parts/timezone.rb +182 -0
  107. data/lib/when_exe/region/bahai.rb +145 -0
  108. data/lib/when_exe/region/balinese.rb +627 -0
  109. data/lib/when_exe/region/chinese.rb +896 -0
  110. data/lib/when_exe/region/chinese_calendar.rb +919 -0
  111. data/lib/when_exe/region/chinese_epoch.rb +1245 -0
  112. data/lib/when_exe/region/christian.rb +644 -0
  113. data/lib/when_exe/region/far_east.rb +192 -0
  114. data/lib/when_exe/region/french.rb +66 -0
  115. data/lib/when_exe/region/geologicalage.rb +639 -0
  116. data/lib/when_exe/region/indian.rb +1066 -0
  117. data/lib/when_exe/region/iranian.rb +66 -0
  118. data/lib/when_exe/region/islamic.rb +105 -0
  119. data/lib/when_exe/region/japanese.rb +851 -0
  120. data/lib/when_exe/region/japanese_notes.rb +964 -0
  121. data/lib/when_exe/region/japanese_residues.rb +1149 -0
  122. data/lib/when_exe/region/javanese.rb +228 -0
  123. data/lib/when_exe/region/jewish.rb +127 -0
  124. data/lib/when_exe/region/korean.rb +267 -0
  125. data/lib/when_exe/region/m17n.rb +115 -0
  126. data/lib/when_exe/region/martian.rb +215 -0
  127. data/lib/when_exe/region/mayan.rb +122 -0
  128. data/lib/when_exe/region/moon.rb +333 -0
  129. data/lib/when_exe/region/nihon_shoki.rb +73 -0
  130. data/lib/when_exe/region/planets.rb +585 -0
  131. data/lib/when_exe/region/pope.rb +298 -0
  132. data/lib/when_exe/region/residue.rb +229 -0
  133. data/lib/when_exe/region/roman.rb +325 -0
  134. data/lib/when_exe/region/ryukyu.rb +98 -0
  135. data/lib/when_exe/region/shire.rb +254 -0
  136. data/lib/when_exe/region/sun.rb +210 -0
  137. data/lib/when_exe/region/thai.rb +227 -0
  138. data/lib/when_exe/region/tibetan.rb +233 -0
  139. data/lib/when_exe/region/v50.rb +111 -0
  140. data/lib/when_exe/region/vietnamese.rb +173 -0
  141. data/lib/when_exe/region/world.rb +197 -0
  142. data/lib/when_exe/timestandard.rb +547 -0
  143. data/lib/when_exe/tmduration.rb +330 -330
  144. data/lib/when_exe/tmobjects.rb +1295 -0
  145. data/lib/when_exe/tmposition.rb +1955 -0
  146. data/lib/when_exe/tmreference.rb +1547 -0
  147. data/lib/when_exe/version.rb +10 -3
  148. data/link_to_online_documents +4 -0
  149. data/test/examples/JapanHolidays.ics +456 -0
  150. data/test/examples/Millennium.ics +17 -0
  151. data/test/examples/NewYork.ics +61 -0
  152. data/test/examples/Residue.m17n +135 -0
  153. data/test/examples/Spatial.m17n +179 -0
  154. data/test/examples/Terms.m17n +39 -0
  155. data/test/examples/Test.ics +53 -0
  156. data/test/examples/USA-DST.ics +61 -0
  157. data/test/examples/geometric_complex.rb +41 -0
  158. data/test/examples/sample.xml +14 -0
  159. data/test/examples/today.rb +61 -0
  160. data/test/test.rb +54 -19
  161. data/test/test.rb.config +1 -0
  162. data/test/test/basictypes.rb +368 -0
  163. data/test/test/calendartypes.rb +57 -0
  164. data/test/test/coordinates.rb +380 -0
  165. data/test/test/ephemeris.rb +127 -0
  166. data/test/test/googlecalendar.rb +167 -0
  167. data/test/test/icalendar.rb +848 -0
  168. data/test/test/inspect.rb +115 -0
  169. data/test/test/parts.rb +480 -0
  170. data/test/test/region/chinese.rb +161 -0
  171. data/test/test/region/french.rb +33 -0
  172. data/test/test/region/geologicalage.rb +14 -0
  173. data/test/test/region/indian.rb +55 -0
  174. data/test/test/region/iran.rb +54 -0
  175. data/test/test/region/islamic.rb +18 -0
  176. data/test/test/region/japanese.rb +62 -0
  177. data/test/test/region/jewish.rb +61 -0
  178. data/test/test/region/m17n.rb +181 -0
  179. data/test/test/region/mayan.rb +78 -0
  180. data/test/test/region/moon.rb +14 -0
  181. data/test/test/region/planets.rb +14 -0
  182. data/test/test/region/residue.rb +123 -0
  183. data/test/test/region/sun.rb +14 -0
  184. data/test/test/region/thai.rb +94 -0
  185. data/test/test/region/tibetan.rb +30 -0
  186. data/test/test/tmobjects.rb +356 -57
  187. data/test/test/tmposition.rb +237 -0
  188. data/test/test/tmreference.rb +95 -0
  189. data/when_exe.gemspec +2 -2
  190. metadata +187 -7
  191. data/doc/COPYING +0 -31
  192. data/doc/COPYING.ja +0 -25
  193. data/doc/document_url +0 -1
@@ -0,0 +1,161 @@
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 Chinese < Test::Unit::TestCase
12
+ def test_chinese_date
13
+
14
+ emd = When.Resource('_c:EphemerisBasedSolar')
15
+ date = When.when?('2009-01-01', {:frame=>emd})
16
+ [
17
+ ["2009-01-01", 2454867],
18
+ ["2009-02-01", 2454896],
19
+ ["2009-03-01", 2454927],
20
+ ["2009-04-01", 2454957],
21
+ ["2009-05-01", 2454988],
22
+ ["2009-06-01", 2455020],
23
+ ["2009-07-01", 2455051],
24
+ ["2009-08-01", 2455082],
25
+ ["2009-09-01", 2455113],
26
+ ["2009-10-01", 2455143],
27
+ ["2009-11-01", 2455173],
28
+ ["2009-12-01", 2455202]
29
+ ].each do |sample|
30
+ assert_equal(sample, [date.to_s, date.to_i])
31
+ date += When.Duration('P1M')
32
+ end
33
+
34
+ cc = When::CalendarTypes::ChineseLuniSolar.new({'timezone'=>9})
35
+ date = When.when?('2009-01-01', {:frame=>cc})
36
+ [
37
+ ["2009-01-01", 2454858],
38
+ ["2009-02-01", 2454888],
39
+ ["2009-03-01", 2454918],
40
+ ["2009-04-01", 2454947],
41
+ ["2009-05-01", 2454976],
42
+ ["2009-05=01", 2455006],
43
+ ["2009-06-01", 2455035],
44
+ ["2009-07-01", 2455064],
45
+ ["2009-08-01", 2455094],
46
+ ["2009-09-01", 2455123],
47
+ ["2009-10-01", 2455153],
48
+ ["2009-11-01", 2455182],
49
+ ["2009-12-01", 2455212]
50
+ ].each do |sample|
51
+ assert_equal(sample, [date.to_s, date.to_i])
52
+ date += When.Duration('P1M')
53
+ end
54
+
55
+ date = When.when?('2032-11-01', {:frame=>cc})
56
+ [
57
+ ["2032-11-01", 2463570],
58
+ ["2032-12-01", 2463599],
59
+ ["2033-01-01", 2463629],
60
+ ["2033-02-01", 2463658],
61
+ ["2033-03-01", 2463688],
62
+ ["2033-04-01", 2463717],
63
+ ["2033-05-01", 2463746],
64
+ ["2033-06-01", 2463776],
65
+ ["2033-07-01", 2463805],
66
+ ["2033-08-01", 2463835],
67
+ ["2033-09-01", 2463864],
68
+ ["2033-10-01", 2463894],
69
+ ["2033-11-01", 2463924],
70
+ ["2033-11=01", 2463954],
71
+ ["2033-12-01", 2463983],
72
+ ["2034-01-01", 2464013],
73
+ ["2034-02-01", 2464042],
74
+ ["2034-03-01", 2464072]
75
+ ].each do |sample|
76
+ assert_equal(sample, [date.to_s, date.to_i])
77
+ date += When.Duration('P1M')
78
+ end
79
+
80
+ date = When.when?('2728-11-01', {:frame=>cc})
81
+ [
82
+ ["2728-11-01", 2717768],
83
+ ["2728-11=01", 2717798],
84
+ ["2728-12-01", 2717827],
85
+ ["2729-01-01", 2717857],
86
+ ["2729-02-01", 2717887],
87
+ ["2729-03-01", 2717916],
88
+ ["2729-04-01", 2717946]
89
+ ].each do |sample|
90
+ assert_equal(sample, [date.to_s, date.to_i])
91
+ date += When.Duration('P1M')
92
+ end
93
+
94
+ cc = When::CalendarTypes::ChineseLuniSolar.new({'timezone'=>9, 'intercalary_span'=>3})
95
+ date = When.when?('2728-11-01', {:frame=>cc})
96
+ [
97
+ ["2728-11-01", 2717768],
98
+ ["2728-12-01", 2717798],
99
+ ["2729-01-01", 2717827],
100
+ ["2729-02-01", 2717857],
101
+ ["2729-02=01", 2717887],
102
+ ["2729-03-01", 2717916],
103
+ ["2729-04-01", 2717946]
104
+ ].each do |sample|
105
+ assert_equal(sample, [date.to_s, date.to_i])
106
+ date += When.Duration('P1M')
107
+ end
108
+ end
109
+
110
+ def test_chinese_epoch
111
+ date = When.when?('天保2.10.01')
112
+ assert_equal([2390126, "天保02(1831).10.01", "神無月"],
113
+ [date.to_i, date.to_s, date.name('Month')])
114
+ assert_equal("1831-11-04", (When.Calendar('Gregorian') ^ When.when?('天保02.10.01')).to_s)
115
+
116
+ #=begin
117
+ date = When.when?('天保2.10.01', {:count=>2})
118
+ assert_equal([1926999, "天保02(0563).10.01", "十月"],
119
+ [date.to_i, date.to_s, date.name('Month')])
120
+
121
+ date = When.when?('天保3(564).10.01')
122
+ assert_equal([1927353, "天保03(0564).10.01", "十月"],
123
+ [date.to_i, date.to_s, date.name('Month')])
124
+
125
+ date = When.when?('天保3.10.01', {'period'=>/梁/})
126
+ assert_equal([1927353, "天保03(0564).10.01", "十月"],
127
+ [date.to_i, date.to_s, date.name('Month')])
128
+
129
+ assert_equal(["江戸時代", "後梁", "北斉"],
130
+ When::era('天保').map {|v| v.parent.label}) # v.iri
131
+
132
+ assert_raises(ArgumentError) { When.when?('天保3(0563).10.01') }
133
+
134
+ date = When.when?('始皇帝26*10.01')
135
+ assert_equal([1640641, "始皇帝26(-220)*10.01", "十月"],
136
+ [date.to_i, date.to_s, date.name('Month')])
137
+
138
+ cc_221 = When.Resource('_c:Chinese_221')
139
+ [
140
+ ["-220*10-01", 1640641, "-00220*10-01", "十月"],
141
+ ["-220*11-01", 1640671, "-00220*11-01", "十一月"],
142
+ ["-220*12-01", 1640700, "-00220*12-01", "十二月"],
143
+ ["-220-01-01", 1640730, "-00220-01-01", "正月"],
144
+ ["-220-02-01", 1640759, "-00220-02-01", "二月"],
145
+ ["-220-03-01", 1640789, "-00220-03-01", "三月"],
146
+ ["-220-04-01", 1640818, "-00220-04-01", "四月"],
147
+ ["-220-05-01", 1640848, "-00220-05-01", "五月"],
148
+ ["-220-06-01", 1640877, "-00220-06-01", "六月"],
149
+ ["-220-07-01", 1640907, "-00220-07-01", "七月"],
150
+ ["-220-08-01", 1640937, "-00220-08-01", "八月"],
151
+ ["-220-09-01", 1640966, "-00220-09-01", "九月"],
152
+ ["-220-09=01", 1640996, "-00220-09=01", "閏九月"]
153
+ ].each do |sample|
154
+ date = When.when?(sample[0], {:frame=>cc_221})
155
+ assert_equal(sample[1..-1],
156
+ [date.to_i, date.to_s, date.name('Month')])
157
+ end
158
+ #=end
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,33 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 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 FrenchRepublican < Test::Unit::TestCase
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|
28
+ assert_equal(sample, [date.to_s, date.to_i])
29
+ date += When.Duration('P1Y')
30
+ end
31
+ end
32
+ end
33
+ 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::TM
10
+ class GeologicalAge < Test::Unit::TestCase
11
+ def test_nothing
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,55 @@
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 Indian < Test::Unit::TestCase
12
+ Sample1 = [
13
+ "1913-03-01-", "1913-03-02-", "1913-03-03-", "1913-03-04-", "1913-03-05%", "1913-03-07-", "1913-03-08-", "1913-03-09-",
14
+ "1913-03-10-", "1913-03-11-", "1913-03-12-", "1913-03-13-", "1913-03-14-", "1913-03-15-", "1913-03-15=", "1913-03<01-",
15
+ "1913-03<02-", "1913-03<03-", "1913-03<04-", "1913-03<05-", "1913-03<06-", "1913-03<07-", "1913-03<08-", "1913-03<09-",
16
+ "1913-03<10-", "1913-03<11-", "1913-03<12-", "1913-03<13%", "1913-03<15-", "1913-04-01-", "1913-04-02-", "1913-04-03-",
17
+ "1913-04-04-", "1913-04-05-", "1913-04-06-", "1913-04-07-", "1913-04-08-", "1913-04-09-", "1913-04-10-", "1913-04-11-",
18
+ "1913-04-12-", "1913-04-13-", "1913-04-14-", "1913-04-15-", "1913-04<01-", "1913-04<02-", "1913-04<03-", "1913-04<04-",
19
+ "1913-04<05-", "1913-04<06-", "1913-04<07-", "1913-04<08-", "1913-04<09-", "1913-04<10-", "1913-04<11-", "1913-04<12-",
20
+ "1913-04<13-", "1913-04<14-", "1913-04<15%", "1913-05-02-"
21
+ ]
22
+
23
+ Sample2 = [
24
+ "1913-04-01-", "1913-04-02-", "1913-04-03-", "1913-04-04-", "1913-04-05%", "1913-04-07-", "1913-04-08-", "1913-04-09-"
25
+ ]
26
+
27
+ def test_indian_date_1
28
+ cc = When.Calendar('HinduLuniSolar')
29
+ date = When.when?('1913-03-01', {:frame=>cc})
30
+ assert_equal("Jyaiṣṭha Śuklapakṣa", date.name('month').to_s)
31
+ start = 2448421
32
+ Sample1.size.times do |i|
33
+ assert_equal([Sample1[i], start+i], [date.to_s, date.to_i])
34
+ date += When.Duration('P1D')
35
+ end
36
+ end
37
+
38
+ def test_indian_date_2
39
+ cc = When.Calendar('HinduLuniSolar?start_month=4')
40
+ date = When.when?('1913-04-01', {:frame=>cc})
41
+ assert_equal("Jyaiṣṭha Śuklapakṣa", date.name('month').to_s)
42
+ start = 2448421
43
+ Sample2.size.times do |i|
44
+ assert_equal([Sample2[i], start+i], [date.to_s, date.to_i])
45
+ date += When.Duration('P1D')
46
+ end
47
+ end
48
+
49
+ def test_indian_date_3
50
+ cc = When.Calendar('HinduSolar?type=SBS')
51
+ date = When.when?('1913-01-01', {:frame=>cc})
52
+ assert_equal([2448361, "1913-01-01", "1991-04-14"], [date.to_i, date.to_s, date.to_date.to_s])
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,54 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 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 Iranian < Test::Unit::TestCase
12
+ def test__iranian
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)
48
+ ].each do |sample|
49
+ assert_equal(sample, [date.to_s, date.to_i])
50
+ date += When.Duration('P1Y')
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,18 @@
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
10
+
11
+ module CalendarTypes
12
+ class Islamic < Test::Unit::TestCase
13
+ def test_nothing
14
+ end
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,62 @@
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 Japanese < Test::Unit::TestCase
12
+
13
+ def test_japanese_epoch
14
+ eras = When.Resource('_e:Japanese')
15
+
16
+ sample =
17
+ [["天平21(0749).04.13", "天平感宝01(0749).04.13", "天平勝宝01(0749).04.13"],
18
+ ["天平21(0749).04.13"],
19
+ ["天平感宝01(0749).04.14", "天平勝宝01(0749).04.14"],
20
+ ["天平感宝01(0749).04.14"],
21
+ ["天平勝宝01(0749).07.02"],
22
+ ["天平勝宝01(0749).07.02"]]
23
+ ['天平勝宝01.04.13', '天平勝宝01.04.14', '天平勝宝01.07.02'].each do |string|
24
+ assert_equal(sample.shift, ((When.when?(string) ^ eras).
25
+ delete_if {|d| !d.leaf?}).map {|d| d.to_s})
26
+ assert_equal(sample.shift, ((When.when?(string, {:lower=>true}) ^ eras).
27
+ delete_if {|d| !d.leaf?}).map {|d| d.to_s})
28
+ end
29
+
30
+ sample =
31
+ [["大正15(1926).12.24"],
32
+ ["大正15(1926).12.24"],
33
+ ["昭和01(1926).12.25"],
34
+ ["昭和01(1926).12.25"],
35
+ ["昭和01(1926).12.26"],
36
+ ["昭和01(1926).12.26"]]
37
+ ['大正15.12.24', '大正15.12.25', '大正15.12.26'].each do |string|
38
+ assert_equal(sample.shift, ((When.when?(string) ^ eras).
39
+ delete_if {|d| !d.leaf?}).map {|d| d.to_s})
40
+ assert_equal(sample.shift, ((When.when?(string, {:lower=>true}) ^ eras).
41
+ delete_if {|d| !d.leaf?}).map {|d| d.to_s})
42
+ end
43
+ end
44
+
45
+ =begin
46
+ def test_japanese_date
47
+ jc = When.Resource('_c:Japanese')
48
+ diff = []
49
+ open('test/region/japanese-calendar.txt', "1".respond_to?(:force_encoding) ? 'r:utf-8' : 'r') do |f|
50
+ while (line = f.gets)
51
+ next if line =~ /^ *#/
52
+ x, x, jdn, x, x, x, gy, gm, gd, x, x, jy, jm, jd = line.split(/ +/).map {|v| v.to_i}
53
+ jm, leap = (jm > 0) ? [jm, '-'] : [-jm, '=']
54
+ date = When.when?("%04d-%02d%s%02d" % [(gm >= jm) ? gy : gy-1, jm, leap, jd], {:frame=>jc})
55
+ diff << [jdn - date.to_i, date.to_s] unless jdn == date.to_i
56
+ end
57
+ end
58
+ assert_equal([], diff)
59
+ end
60
+ =end
61
+ end
62
+ end
@@ -0,0 +1,61 @@
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 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