when_exe 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. data/LICENSE.ja.txt +25 -25
  2. data/LICENSE.txt +31 -31
  3. data/bin/locales.rb +2 -1
  4. data/bin/when.rb.config +1 -1
  5. data/lib/when_exe.rb +70 -48
  6. data/lib/when_exe/basictypes.rb +99 -65
  7. data/lib/when_exe/calendartypes.rb +40 -178
  8. data/lib/when_exe/coordinates.rb +156 -62
  9. data/lib/when_exe/core/compatibility.rb +10 -0
  10. data/lib/when_exe/core/extension.rb +40 -0
  11. data/lib/when_exe/ephemeris.rb +112 -50
  12. data/lib/when_exe/icalendar.rb +125 -91
  13. data/lib/when_exe/inspect.rb +100 -48
  14. data/lib/when_exe/locales/ar.rb +48 -48
  15. data/lib/when_exe/locales/bg.rb +1 -1
  16. data/lib/when_exe/locales/bs.rb +4 -2
  17. data/lib/when_exe/locales/ca.rb +1 -1
  18. data/lib/when_exe/locales/en_CA.rb +3 -4
  19. data/lib/when_exe/locales/en_IE.rb +88 -0
  20. data/lib/when_exe/locales/en_US.rb +87 -0
  21. data/lib/when_exe/locales/es_CR.rb +84 -0
  22. data/lib/when_exe/locales/es_EC.rb +85 -0
  23. data/lib/when_exe/locales/es_PA.rb +85 -0
  24. data/lib/when_exe/locales/fr.rb +39 -39
  25. data/lib/when_exe/locales/hu.rb +15 -14
  26. data/lib/when_exe/locales/it.rb +1 -1
  27. data/lib/when_exe/locales/ja.rb +2 -2
  28. data/lib/when_exe/locales/locales.rb +7 -0
  29. data/lib/when_exe/locales/lt.rb +21 -19
  30. data/lib/when_exe/locales/ms.rb +84 -0
  31. data/lib/when_exe/locales/nl.rb +2 -2
  32. data/lib/when_exe/locales/ru.rb +1 -1
  33. data/lib/when_exe/locales/uk.rb +1 -1
  34. data/lib/when_exe/locales/ur.rb +84 -0
  35. data/lib/when_exe/mini_application.rb +44 -43
  36. data/lib/when_exe/parts/enumerator.rb +3 -3
  37. data/lib/when_exe/parts/geometric_complex.rb +6 -1
  38. data/lib/when_exe/parts/locale.rb +49 -18
  39. data/lib/when_exe/parts/method_cash.rb +61 -0
  40. data/lib/when_exe/parts/resource.rb +221 -106
  41. data/lib/when_exe/parts/timezone.rb +70 -33
  42. data/lib/when_exe/region/bahai.rb +2 -2
  43. data/lib/when_exe/region/balinese.rb +40 -43
  44. data/lib/when_exe/region/chinese.rb +93 -33
  45. data/lib/when_exe/region/chinese_calendar.rb +117 -1
  46. data/lib/when_exe/region/chinese_epoch.rb +65 -10
  47. data/lib/when_exe/region/christian.rb +97 -2
  48. data/lib/when_exe/region/ephemeric_notes.rb +353 -0
  49. data/lib/when_exe/region/french.rb +1 -1
  50. data/lib/when_exe/region/geologicalage.rb +171 -171
  51. data/lib/when_exe/region/indian.rb +18 -14
  52. data/lib/when_exe/region/iranian.rb +1 -1
  53. data/lib/when_exe/region/japanese.rb +49 -12
  54. data/lib/when_exe/region/japanese_notes.rb +838 -507
  55. data/lib/when_exe/region/japanese_residues.rb +724 -662
  56. data/lib/when_exe/region/javanese.rb +7 -7
  57. data/lib/when_exe/region/mayan.rb +19 -17
  58. data/lib/when_exe/region/nihon_shoki.rb +3 -3
  59. data/lib/when_exe/region/residue.rb +29 -28
  60. data/lib/when_exe/region/shire.rb +2 -2
  61. data/lib/when_exe/region/tibetan.rb +87 -5
  62. data/lib/when_exe/region/world.rb +1 -1
  63. data/lib/when_exe/timestandard.rb +85 -7
  64. data/lib/when_exe/tmobjects.rb +32 -4
  65. data/lib/when_exe/tmposition.rb +104 -55
  66. data/lib/when_exe/tmreference.rb +157 -60
  67. data/lib/when_exe/version.rb +2 -2
  68. data/test/examples/JapanHolidays.ics +3 -3
  69. data/test/examples/JapanHolidaysRFC6350.ics +499 -0
  70. data/test/examples/Residue.m17n +3 -2
  71. data/test/examples/Spatial.m17n +3 -3
  72. data/test/examples/USA-DST.ics +27 -27
  73. data/test/examples/today.rb +1 -1
  74. data/test/test.rb +4 -2
  75. data/test/test/basictypes.rb +40 -15
  76. data/test/test/coordinates.rb +9 -4
  77. data/test/test/icalendar.rb +24 -14
  78. data/test/test/inspect.rb +5 -3
  79. data/test/test/parts.rb +11 -2
  80. data/test/test/region/chinese.rb +4 -4
  81. data/test/test/region/civil.rb +124 -0
  82. data/test/test/region/geologicalage.rb +5 -2
  83. data/test/test/region/indian.rb +2 -0
  84. data/test/test/region/japanese.rb +156 -1
  85. data/test/test/region/jewish.rb +3 -3
  86. data/test/test/region/m17n.rb +9 -9
  87. data/test/test/region/mayan.rb +122 -5
  88. data/test/test/region/residue.rb +1 -1
  89. data/test/test/tmobjects.rb +27 -64
  90. data/test/test/tmposition.rb +48 -1
  91. data/test/test/tmreference.rb +66 -4
  92. data/when_exe.gemspec +1 -1
  93. metadata +15 -6
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license
6
6
  described in the LICENSE.txt file included in this archive.
@@ -11,7 +11,7 @@ module Test
11
11
  class Chinese < Test::Unit::TestCase
12
12
  def test_chinese_date
13
13
 
14
- emd = When.Resource('_c:EphemerisBasedSolar')
14
+ emd = When.Resource('_c:EphemerisBasedSolar?time_basis=+09:00')
15
15
  date = When.when?('2009-01-01', {:frame=>emd})
16
16
  [
17
17
  ["2009-01-01", 2454867],
@@ -31,7 +31,7 @@ module Test
31
31
  date += When.Duration('P1M')
32
32
  end
33
33
 
34
- cc = When::CalendarTypes::ChineseLuniSolar.new({'timezone'=>9})
34
+ cc = When::CalendarTypes::ChineseLuniSolar.new({'time_basis'=>'+09:00'})
35
35
  date = When.when?('2009-01-01', {:frame=>cc})
36
36
  [
37
37
  ["2009-01-01", 2454858],
@@ -91,7 +91,7 @@ module Test
91
91
  date += When.Duration('P1M')
92
92
  end
93
93
 
94
- cc = When::CalendarTypes::ChineseLuniSolar.new({'timezone'=>9, 'intercalary_span'=>3})
94
+ cc = When::CalendarTypes::ChineseLuniSolar.new({'time_basis'=>'+09:00', 'intercalary_span'=>3})
95
95
  date = When.when?('2728-11-01', {:frame=>cc})
96
96
  [
97
97
  ["2728-11-01", 2717768],
@@ -0,0 +1,124 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2012-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 Civil < Test::Unit::TestCase
12
+ def test__border
13
+ frame = When.Calendar('Civil?reform=1752-9-14&border=0-3-25(1753)0-1-1')
14
+ assert_equal("1641=03-24", (frame ^ When.when?('1642-4-3') ).to_s)
15
+ assert_equal("1642-03-25", (frame ^ When.when?('1642-4-4') ).to_s)
16
+ assert_equal("1752-12-31", (frame ^ When.when?('1752-12-31')).to_s)
17
+ assert_equal("1753-01-01", (frame ^ When.when?('1753-1-1') ).to_s)
18
+ assert_equal("1753-03-24", (frame ^ When.when?('1753-3-24') ).to_s)
19
+ assert_equal("1753-03-25", (frame ^ When.when?('1753-3-25') ).to_s)
20
+ end
21
+
22
+ def test__reform_inc
23
+ sample = %w(
24
+ 1582-09-30 1582-10-01 1582-10-02 1582-10-03 1582-10-04 1582-10-15 1582-10-16 1582-10-17
25
+ 1582-10-18 1582-10-19 1582-10-20 1582-10-21 1582-10-22 1582-10-23 1582-10-24 1582-10-25
26
+ 1582-10-26 1582-10-27 1582-10-28 1582-10-29 1582-10-30 1582-10-31 1582-11-01 1582-11-02
27
+ 1582-11-03)
28
+ date = When.when?('1582-9-30', :frame=>'Civil?reform=1582-10-15')
29
+ 25.times do
30
+ assert_equal(sample.shift, date.to_s)
31
+ date = date + When::DurationP1D
32
+ end
33
+ end
34
+
35
+ def test__reform_dec
36
+ sample = %w(
37
+ 1582-11-01 1582-10-31 1582-10-30 1582-10-29 1582-10-28 1582-10-27 1582-10-26 1582-10-25
38
+ 1582-10-24 1582-10-23 1582-10-22 1582-10-21 1582-10-20 1582-10-19 1582-10-18 1582-10-17
39
+ 1582-10-16 1582-10-15 1582-10-04 1582-10-03 1582-10-02 1582-10-01 1582-09-30 1582-09-29
40
+ 1582-09-28)
41
+ date = When.when?('1582-11-01', :frame=>'Civil?reform=1582-10-15')
42
+ 25.times do
43
+ assert_equal(sample.shift, date.to_s)
44
+ date = date - When::DurationP1D
45
+ end
46
+ end
47
+
48
+ def test__reform_year
49
+ date = When.when?('1752^^Civil?reform=1752-9-14&border=(1000)0-3-25(1753)0-1-1')
50
+ assert_equal(
51
+ [[1752,
52
+ [[3,
53
+ ["*", 1, 2, 3, 4, 5, 6, 7],
54
+ ["*", 8, 9, 10, 11, 12, 13, 14],
55
+ ["*", 15, 16, 17, 18, 19, 20, 21],
56
+ ["*", 22, 23, 24, 25, 26, 27, 28],
57
+ ["*", 29, 30, 31, "*", "*", "*", "*"]]],
58
+ [[4,
59
+ ["*", "*", "*", "*", 1, 2, 3, 4],
60
+ ["*", 5, 6, 7, 8, 9, 10, 11],
61
+ ["*", 12, 13, 14, 15, 16, 17, 18],
62
+ ["*", 19, 20, 21, 22, 23, 24, 25],
63
+ ["*", 26, 27, 28, 29, 30, "*", "*"]]],
64
+ [[5,
65
+ ["*", "*", "*", "*", "*", "*", 1, 2],
66
+ ["*", 3, 4, 5, 6, 7, 8, 9],
67
+ ["*", 10, 11, 12, 13, 14, 15, 16],
68
+ ["*", 17, 18, 19, 20, 21, 22, 23],
69
+ ["*", 24, 25, 26, 27, 28, 29, 30],
70
+ ["*", 31, "*", "*", "*", "*", "*", "*"]]],
71
+ [[6,
72
+ ["*", "*", 1, 2, 3, 4, 5, 6],
73
+ ["*", 7, 8, 9, 10, 11, 12, 13],
74
+ ["*", 14, 15, 16, 17, 18, 19, 20],
75
+ ["*", 21, 22, 23, 24, 25, 26, 27],
76
+ ["*", 28, 29, 30, "*", "*", "*", "*"]]],
77
+ [[7,
78
+ ["*", "*", "*", "*", 1, 2, 3, 4],
79
+ ["*", 5, 6, 7, 8, 9, 10, 11],
80
+ ["*", 12, 13, 14, 15, 16, 17, 18],
81
+ ["*", 19, 20, 21, 22, 23, 24, 25],
82
+ ["*", 26, 27, 28, 29, 30, 31, "*"]]],
83
+ [[8,
84
+ ["*", "*", "*", "*", "*", "*", "*", 1],
85
+ ["*", 2, 3, 4, 5, 6, 7, 8],
86
+ ["*", 9, 10, 11, 12, 13, 14, 15],
87
+ ["*", 16, 17, 18, 19, 20, 21, 22],
88
+ ["*", 23, 24, 25, 26, 27, 28, 29],
89
+ ["*", 30, 31, "*", "*", "*", "*", "*"]]],
90
+ [[9,
91
+ ["*", "*", "*", 1, 2, 14, 15, 16],
92
+ ["*", 17, 18, 19, 20, 21, 22, 23],
93
+ ["*", 24, 25, 26, 27, 28, 29, 30]]],
94
+ [[10,
95
+ ["*", 1, 2, 3, 4, 5, 6, 7],
96
+ ["*", 8, 9, 10, 11, 12, 13, 14],
97
+ ["*", 15, 16, 17, 18, 19, 20, 21],
98
+ ["*", 22, 23, 24, 25, 26, 27, 28],
99
+ ["*", 29, 30, 31, "*", "*", "*", "*"]]],
100
+ [[11,
101
+ ["*", "*", "*", "*", 1, 2, 3, 4],
102
+ ["*", 5, 6, 7, 8, 9, 10, 11],
103
+ ["*", 12, 13, 14, 15, 16, 17, 18],
104
+ ["*", 19, 20, 21, 22, 23, 24, 25],
105
+ ["*", 26, 27, 28, 29, 30, "*", "*"]]],
106
+ [[12,
107
+ ["*", "*", "*", "*", "*", "*", 1, 2],
108
+ ["*", 3, 4, 5, 6, 7, 8, 9],
109
+ ["*", 10, 11, 12, 13, 14, 15, 16],
110
+ ["*", 17, 18, 19, 20, 21, 22, 23],
111
+ ["*", 24, 25, 26, 27, 28, 29, 30],
112
+ ["*", 31, "*", "*", "*", "*", "*", "*"]]]]],
113
+ date.year_included('Sunday') {|d,b|
114
+ case b
115
+ when When::YEAR ; d[When::YEAR]
116
+ when When::MONTH ; d[When::MONTH]
117
+ when When::DAY ; d[When::DAY]
118
+ else ; '*'
119
+ end
120
+ }
121
+ )
122
+ end
123
+ end
124
+ end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011 Takashi SUGA
3
+ Copyright (C) 2011-2013 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license
6
6
  described in the LICENSE.txt file included in this archive.
@@ -8,7 +8,10 @@
8
8
 
9
9
  module Test::TM
10
10
  class GeologicalAge < Test::Unit::TestCase
11
- def test_nothing
11
+ def test__geological_age
12
+ age = When.Resource('_tm:OrdinalReferenceSystem/GeologicalAge')
13
+ assert_equal("-2500000000", age['始生代::新始生代'].end.to_s)
14
+ assert_equal("-09700", age['顕生代::新生代::第四紀::完新世'].begin.to_s)
12
15
  end
13
16
  end
14
17
  end
@@ -50,6 +50,8 @@ module Test
50
50
  cc = When.Calendar('HinduSolar?type=SBS')
51
51
  date = When.when?('1913-01-01', {:frame=>cc})
52
52
  assert_equal([2448361, "1913-01-01", "1991-04-14"], [date.to_i, date.to_s, date.to_date.to_s])
53
+ date = When::CalendarTypes::CalendarNote::HinduNote::Dates.new(date)
54
+ assert_equal(2448361, date.to_i)
53
55
  end
54
56
  end
55
57
  end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2012 Takashi SUGA
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license
6
6
  described in the LICENSE.txt file included in this archive.
@@ -42,6 +42,161 @@ module Test
42
42
  end
43
43
  end
44
44
 
45
+ def test__solar_terms
46
+ sample = [
47
+ [ # 修正後
48
+ ["貞観12(0870).07.17T+00", []],
49
+ ["貞観12(0870).07.18T+00", ["処暑(150)", "鷹乃祭鳥", "公損", "没"]],
50
+ ["貞観12(0870).07.19T+00", []],
51
+
52
+ ["天喜05(1057).03.10T+00", []],
53
+ ["天喜05(1057).03.11T+00", ["穀雨(30)", "萍始生", "公革", "没"]],
54
+ ["天喜05(1057).03.12T+00", []],
55
+
56
+ ["建仁02(1202).10=29T+00", ["没"]],
57
+ ["建仁02(1202).11.01T+00", ["冬至(270)", "蚯蚓結", "公中孚"]],
58
+ ["建仁02(1202).11.02T+00", []],
59
+ ["建仁02(1202).11.03T+00", []],
60
+
61
+ ["寛元01(1243).11.03T+00", []],
62
+ ["寛元01(1243).11.04T+00", ["冬至(270)", "蚯蚓結", "公中孚", "没"]],
63
+ ["寛元01(1243).11.05T+00", []],
64
+
65
+ ["弘安04(1281).07=30T+00", ["没"]],
66
+ ["弘安04(1281).08.01T+00", ["秋分(180)", "雷乃收聲", "公賁"]],
67
+ ["弘安04(1281).08.02T+00", []],
68
+
69
+ ["永享02(1430).07.11T+00", ["没"]],
70
+ ["永享02(1430).07.12T+00", []],
71
+ ["永享02(1430).07.13T+00", []],
72
+ ["永享02(1430).07.14T+00", ["大夫節"]],
73
+ ["永享02(1430).07.15T+00", []],
74
+ ["永享02(1430).07.16T+00", ["白露降"]],
75
+ ["永享02(1430).07.17T+00", []],
76
+ ["永享02(1430).07.18T+00", []],
77
+ ["永享02(1430).07.19T+00", ["往亡"]],
78
+ ["永享02(1430).07.20T+00", ["卿同人"]],
79
+ ["永享02(1430).07.21T+00", ["寒蟬鳴"]],
80
+ ["永享02(1430).07.22T+00", []],
81
+ ["永享02(1430).07.23T+00", []],
82
+ ["永享02(1430).07.24T+00", []],
83
+ ["永享02(1430).07.25T+00", []],
84
+
85
+ ["元和03(1617).03.18T+00", []],
86
+ ["元和03(1617).03.19T+00", ["穀雨(30)", "萍始生", "公革", "没"]],
87
+ ["元和03(1617).03.20T+00", []],
88
+
89
+ ["平成06(1994).06.21T+09:00", ["夏至(90)", "乃東枯"]],
90
+ ["平成06(1994).06.22T+09:00", []]
91
+ ],
92
+
93
+ [ # 修正前
94
+ ["貞観12(0870).07.17T+00", ["没"]],
95
+ ["貞観12(0870).07.18T+00", ["処暑(150)", "鷹乃祭鳥", "公損"]],
96
+ ["貞観12(0870).07.19T+00", []],
97
+
98
+ ["天喜05(1057).03.10T+00", ["没"]],
99
+ ["天喜05(1057).03.11T+00", ["穀雨(30)", "萍始生", "公革"]],
100
+ ["天喜05(1057).03.12T+00", []],
101
+
102
+ ["建仁02(1202).10=29T+00", ["冬至(270)", "蚯蚓結", "公中孚"]],
103
+ ["建仁02(1202).11.01T+00", []],
104
+ ["建仁02(1202).11.02T+00", []],
105
+ ["建仁02(1202).11.03T+00", ["没"]],
106
+
107
+ ["寛元01(1243).11.03T+00", ["没"]],
108
+ ["寛元01(1243).11.04T+00", ["冬至(270)", "蚯蚓結", "公中孚"]],
109
+ ["寛元01(1243).11.05T+00", []],
110
+
111
+ ["弘安04(1281).07=30T+00", ["秋分(180)", "雷乃收聲", "公賁"]],
112
+ ["弘安04(1281).08.01T+00", []],
113
+ ["弘安04(1281).08.02T+00", ["没"]],
114
+
115
+ ["永享02(1430).07.11T+00", []],
116
+ ["永享02(1430).07.12T+00", []],
117
+ ["永享02(1430).07.13T+00", ["大夫節"]],
118
+ ["永享02(1430).07.14T+00", []],
119
+ ["永享02(1430).07.15T+00", ["白露降"]],
120
+ ["永享02(1430).07.16T+00", []],
121
+ ["永享02(1430).07.17T+00", []],
122
+ ["永享02(1430).07.18T+00", ["往亡"]],
123
+ ["永享02(1430).07.19T+00", ["卿同人"]],
124
+ ["永享02(1430).07.20T+00", ["寒蟬鳴"]],
125
+ ["永享02(1430).07.21T+00", []],
126
+ ["永享02(1430).07.22T+00", []],
127
+ ["永享02(1430).07.23T+00", []],
128
+ ["永享02(1430).07.24T+00", []],
129
+ ["永享02(1430).07.25T+00", ["没"]],
130
+
131
+ ["元和03(1617).03.18T+00", ["没"]],
132
+ ["元和03(1617).03.19T+00", ["穀雨(30)", "萍始生", "公革"]],
133
+ ["元和03(1617).03.20T+00", []],
134
+
135
+ ["平成06(1994).06.21T+09:00", ["夏至(90)", "乃東枯"]],
136
+ ["平成06(1994).06.22T+09:00", []]
137
+ ]
138
+ ]
139
+
140
+ 2.times do
141
+ result = []
142
+ [2039054..2039056,
143
+ 2107233..2107235,
144
+ 2160437..2160440,
145
+ 2175412..2175414,
146
+ 2189200..2189202,
147
+ 2243577..2243591,
148
+ 2311770..2311772,
149
+ 2449525..2449526].each do |range|
150
+ range.each do |jdn|
151
+ (When.when?(jdn) ^ When.CalendarEra('Japanese')).each do |date|
152
+ dates = When.CalendarNote('JapaneseNote').send(:_to_date_for_note, date)
153
+ date = When.when?(dates.o_date.to_cal_date.to_s,
154
+ {:clock=>dates.s_date.frame.time_basis})
155
+ long = dates.cal4note.s_terms.position(date)
156
+ notes = date.notes(:indices => When::DAY,
157
+ :notes => (13<<9|1<<48|1<<71),
158
+ :locale => 'ja').map {|n| n[:value]}
159
+ result << [date.to_m17n/'ja', notes]
160
+ end
161
+ end
162
+ end
163
+ assert_equal(sample.shift, result)
164
+ When::CalendarTypes::CalendarNote::JapaneseNote::SolarTerms.send(:patch=, {})
165
+ end
166
+ When::CalendarTypes::CalendarNote::JapaneseNote::SolarTerms.send(:patch=, nil)
167
+ end
168
+
169
+ def test__lunar_phases
170
+ [%w(康和3.01.09 康和3.01.16 康和3.01.23),
171
+ %w(康和3.02.08 康和3.02.16 康和3.02.23),
172
+ %w(康和3.03.08 康和3.03.15 康和3.03.22),
173
+ %w(康和3.04.09 康和3.04.16 康和3.04.23),
174
+ %w(康和3.05.08 康和3.05.15 康和3.05.22),
175
+ %w(康和3.06.08 康和3.06.15 康和3.06.23),
176
+ %w(康和3.07.08 康和3.07.15 康和3.07.22),
177
+ %w(康和3.08.07 康和3.08.14 康和3.08.22),
178
+ %w(康和3.09.07 康和3.09.15 康和3.09.23),
179
+ %w(康和3.10.08 康和3.10.15 康和3.10.23),
180
+ %w(康和3.11.07 康和3.11.15 康和3.11.23),
181
+ %w(康和3.12.08 康和3.12.16 康和3.12.23),
182
+
183
+ %w(平成26.01.01 平成26.01.08 平成26.01.16 平成26.01.24),
184
+ %w(平成26.01.31 平成26.02.07 平成26.02.15 平成26.02.23),
185
+ %w(平成26.03.01 平成26.03.08 平成26.03.17 平成26.03.24),
186
+ %w(平成26.03.31 平成26.04.07 平成26.04.15 平成26.04.22),
187
+ %w(平成26.04.29 平成26.05.07 平成26.05.15 平成26.05.21),
188
+ %w(平成26.05.29 平成26.06.06 平成26.06.13 平成26.06.20),
189
+ %w(平成26.06.27 平成26.07.05 平成26.07.12 平成26.07.19),
190
+ %w(平成26.07.27 平成26.08.04 平成26.08.11 平成26.08.17),
191
+ %w(平成26.08.25 平成26.09.02 平成26.09.09 平成26.09.16),
192
+ %w(平成26.09.24 平成26.10.02 平成26.10.08 平成26.10.16),
193
+ %w(平成26.10.24 平成26.10.31 平成26.11.07 平成26.11.15),
194
+ %w(平成26.11.22 平成26.11.29 平成26.12.06 平成26.12.14),
195
+ %w(平成26.12.22 平成26.12.29)
196
+ ].each do |month|
197
+ assert_equal([true], month.map {|date| When.when?(date).notes('月相').kind_of?(Hash)}.uniq)
198
+ end
199
+ end
45
200
  =begin
46
201
  def test_japanese_date
47
202
  jc = When.Resource('_c:Japanese')
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license
6
6
  described in the LICENSE.txt file included in this archive.
@@ -53,8 +53,8 @@ module Test
53
53
  date += When.Duration('P1Y')
54
54
  end
55
55
 
56
- assert_equal("BCE3761(-3760).10.07",
57
- (When.era('BCE')[0] ^ When.Calendar('Jewish').domain.first).to_s)
56
+ assert_equal("Common::BCE3761(-3760).10.07",
57
+ (When.era('BCE')[0] ^ When.Calendar('Jewish').domain[''].first).to_s)
58
58
 
59
59
  end
60
60
  end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license
6
6
  described in the LICENSE.txt file included in this archive.
@@ -121,10 +121,10 @@ module Test
121
121
  end
122
122
  end
123
123
 
124
- def test__to_hash
124
+ def test__to_h
125
125
  [
126
126
  ['HLC0.0.0.0.0',
127
- {:calendar=>["_e:Mayan::PHLC",-13], :sdn=>584283, :cal_date=>[13, 0, 0, 0, 0],
127
+ {:calendar=>["_e:LongCount::PHLC",-13], :sdn=>584283, :cal_date=>[13, 0, 0, 0, 0],
128
128
  :notes=>[[{:note=>"Trecena", :value=>"Trecena(4/13)"},
129
129
  {:note=>"Tzolk'in", :value=>"Ajaw(19/20)"},
130
130
  {:note=>"Lords_of_the_Night", :value=>"G9(0/9)"},
@@ -137,9 +137,9 @@ module Test
137
137
  ['明治7.5.7',
138
138
  {:calendar=>["_e:Japanese::明治",1867], :sdn=>2405651, :cal_date=>[7, 5, 7],
139
139
  :notes=>[[{:note=>"干支", :value=>"甲戌(10)", :position=>"共通"}],
140
- [{:note=>"月名", :value=>"May", :position=>"月建"}],
141
- [{:note=>"干支", :value=>"甲子(0)", :position=>"共通"},
142
- {:note=>"六曜", :value=>"赤口", :position=>"民間"}]]}],
140
+ [{:note=>"月名", :value=>"May", :position=>"月建"}],
141
+ [{:note=>"干支", :value=>"甲子(00)", :position=>"共通"},
142
+ {:note=>"六曜", :value=>"赤口", :position=>"民間"}]]}],
143
143
 
144
144
  ['明治17.5.7',
145
145
  {:calendar=>["_e:Japanese::明治",1867], :sdn=>2409304, :cal_date=>[17, 5, 7],
@@ -156,17 +156,17 @@ module Test
156
156
  [11,
157
157
  {:calendar=>["_tm:JulianDate"], :sdn=>11,
158
158
  :notes=>[[{:note=>"Week", :value=>"Friday(4)"},
159
- {:note=>"干支", :value=>"甲子(0)"}]]}],
159
+ {:note=>"干支", :value=>"甲子(00)"}]]}],
160
160
 
161
161
  [11.0,
162
162
  {:calendar=>["_tm:JulianDate"], :sdn=>11,
163
163
  :notes=>[[{:note=>"Week", :value=>"Friday(4)"},
164
- {:note=>"干支", :value=>"甲子(0)"}]],
164
+ {:note=>"干支", :value=>"甲子(00)"}]],
165
165
  :clk_time=>[11, 12, 0, 0]}]
166
166
 
167
167
  ].each do |sample|
168
168
  date, verify = sample
169
- list = When.when?(date).to_hash({:simple=>true})
169
+ list = When.when?(date).to_h({:simple=>true})
170
170
  [:calendar, :cal_date, :sdn, :clk_time].each do |key|
171
171
  assert_equal(verify[key], list[key])
172
172
  end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2012 Takashi SUGA
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license
6
6
  described in the LICENSE.txt file included in this archive.
@@ -10,10 +10,29 @@ module Test
10
10
 
11
11
  class Mayan < Test::Unit::TestCase
12
12
  def test__mayan_epoch
13
- [['PHLC13.0.0.0.0', 'PHLC13(0000).00.00.00.00', 584283],
14
- ['HLC0.0.0.0.1', 'HLC00.00.00.00.01', 584284],
15
- ['HLC13.0.0.0.0', 'HLC13.00.00.00.00', 2456283],
16
- ['HLC13.0.0.0.1', 'NLC00(0013).00.00.00.01', 2456284]].each do |sample|
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|
18
+ date = When.when?(sample.shift)
19
+ assert_equal(sample, [date.to_s, date.to_i])
20
+ end
21
+
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|
27
+ date = When.when?(sample.shift)
28
+ assert_equal(sample, [date.to_s, date.to_i])
29
+ end
30
+
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|
17
36
  date = When.when?(sample.shift)
18
37
  assert_equal(sample, [date.to_s, date.to_i])
19
38
  end
@@ -26,6 +45,7 @@ module Test
26
45
  end
27
46
 
28
47
  def test__haab
48
+ # No offset
29
49
  haab = When.Resource("_co:Mayan::Haab'")
30
50
  assert_equal("ハアブ", haab.label.translate('ja'))
31
51
  assert_equal("http://en.wikipedia.org/wiki/Haab'", haab.label.reference)
@@ -44,9 +64,50 @@ module Test
44
64
  assert_equal(42, When.when?('2011-05-15') % haab)
45
65
  h = haab % When.when?('2011-05-15')
46
66
  assert_equal(["Sip", 2], [h.label.to_s, h.difference])
67
+
68
+ # offset 0B
69
+ haab = When.Resource("_co:Mayan?Epoch=0D::Haab'")
70
+ assert_equal("ハアブ", haab.label.translate('ja'))
71
+ assert_equal("http://en.wikipedia.org/wiki/Haab'", haab.label.reference)
72
+ pop = When.Resource("_co:Mayan?Epoch=0D::Haab'::Pop")
73
+ assert_equal("Pop", pop.label.translate('en'))
74
+ assert_equal("http://en.wikipedia.org/wiki/File:Maya-Pop.jpg", pop.label.reference)
75
+ date0 = When.when?('2011-05-16T12:34:56Z')
76
+ sample = [
77
+ "2012-04-12T12:34:56Z",
78
+ "2012-04-13T12:34:56Z",
79
+ "2012-04-14T12:34:56Z"
80
+ ]
81
+ [10,11,12].each do |i|
82
+ assert_equal(sample.shift, (date0 & pop[i]).to_s)
83
+ end
84
+ assert_equal(42, When.when?('2011-05-15') % haab)
85
+ h = haab % When.when?('2011-05-15')
86
+ assert_equal(["Sip", 2], [h.label.to_s, h.difference])
87
+
88
+ # offset 2B
89
+ haab = When.Resource("_co:Mayan?Epoch=2D::Haab'")
90
+ assert_equal("ハアブ", haab.label.translate('ja'))
91
+ assert_equal("http://en.wikipedia.org/wiki/Haab'", haab.label.reference)
92
+ pop = When.Resource("_co:Mayan?Epoch=2D::Haab'::Pop")
93
+ assert_equal("Pop", pop.label.translate('en'))
94
+ assert_equal("http://en.wikipedia.org/wiki/File:Maya-Pop.jpg", pop.label.reference)
95
+ date0 = When.when?('2011-05-16T12:34:56Z')
96
+ sample = [
97
+ "2012-04-14T12:34:56Z",
98
+ "2012-04-15T12:34:56Z",
99
+ "2012-04-16T12:34:56Z"
100
+ ]
101
+ [10,11,12].each do |i|
102
+ assert_equal(sample.shift, (date0 & pop[i]).to_s)
103
+ end
104
+ assert_equal(42, When.when?('2011-05-17') % haab)
105
+ h = haab % When.when?('2011-05-17')
106
+ assert_equal(["Sip", 2], [h.label.to_s, h.difference])
47
107
  end
48
108
 
49
109
  def test__tzolkin
110
+ # No offset
50
111
  trecena = When.Resource("_co:Mayan::Trecena")
51
112
  assert_equal("トレセナ", trecena.label.translate('ja'))
52
113
  assert_equal("http://en.wikipedia.org/wiki/Trecena", trecena.label.reference)
@@ -73,6 +134,62 @@ module Test
73
134
  if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
74
135
  assert_equal('Ix', (tzolkin % Date.new(2011,5,15)).label.to_s)
75
136
  end
137
+
138
+ # offset 0B
139
+ trecena = When.Resource("_co:Mayan?Epoch=0D::Trecena")
140
+ assert_equal("トレセナ", trecena.label.translate('ja'))
141
+ assert_equal("http://en.wikipedia.org/wiki/Trecena", trecena.label.reference)
142
+ assert_equal(2, When.when?('2011-05-15') % trecena)
143
+
144
+
145
+ tzolkin = When.Resource("_co:Mayan?Epoch=0D::Tzolk'in")
146
+ assert_equal("ツォルキン", tzolkin.label.translate('ja'))
147
+ assert_equal("http://en.wikipedia.org/wiki/Tzolk'in", tzolkin.label.reference)
148
+ ajaw = When.Resource("_co:Mayan?Epoch=0D::Tzolk'in::Ajaw")
149
+ assert_equal("Ajaw", ajaw.label.translate('en'))
150
+ assert_equal("http://en.wikipedia.org/wiki/File:MAYA-g-log-cal-D20-Ajaw-cdxW.png", ajaw.label.reference('alias'))
151
+ date0 = When.when?('2011-05-16T12:34:56Z')
152
+ sample = [
153
+ "2011-05-21T12:34:56Z",
154
+ "2011-05-21T12:34:56Z",
155
+ "2011-05-21T12:34:56Z"
156
+ ]
157
+ [10,11,12].each do |i|
158
+ assert_equal(sample.shift, (date0 & ajaw).to_s)
159
+ end
160
+ assert_equal(13, When.when?('2011-05-15') % tzolkin)
161
+ assert_equal('Ix', (tzolkin % When.when?('2011-05-15')).label.to_s)
162
+ if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
163
+ assert_equal('Ix', (tzolkin % Date.new(2011,5,15)).label.to_s)
164
+ end
165
+
166
+ # offset 2B
167
+ trecena = When.Resource("_co:Mayan?Epoch=2D::Trecena")
168
+ assert_equal("トレセナ", trecena.label.translate('ja'))
169
+ assert_equal("http://en.wikipedia.org/wiki/Trecena", trecena.label.reference)
170
+ assert_equal(2, When.when?('2011-05-17') % trecena)
171
+
172
+
173
+ tzolkin = When.Resource("_co:Mayan?Epoch=2D::Tzolk'in")
174
+ assert_equal("ツォルキン", tzolkin.label.translate('ja'))
175
+ assert_equal("http://en.wikipedia.org/wiki/Tzolk'in", tzolkin.label.reference)
176
+ ajaw = When.Resource("_co:Mayan?Epoch=2D::Tzolk'in::Ajaw")
177
+ assert_equal("Ajaw", ajaw.label.translate('en'))
178
+ assert_equal("http://en.wikipedia.org/wiki/File:MAYA-g-log-cal-D20-Ajaw-cdxW.png", ajaw.label.reference('alias'))
179
+ date0 = When.when?('2011-05-16T12:34:56Z')
180
+ sample = [
181
+ "2011-05-23T12:34:56Z",
182
+ "2011-05-23T12:34:56Z",
183
+ "2011-05-23T12:34:56Z"
184
+ ]
185
+ [10,11,12].each do |i|
186
+ assert_equal(sample.shift, (date0 & ajaw).to_s)
187
+ end
188
+ assert_equal(13, When.when?('2011-05-17') % tzolkin)
189
+ assert_equal('Ix', (tzolkin % When.when?('2011-05-17')).label.to_s)
190
+ if ::Object.const_defined?(:Date) && Date.respond_to?(:civil)
191
+ assert_equal('Ix', (tzolkin % Date.new(2011,5,17)).label.to_s)
192
+ end
76
193
  end
77
194
  end
78
195
  end