when_exe 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +210 -171
- data/bin/irb.rc +1 -0
- data/lib/when_exe.rb +78 -53
- data/lib/when_exe/basictypes.rb +27 -8
- data/lib/when_exe/calendarnote.rb +848 -805
- data/lib/when_exe/calendartypes.rb +110 -240
- data/lib/when_exe/coordinates.rb +2440 -2175
- data/lib/when_exe/core/compatibility.rb +1 -1
- data/lib/when_exe/core/duration.rb +13 -11
- data/lib/when_exe/core/extension.rb +38 -45
- data/lib/when_exe/ephemeris.rb +43 -14
- data/lib/when_exe/ephemeris/eclipse.rb +149 -0
- data/lib/when_exe/ephemeris/notes.rb +39 -7
- data/lib/when_exe/icalendar.rb +2 -6
- data/lib/when_exe/inspect.rb +1408 -1399
- data/lib/when_exe/parts/enumerator.rb +486 -477
- data/lib/when_exe/parts/resource.rb +1101 -1069
- data/lib/when_exe/parts/timezone.rb +6 -5
- data/lib/when_exe/region/babylonian.rb +405 -405
- data/lib/when_exe/region/bahai.rb +21 -61
- data/lib/when_exe/region/chinese/epochs.rb +81 -81
- data/lib/when_exe/region/chinese/twins.rb +51 -51
- data/lib/when_exe/region/christian.rb +7 -2
- data/lib/when_exe/region/coptic.rb +1 -1
- data/lib/when_exe/region/discordian.rb +9 -16
- data/lib/when_exe/region/french.rb +1 -1
- data/lib/when_exe/region/hanke_henry.rb +57 -0
- data/lib/when_exe/region/indian.rb +41 -73
- data/lib/when_exe/region/international_fixed.rb +97 -0
- data/lib/when_exe/region/iranian.rb +203 -203
- data/lib/when_exe/region/japanese.rb +13 -13
- data/lib/when_exe/region/japanese/eclipses.rb +1194 -0
- data/lib/when_exe/region/japanese/notes.rb +1482 -1383
- data/lib/when_exe/region/japanese/residues.rb +726 -721
- data/lib/when_exe/region/japanese/twins.rb +37 -37
- data/lib/when_exe/region/jewish.rb +2 -2
- data/lib/when_exe/region/pax.rb +60 -0
- data/lib/when_exe/region/positivist.rb +100 -0
- data/lib/when_exe/region/roman.rb +333 -334
- data/lib/when_exe/region/shire.rb +3 -20
- data/lib/when_exe/region/thai.rb +2 -2
- data/lib/when_exe/region/tibetan.rb +3 -3
- data/lib/when_exe/region/tranquility.rb +208 -0
- data/lib/when_exe/region/vanishing_leprechaun.rb +53 -0
- data/lib/when_exe/region/vietnamese.rb +4 -4
- data/lib/when_exe/region/world.rb +9 -13
- data/lib/when_exe/region/world_season.rb +89 -0
- data/lib/when_exe/region/zoroastrian.rb +4 -2
- data/lib/when_exe/tmobjects.rb +14 -4
- data/lib/when_exe/tmposition.rb +239 -81
- data/lib/when_exe/tmreference.rb +57 -28
- data/lib/when_exe/version.rb +1 -1
- data/link_to_online_documents +6 -3
- data/test/examples/today.rb +1 -1
- data/test/scripts.rb +23 -0
- data/test/scripts/2.ext.rb +169 -0
- data/test/scripts/2.rb +169 -0
- data/test/scripts/3.ext.rb +133 -0
- data/test/scripts/3.rb +134 -0
- data/test/scripts/4.ext.rb +112 -0
- data/test/scripts/4.min.rb +65 -0
- data/test/scripts/4.rb +136 -0
- data/test/scripts/5.ext.rb +78 -0
- data/test/scripts/5.rb +81 -0
- data/test/scripts/6.gcal.rb +131 -0
- data/test/scripts/6.rb +205 -0
- data/test/scripts/6.tz.rb +105 -0
- data/test/scripts/7.phase.rb +109 -0
- data/test/scripts/7.rb +95 -0
- data/test/scripts/7.term.rb +128 -0
- data/test/scripts/7.week.rb +84 -0
- data/test/scripts/8.ext.rb +61 -0
- data/test/scripts/8.rb +62 -0
- data/test/scripts/9.ext.rb +131 -0
- data/test/scripts/9.rb +130 -0
- data/test/scripts/chinese-luni-solar.rb +52 -0
- data/test/{examples → scripts}/geometric_complex.rb +41 -41
- data/test/scripts/geometric_complex.txt +18 -0
- data/test/scripts/korea.rb +59 -0
- data/test/scripts/thai-reviewed.txt +211 -0
- data/test/scripts/thai.rb +36 -0
- data/test/scripts/thai.txt +210 -0
- data/test/test.rb +7 -0
- data/test/test/basictypes.rb +22 -0
- data/test/test/coordinates.rb +2 -1
- data/test/test/ephemeris.rb +34 -2
- data/test/test/icalendar.rb +12 -0
- data/test/test/inspect.rb +37 -1
- data/test/test/parts.rb +4 -3
- data/test/test/region/armenian.rb +20 -0
- data/test/test/region/bahai.rb +58 -0
- data/test/test/region/chinese.rb +14 -3
- data/test/test/region/christian.rb +16 -35
- data/test/test/region/discordian.rb +20 -0
- data/test/test/region/indian.rb +30 -2
- data/test/test/region/japanese.rb +24 -0
- data/test/test/region/jewish.rb +2 -0
- data/test/test/region/m17n.rb +9 -0
- data/test/test/region/reforms.rb +121 -0
- data/test/test/region/residue.rb +17 -11
- data/test/test/region/shire.rb +58 -0
- data/test/test/region/swedish.rb +45 -0
- data/test/test/region/zoroastrian.rb +58 -0
- data/test/test/tmobjects.rb +74 -0
- data/test/test/tmposition.rb +468 -397
- data/when_exe.gemspec +2 -2
- metadata +49 -6
data/test/test.rb
CHANGED
@@ -51,6 +51,8 @@ require './test/googlecalendar'
|
|
51
51
|
require './test/region/m17n'
|
52
52
|
require './test/region/residue'
|
53
53
|
require './test/region/christian'
|
54
|
+
require './test/region/swedish'
|
55
|
+
require './test/region/armenian'
|
54
56
|
require './test/region/japanese'
|
55
57
|
require './test/region/chinese'
|
56
58
|
require './test/region/vietnamese'
|
@@ -63,5 +65,10 @@ require './test/region/mayan'
|
|
63
65
|
require './test/region/jewish'
|
64
66
|
require './test/region/french'
|
65
67
|
require './test/region/coptic'
|
68
|
+
require './test/region/bahai'
|
69
|
+
require './test/region/discordian'
|
70
|
+
require './test/region/zoroastrian'
|
66
71
|
require './test/region/yerm'
|
72
|
+
require './test/region/reforms'
|
73
|
+
require './test/region/shire'
|
67
74
|
require './test/region/geologicalage'
|
data/test/test/basictypes.rb
CHANGED
@@ -326,6 +326,28 @@ module MiniTest
|
|
326
326
|
end
|
327
327
|
end
|
328
328
|
end
|
329
|
+
|
330
|
+
def test__abbr_and_extra_year_digits
|
331
|
+
|
332
|
+
assert_equal('-00500', When.when?('-005').to_s)
|
333
|
+
assert_equal('2013-01-05', When.when?('-005', {:abbr=>2013}).to_s)
|
334
|
+
assert_equal('-000005', When.when?('-005', {:extra_year_digits=>2}).to_s)
|
335
|
+
|
336
|
+
assert_equal('1900', When.when?('19').to_s)
|
337
|
+
assert_equal('1900', When.when?('19', {:extra_year_digits=>0 }).to_s)
|
338
|
+
assert_equal('0019', When.when?('19', {:extra_year_digits=>-1}).to_s)
|
339
|
+
|
340
|
+
[['019', ["0019", -2, "0019-01-01" ]],
|
341
|
+
['0019', ["0019", -2, "0019-01-01" ]],
|
342
|
+
['+019', ["1900", -4, "1900-01-01" ]],
|
343
|
+
['-119', ["-11900", -4, "-11900-01-01"]],
|
344
|
+
['-0119', ["-00119", -2, "-00119-01-01"]],
|
345
|
+
['+01985-04', ["1985-04", -1, "1985-04-01" ]],
|
346
|
+
['+001985-04', ["1985-04", -1, "1985-04-01" ]]].each do |sample|
|
347
|
+
date = When.when?(sample[0])
|
348
|
+
assert_equal(sample[1], [date.to_s, date.precision, date.floor.to_s])
|
349
|
+
end
|
350
|
+
end
|
329
351
|
end
|
330
352
|
|
331
353
|
#
|
data/test/test/coordinates.rb
CHANGED
@@ -350,7 +350,8 @@ module MiniTest::Coordinates
|
|
350
350
|
assert_equal( '40.0000N', location.lat_s)
|
351
351
|
assert_equal('139.421322E',location.long_s)
|
352
352
|
else
|
353
|
-
puts
|
353
|
+
puts
|
354
|
+
puts "Tests for JSON have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
|
354
355
|
end
|
355
356
|
end
|
356
357
|
|
data/test/test/ephemeris.rb
CHANGED
@@ -57,9 +57,21 @@ module MiniTest::Ephemeris
|
|
57
57
|
class Formula < MiniTest::TestCase
|
58
58
|
def test__sunrise
|
59
59
|
|
60
|
-
|
60
|
+
assert_raises(NoMethodError) { When.when?('2012-11-15').sunrise }
|
61
|
+
|
62
|
+
assert_equal(nil, When.when?('2013-06-21T+09:00', :long=>135, :lat=>70).sunrise)
|
63
|
+
|
64
|
+
if Object.const_defined?(:TZInfo)
|
65
|
+
assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15', :tz=>'Asia/Tokyo').sunrise.to_s)
|
66
|
+
assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15', :tz=>'Asia/Tokyo', :location=>'_l:long=139.7414&lat=35.6581').sunrise.to_s)
|
67
|
+
else
|
68
|
+
puts
|
69
|
+
puts "Tests for TZInfo have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
|
70
|
+
end
|
71
|
+
assert_equal(0, /2012-11-15T06:16/ =~ When.when?('2012-11-15T+09:00', :long=>139.7414, :lat=>35.6581).sunrise.to_s)
|
72
|
+
assert_equal(0, /2012-11-14T21:16/ =~ When.when?('2012-11-15', :long=>139.7414, :lat=>35.6581).sunrise.to_s)
|
61
73
|
|
62
|
-
|
74
|
+
today = '2014-3-4'
|
63
75
|
|
64
76
|
location = When.Location('long=139.413012E&lat=35.412222N')
|
65
77
|
assert_equal(0, /2014-03-03T21:07/ =~ When.when?(today, {:location=>location}).sunrise.to_s)
|
@@ -80,4 +92,24 @@ module MiniTest::Ephemeris
|
|
80
92
|
assert_equal('2014-07-07T13:15+09:00', formula2.nearest_past(date, 0.5).floor(When::MINUTE).to_s)
|
81
93
|
end
|
82
94
|
end
|
95
|
+
|
96
|
+
if Object.const_defined?(:TZInfo)
|
97
|
+
class Note < MiniTest::TestCase
|
98
|
+
def test__tide
|
99
|
+
|
100
|
+
sample = [%w(2013-10-02T02:58+09:00 _n:Ephemeris/Notes::day::Tide::Low_Tide),
|
101
|
+
%w(2013-10-02T09:09+09:00 _n:Ephemeris/Notes::day::Tide::High_Tide),
|
102
|
+
%w(2013-10-02T15:20+09:00 _n:Ephemeris/Notes::day::Tide::Low_Tide),
|
103
|
+
%w(2013-10-02T21:32+09:00 _n:Ephemeris/Notes::day::Tide::High_Tide)]
|
104
|
+
|
105
|
+
note = When.CalendarNote('Ephemeris?interval=0.0')
|
106
|
+
date = When.when?('2013-10-02', :tz=>'Asia/Tokyo')
|
107
|
+
note.tide(date).each do |d|
|
108
|
+
assert_equal(sample.shift, [d.floor(When::MINUTE).to_s, d.events[0].iri(true)])
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
else
|
113
|
+
puts "Tests for TZInfo have been skipped at line #{__LINE__} of #{__FILE__.split(/\//)[-1]}."
|
114
|
+
end
|
83
115
|
end
|
data/test/test/icalendar.rb
CHANGED
@@ -802,6 +802,18 @@ module MiniTest:V
|
|
802
802
|
assert_equal([], sample)
|
803
803
|
end
|
804
804
|
|
805
|
+
def test__each_5
|
806
|
+
event5 = When::V::Event.new({
|
807
|
+
'rrule' => 'FREQ=MONTHLY;BYMONTHDAY=31',
|
808
|
+
'dtstart' => 'VALUE=DATE:20070131'
|
809
|
+
})
|
810
|
+
sample =%w(2007-01-31 2007-03-31 2007-05-31 2007-07-31 2007-08-31
|
811
|
+
2007-10-31 2007-12-31 2008-01-31 2008-03-31 2008-05-31)
|
812
|
+
event5.enum_for(When.when?('20070101'), :forward, 10).each do |date|
|
813
|
+
assert_equal(sample.shift, date.to_s)
|
814
|
+
end
|
815
|
+
end
|
816
|
+
|
805
817
|
class Enumerator < MiniTest::TestCase
|
806
818
|
|
807
819
|
def test_nothing
|
data/test/test/inspect.rb
CHANGED
@@ -112,6 +112,42 @@ module MiniTest
|
|
112
112
|
end
|
113
113
|
end
|
114
114
|
end
|
115
|
-
|
115
|
+
end
|
116
|
+
|
117
|
+
def test__month_included
|
118
|
+
assert_equal([['December 2013',
|
119
|
+
['*', '-', '-', '-', '-', '-', 1, 2],
|
120
|
+
['*', 3, 4, 5, 6, 7, 8, 9],
|
121
|
+
['*', 10, 11, 12, 13, 14, 15, 16],
|
122
|
+
['*', 17, 18, 19, 20, 21, 22, 23],
|
123
|
+
['*', 24, 25, 26, 27, 28, 29, 30, 31]]],
|
124
|
+
|
125
|
+
When.when?('2013-12-30').month_included('WorldWeek') {|date, type|
|
126
|
+
case type
|
127
|
+
when When::YEAR ; date.strftime('%Y')
|
128
|
+
when When::MONTH ; date.strftime('%B %Y')
|
129
|
+
when When::WEEK ; '*'
|
130
|
+
when When::DAY ; date[When::DAY]
|
131
|
+
else ; '-'
|
132
|
+
end
|
133
|
+
})
|
134
|
+
end
|
135
|
+
|
136
|
+
def test__round
|
137
|
+
date = When.when?("2010-09-29T14:45:12.33+09:00")
|
138
|
+
assert_equal(%w(2010-09-29T14:45:12.33+09:00 2010-09-29T14:45:12+09:00), [date.to_s, date.to_s(3, true)])
|
139
|
+
|
140
|
+
date = When.when?('2013-10-28T23:59:59.999', :clock=>'+09:00', :precision=>3)
|
141
|
+
assert_equal(%w(2013-10-28T23:59:59+09:00 2013-10-28T24:00:00+09:00), [date.to_s, date.to_s(3, true)])
|
142
|
+
|
143
|
+
date = When.when?('2013-10-28T23:59:59.999', :clock=>'+09:00')
|
144
|
+
assert_equal(%w(2013-10-28T23:59:59.99+09:00 2013-10-28T24:00:00+09:00), [date.to_s, date.to_s(3, true)])
|
145
|
+
|
146
|
+
date = When.when?('2013-10-28T23:59:29.999', :clock=>'+09:00')
|
147
|
+
assert_equal(%w(2013-10-28T23:59:29.99+09:00 2013-10-28T23:59+09:00), [date.to_s, date.to_s(2, true)])
|
148
|
+
|
149
|
+
date = When.when?('2013-10-28T23:59:30.001', :clock=>'+09:00')
|
150
|
+
assert_equal(%w(2013-10-28T23:59:30.00+09:00 2013-10-28T24:00+09:00), [date.to_s, date.to_s(2, true)])
|
151
|
+
end
|
116
152
|
end
|
117
153
|
end
|
data/test/test/parts.rb
CHANGED
@@ -119,10 +119,11 @@ LOCALE
|
|
119
119
|
|
120
120
|
def test__prefix
|
121
121
|
date = When.when?('0594-09=12^Japanese')
|
122
|
-
assert_equal(["
|
123
|
-
assert_equal(["
|
122
|
+
assert_equal(["閏九月", String], [date.name('Month').label.to_s, date.name('Month').label.class])
|
123
|
+
assert_equal(["閏九月", String], [date.name('Month').to_s, date.name('Month').to_s.class])
|
124
124
|
assert_equal("http://ja.wikipedia.org/wiki/%E9%96%8F", date.name('Month').reference('ja'))
|
125
|
-
assert_equal("
|
125
|
+
assert_equal("閏九月", date.name('Month').translate('日本語'))
|
126
|
+
assert_equal("閏長月", date.name('Month').translate('alias'))
|
126
127
|
assert_equal("Intercalary Month 9", date.name('Month').translate('en_US'))
|
127
128
|
end
|
128
129
|
|
@@ -0,0 +1,20 @@
|
|
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 MiniTest
|
10
|
+
|
11
|
+
class Armenian < MiniTest::TestCase
|
12
|
+
def test__armenian
|
13
|
+
date = When.when?('1-1-1^^Armenian')
|
14
|
+
assert_equal(["0001-01-01", "0552-07-11"], [date.to_s, (When::Julian ^ date).to_s])
|
15
|
+
|
16
|
+
date = When.when?('1462-1-1^^Armenian')
|
17
|
+
assert_equal(["1462-01-01", "2012-07-24"], [date.to_s, (When::Gregorian ^ date).to_s])
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,58 @@
|
|
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 MiniTest
|
10
|
+
|
11
|
+
class Bahai < MiniTest::TestCase
|
12
|
+
def test_bahai
|
13
|
+
date = When.when? '1.9.1.1.1^^Bahai?location=(_co:Iranian::Tehran)'
|
14
|
+
[["01.09.01.01.01", "1996-03-20", 2450163],
|
15
|
+
["01.09.02.01.01", "1997-03-20", 2450528],
|
16
|
+
["01.09.03.01.01", "1998-03-21", 2450894],
|
17
|
+
["01.09.04.01.01", "1999-03-21", 2451259],
|
18
|
+
["01.09.05.01.01", "2000-03-20", 2451624],
|
19
|
+
["01.09.06.01.01", "2001-03-20", 2451989],
|
20
|
+
["01.09.07.01.01", "2002-03-21", 2452355],
|
21
|
+
["01.09.08.01.01", "2003-03-21", 2452720],
|
22
|
+
["01.09.09.01.01", "2004-03-20", 2453085],
|
23
|
+
["01.09.10.01.01", "2005-03-20", 2453450],
|
24
|
+
["01.09.11.01.01", "2006-03-21", 2453816],
|
25
|
+
["01.09.12.01.01", "2007-03-21", 2454181],
|
26
|
+
["01.09.13.01.01", "2008-03-20", 2454546],
|
27
|
+
["01.09.14.01.01", "2009-03-20", 2454911],
|
28
|
+
["01.09.15.01.01", "2010-03-21", 2455277],
|
29
|
+
["01.09.16.01.01", "2011-03-21", 2455642],
|
30
|
+
["01.09.17.01.01", "2012-03-20", 2456007],
|
31
|
+
["01.09.18.01.01", "2013-03-20", 2456372],
|
32
|
+
["01.09.19.01.01", "2014-03-21", 2456738],
|
33
|
+
["01.10.01.01.01", "2015-03-21", 2457103],
|
34
|
+
["01.10.02.01.01", "2016-03-20", 2457468],
|
35
|
+
["01.10.03.01.01", "2017-03-20", 2457833],
|
36
|
+
["01.10.04.01.01", "2018-03-21", 2458199],
|
37
|
+
["01.10.05.01.01", "2019-03-21", 2458564],
|
38
|
+
["01.10.06.01.01", "2020-03-20", 2458929],
|
39
|
+
["01.10.07.01.01", "2021-03-20", 2459294],
|
40
|
+
["01.10.08.01.01", "2022-03-21", 2459660],
|
41
|
+
["01.10.09.01.01", "2023-03-21", 2460025],
|
42
|
+
["01.10.10.01.01", "2024-03-20", 2460390],
|
43
|
+
["01.10.11.01.01", "2025-03-20", 2460755],
|
44
|
+
["01.10.12.01.01", "2026-03-20", 2461120],
|
45
|
+
["01.10.13.01.01", "2027-03-21", 2461486],
|
46
|
+
["01.10.14.01.01", "2028-03-20", 2461851]].each do |sample|
|
47
|
+
assert_equal(sample, [date.to_s, (When::Gregorian ^ date).to_s, date.to_i])
|
48
|
+
date += When::P1Y
|
49
|
+
end
|
50
|
+
|
51
|
+
date = When.when? '2001.3.21'
|
52
|
+
400.times do
|
53
|
+
assert_equal([1,1], (When.Calendar('Bahai') ^ date).cal_date[-2..-1])
|
54
|
+
date += When::P1Y
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/test/test/region/chinese.rb
CHANGED
@@ -9,6 +9,17 @@
|
|
9
9
|
module MiniTest
|
10
10
|
|
11
11
|
class Chinese < MiniTest::TestCase
|
12
|
+
def test_chinese_table
|
13
|
+
assert_equal({1677=>{"iJ"=>"Ij"},
|
14
|
+
1698=>{"jK"=>"Jk"},
|
15
|
+
1709=>{"aB"=>"Ab", "jK"=>"Jk"},
|
16
|
+
1727=>{"cC"=>"Cc"},
|
17
|
+
1730=>{"Cd"=>"cD"},
|
18
|
+
1751=>{"Jk"=>"jK"},
|
19
|
+
1778=>{"Cd"=>"cD"},
|
20
|
+
1841=>{"kL"=>"Kl"}}, When.Calendar('Korean').verify(When.Calendar('Chinese1645'), 1654..1911))
|
21
|
+
end
|
22
|
+
|
12
23
|
def test_chinese_date
|
13
24
|
|
14
25
|
emd = When.Resource('_c:EphemerisBasedSolar?time_basis=+09:00')
|
@@ -110,7 +121,7 @@ module MiniTest
|
|
110
121
|
def test_chinese_epoch
|
111
122
|
date = When.when?('天保2.10.01')
|
112
123
|
assert_equal([2390126, "天保02(1831).10.01", "神無月"],
|
113
|
-
[date.to_i, date.to_s, date.name('Month')])
|
124
|
+
[date.to_i, date.to_s, date.name('Month')/'alias'])
|
114
125
|
assert_equal("1831-11-04", (When.Calendar('Gregorian') ^ When.when?('天保02.10.01')).to_s)
|
115
126
|
|
116
127
|
#=begin
|
@@ -132,8 +143,8 @@ module MiniTest
|
|
132
143
|
assert_raises(ArgumentError) { When.when?('天保3(0563).10.01') }
|
133
144
|
|
134
145
|
date = When.when?('始皇帝26*10.01')
|
135
|
-
assert_equal([1640641, "始皇帝26(-220)*10.01", "十月"],
|
136
|
-
[date.to_i, date.to_s, date.name('Month')])
|
146
|
+
assert_equal([1640641, 1640641, "始皇帝26(-220)*10.01", "十月"],
|
147
|
+
[date.to_i, date.floor(When::YEAR).to_i, date.to_s, date.name('Month')])
|
137
148
|
|
138
149
|
cc_221 = When.Resource('_c:Chinese_221')
|
139
150
|
[
|
@@ -94,41 +94,6 @@ module MiniTest
|
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
-
class Swedish < MiniTest::TestCase
|
98
|
-
def test__swedish_date
|
99
|
-
|
100
|
-
dates = []
|
101
|
-
jdns = []
|
102
|
-
[2342042, 2346424].each do |base|
|
103
|
-
(-3..+3).each do |diff|
|
104
|
-
jdn = base + diff
|
105
|
-
jdate = When::Julian ^ jdn
|
106
|
-
s1date = When::Swedish ^ jdn
|
107
|
-
s2date = When.tm_pos(*(s1date.cal_date + [{:frame=>When::Swedish}]))
|
108
|
-
dates << s1date.to_s
|
109
|
-
jdns << [s1date.to_s == s2date.to_s, s1date.to_i == jdn, s2date.to_i == jdn].uniq
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
assert_equal(%w(1700-02-26 1700-02-27 1700-02-28 1700-03-01 1700-03-02 1700-03-03 1700-03-04
|
114
|
-
1712-02-26 1712-02-27 1712-02-28 1712-02-29 1712-02-30 1712-03-01 1712-03-02), dates)
|
115
|
-
assert_equal([[true]], jdns.uniq)
|
116
|
-
end
|
117
|
-
|
118
|
-
def test__swedish_easter
|
119
|
-
|
120
|
-
dates = []
|
121
|
-
civil = When.Calendar('Civil?old=Swedish&reform_date=1753-03-01')
|
122
|
-
((1700..1711).to_a + (1740..1752).to_a+[1802,1805,1818]).each do |year|
|
123
|
-
dates << When.tm_pos(year, {:frame=>civil}).easter.to_s
|
124
|
-
end
|
125
|
-
assert_equal(%w(1700-04-01 1701-04-21 1702-04-06 1703-03-29 1704-04-17 1705-04-02 1706-03-25
|
126
|
-
1707-04-14 1708-04-05 1709-04-18 1710-04-10 1711-03-26 1740-04-06 1741-03-22
|
127
|
-
1742-03-14 1743-04-03 1744-03-18 1745-04-07 1746-03-30 1747-03-22 1748-04-03
|
128
|
-
1749-03-26 1750-03-18 1751-03-31 1752-03-22 1802-04-25 1805-04-21 1818-03-29), dates)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
97
|
class Civil < MiniTest::TestCase
|
133
98
|
def test__border
|
134
99
|
frame = When.Calendar('Civil?reform=1752-9-14&border=0-3-25(1753)0-1-1')
|
@@ -166,6 +131,22 @@ module MiniTest
|
|
166
131
|
end
|
167
132
|
end
|
168
133
|
|
134
|
+
def test_civil_epoch
|
135
|
+
epoch = 1001
|
136
|
+
diff = 1 - epoch
|
137
|
+
civil = When.Calendar("Civil?origin_of_MSC=#{diff}&old=(Julian?origin_of_MSC=#{diff})")
|
138
|
+
assert_equal('0582-10-04', (civil ^ When.when?('1582-10-14')).to_s)
|
139
|
+
assert_equal('0582-10-15', (civil ^ When.when?('1582-10-15')).to_s)
|
140
|
+
date = When.when?("1000-1-1", :frame=>civil)
|
141
|
+
assert_equal('1014-01-01', (date & When.Residue('甲午').to('year')).to_s)
|
142
|
+
assert_equal(%w(1000-01-01 2000-01-01), [date.to_s, (When::Gregorian^date).to_s])
|
143
|
+
399.times do
|
144
|
+
date += When::P1Y
|
145
|
+
cal_date = date.cal_date
|
146
|
+
assert_equal((When::Gregorian^date).cal_date, [cal_date[0]-diff] + cal_date[1..2])
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
169
150
|
def test__reform_year
|
170
151
|
date = When.when?('1752^^Civil?reform=1752-9-14&border=(1000)0-3-25(1753)0-1-1')
|
171
152
|
assert_equal(
|
@@ -0,0 +1,20 @@
|
|
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 MiniTest
|
10
|
+
|
11
|
+
class Discordian < MiniTest::TestCase
|
12
|
+
def test_discordian
|
13
|
+
date = When.when? '2001.1.1'
|
14
|
+
400.times do |i|
|
15
|
+
assert_equal([2001+i+1166,1,1], (When::Discordian ^ date).cal_date)
|
16
|
+
date += When::P1Y
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/test/test/region/indian.rb
CHANGED
@@ -50,8 +50,36 @@ module MiniTest
|
|
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
|
-
|
54
|
-
assert_equal(2448361,
|
53
|
+
dates = When::CalendarNote::HinduNote::Dates.new(date)
|
54
|
+
assert_equal(2448361, dates.to_i)
|
55
|
+
assert_equal('Prajāpati', When.CalendarNote('HinduNote').samvatsara(dates)/'en')
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_indian_date_4
|
59
|
+
date = When.when? '2001.2.28'
|
60
|
+
assert_equal('1922-12-09', (When::IndianNationalSolar ^ date).to_s)
|
61
|
+
399.times do
|
62
|
+
date += When::P1Y
|
63
|
+
assert_equal([12,9], (When::IndianNationalSolar ^ date).cal_date[-2..-1])
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_indian_date_5
|
68
|
+
date = When.when? '2014.3.14'
|
69
|
+
assert_equal('0546-01-01', (When::Nanakshahi ^ date).to_s)
|
70
|
+
399.times do
|
71
|
+
date += When::P1Y
|
72
|
+
assert_equal([1,1], (When::Nanakshahi ^ date).cal_date[-2..-1])
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_indian_date_6
|
77
|
+
date = When.when? '2014.4.14'
|
78
|
+
assert_equal('1421-01-01', (When::RevisedBengali ^ date).to_s)
|
79
|
+
399.times do
|
80
|
+
date += When::P1Y
|
81
|
+
assert_equal([1,1], (When::RevisedBengali ^ date).cal_date[-2..-1])
|
82
|
+
end
|
55
83
|
end
|
56
84
|
end
|
57
85
|
end
|
@@ -167,6 +167,10 @@ module MiniTest
|
|
167
167
|
When::CalendarNote::Japanese::SolarTerms.send(:patch=, {})
|
168
168
|
end
|
169
169
|
When::CalendarNote::Japanese::SolarTerms.send(:patch=, nil)
|
170
|
+
|
171
|
+
assert_equal('白露(135.375/560)',
|
172
|
+
When.when?('康和1.8.14').notes(:notes=>'廿四節気', :shoyo=>true)[:value].simplify.to_s)
|
173
|
+
|
170
174
|
end
|
171
175
|
|
172
176
|
def test__lunar_phases
|
@@ -201,6 +205,21 @@ module MiniTest
|
|
201
205
|
end
|
202
206
|
end
|
203
207
|
|
208
|
+
def test__eclipse
|
209
|
+
date = When.when?('貞観4.2.1')
|
210
|
+
assert_equal('夜日蝕七分', date.notes({:notes=>'日食'}).value)
|
211
|
+
assert_equal(nil, date.notes({:notes=>'日食', :solar_eclipse=>1}).value)
|
212
|
+
|
213
|
+
date = When.when?('貞観4.2.15')
|
214
|
+
assert_equal('(月蝕ニ分)', date.notes({:notes=>'月食'}).value)
|
215
|
+
assert_equal(nil, date.notes({:notes=>'月食', :lunar_eclipse=>3}).value)
|
216
|
+
end
|
217
|
+
|
218
|
+
def test_japanese_lunisolar
|
219
|
+
assert_equal({1850=>{"hI"=>"Hi"}, 1866=>{"cD"=>"Cd"}, 1884=>{"cD"=>"Cd"}, 1947=>{"b"=>"c"}},
|
220
|
+
When.Calendar('Japanese').verify(When.Calendar('JapaneseTwin::旧暦'), 1844..2033))
|
221
|
+
end
|
222
|
+
|
204
223
|
def test_japanese_era
|
205
224
|
assert_raises(RangeError) {When.TemporalPosition("正慶", 2, 11)}
|
206
225
|
assert_equal("延元02(1337).01.08", When.when?("建武4.1.8").to_s)
|
@@ -216,6 +235,11 @@ module MiniTest
|
|
216
235
|
弘長 文永 建治 弘安 正応 永仁 正安 乾元 嘉元 徳治
|
217
236
|
延慶 応長 正和 文保 元応 元亨 正中 嘉暦 元徳 元弘),
|
218
237
|
When.era('鎌倉時代')[0].map { |era| era.label.to_s})
|
238
|
+
|
239
|
+
date = When.when?('768-10-20^^Gregorian')
|
240
|
+
assert_equal('神護景雲02(0768).09.02', (date ^ When.CalendarEra('Japanese'))[0].to_s)
|
241
|
+
assert_equal('日本?V=0764::奈良時代::神護景雲02(0768).09.01', (date ^ When.CalendarEra('Japanese?V=0764'))[0].to_s)
|
242
|
+
assert_equal('日本::奈良時代::神護景雲02(0768).09.02', (date ^ When.CalendarEra('Japanese'))[0].to_s)
|
219
243
|
end
|
220
244
|
=begin
|
221
245
|
def test_japanese_date
|