when_exe 0.2.100 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.ja.txt +25 -25
- data/LICENSE.txt +31 -31
- data/bin/irb.rc +5 -0
- data/bin/locales.rb +2 -2
- data/bin/when.rb +16 -0
- data/bin/when.rb.config +7 -0
- data/lib/when_exe.rb +616 -14
- data/lib/when_exe/basictypes.rb +615 -0
- data/lib/when_exe/calendartypes.rb +1700 -0
- data/lib/when_exe/coordinates.rb +1936 -0
- data/lib/when_exe/core/compatibility.rb +54 -0
- data/lib/when_exe/core/duration.rb +72 -72
- data/lib/when_exe/core/extension.rb +382 -0
- data/lib/when_exe/ephemeris.rb +1845 -0
- data/lib/when_exe/googlecalendar.rb +140 -0
- data/lib/when_exe/icalendar.rb +1587 -0
- data/lib/when_exe/inspect.rb +1237 -0
- data/lib/when_exe/locales/af.rb +90 -0
- data/lib/when_exe/locales/ar.rb +145 -0
- data/lib/when_exe/locales/az.rb +90 -0
- data/lib/when_exe/locales/bg.rb +90 -0
- data/lib/when_exe/locales/bn.rb +94 -0
- data/lib/when_exe/locales/bs.rb +121 -0
- data/lib/when_exe/locales/ca.rb +92 -0
- data/lib/when_exe/locales/cs.rb +107 -0
- data/lib/when_exe/locales/cy.rb +150 -0
- data/lib/when_exe/locales/da.rb +84 -0
- data/lib/when_exe/locales/de.rb +92 -0
- data/lib/when_exe/locales/de_AT.rb +92 -0
- data/lib/when_exe/locales/de_CH.rb +92 -0
- data/lib/when_exe/locales/el.rb +93 -0
- data/lib/when_exe/locales/en.rb +88 -0
- data/lib/when_exe/locales/en_AU.rb +88 -0
- data/lib/when_exe/locales/en_CA.rb +88 -0
- data/lib/when_exe/locales/en_GB.rb +88 -0
- data/lib/when_exe/locales/en_IN.rb +88 -0
- data/lib/when_exe/locales/en_NZ.rb +88 -0
- data/lib/when_exe/locales/eo.rb +89 -0
- data/lib/when_exe/locales/es.rb +84 -0
- data/lib/when_exe/locales/es_419.rb +84 -0
- data/lib/when_exe/locales/es_AR.rb +84 -0
- data/lib/when_exe/locales/es_CL.rb +84 -0
- data/lib/when_exe/locales/es_CO.rb +84 -0
- data/lib/when_exe/locales/es_MX.rb +84 -0
- data/lib/when_exe/locales/es_PE.rb +85 -0
- data/lib/when_exe/locales/es_VE.rb +84 -0
- data/lib/when_exe/locales/et.rb +94 -0
- data/lib/when_exe/locales/eu.rb +95 -0
- data/lib/when_exe/locales/fa.rb +80 -0
- data/lib/when_exe/locales/fi.rb +89 -0
- data/lib/when_exe/locales/fr.rb +88 -0
- data/lib/when_exe/locales/fr_CA.rb +88 -0
- data/lib/when_exe/locales/fr_CH.rb +88 -0
- data/lib/when_exe/locales/gl.rb +81 -0
- data/lib/when_exe/locales/he.rb +84 -0
- data/lib/when_exe/locales/hi.rb +80 -0
- data/lib/when_exe/locales/hi_IN.rb +84 -0
- data/lib/when_exe/locales/hr.rb +128 -0
- data/lib/when_exe/locales/hu.rb +84 -0
- data/lib/when_exe/locales/id.rb +89 -0
- data/lib/when_exe/locales/is.rb +89 -0
- data/lib/when_exe/locales/it.rb +87 -0
- data/lib/when_exe/locales/it_CH.rb +87 -0
- data/lib/when_exe/locales/ja.rb +78 -0
- data/lib/when_exe/locales/kn.rb +86 -0
- data/lib/when_exe/locales/ko.rb +78 -0
- data/lib/when_exe/locales/links.rb +2342 -0
- data/lib/when_exe/locales/lo.rb +123 -0
- data/lib/when_exe/locales/locales.rb +91 -0
- data/lib/when_exe/locales/lt.rb +111 -0
- data/lib/when_exe/locales/lv.rb +118 -0
- data/lib/when_exe/locales/mk.rb +93 -0
- data/lib/when_exe/locales/mn.rb +80 -0
- data/lib/when_exe/locales/nb.rb +81 -0
- data/lib/when_exe/locales/ne.rb +81 -0
- data/lib/when_exe/locales/nl.rb +92 -0
- data/lib/when_exe/locales/nn.rb +73 -0
- data/lib/when_exe/locales/or.rb +84 -0
- data/lib/when_exe/locales/pl.rb +128 -0
- data/lib/when_exe/locales/pt.rb +88 -0
- data/lib/when_exe/locales/pt_BR.rb +88 -0
- data/lib/when_exe/locales/rm.rb +143 -0
- data/lib/when_exe/locales/ro.rb +105 -0
- data/lib/when_exe/locales/ru.rb +128 -0
- data/lib/when_exe/locales/sk.rb +109 -0
- data/lib/when_exe/locales/sl.rb +122 -0
- data/lib/when_exe/locales/sr.rb +122 -0
- data/lib/when_exe/locales/sv.rb +83 -0
- data/lib/when_exe/locales/sw.rb +89 -0
- data/lib/when_exe/locales/th.rb +78 -0
- data/lib/when_exe/locales/tl.rb +99 -0
- data/lib/when_exe/locales/tr.rb +96 -0
- data/lib/when_exe/locales/uk.rb +128 -0
- data/lib/when_exe/locales/uz.rb +128 -0
- data/lib/when_exe/locales/vi.rb +94 -0
- data/lib/when_exe/locales/wo.rb +82 -0
- data/lib/when_exe/locales/zh_CN.rb +77 -0
- data/lib/when_exe/locales/zh_HK.rb +77 -0
- data/lib/when_exe/locales/zh_TW.rb +77 -0
- data/lib/when_exe/mini_application.rb +252 -0
- data/lib/when_exe/parts/enumerator.rb +472 -0
- data/lib/when_exe/parts/geometric_complex.rb +379 -0
- data/lib/when_exe/parts/locale.rb +513 -0
- data/lib/when_exe/parts/method_cash.rb +207 -0
- data/lib/when_exe/parts/resource.rb +806 -0
- data/lib/when_exe/parts/timezone.rb +182 -0
- data/lib/when_exe/region/bahai.rb +145 -0
- data/lib/when_exe/region/balinese.rb +627 -0
- data/lib/when_exe/region/chinese.rb +896 -0
- data/lib/when_exe/region/chinese_calendar.rb +919 -0
- data/lib/when_exe/region/chinese_epoch.rb +1245 -0
- data/lib/when_exe/region/christian.rb +644 -0
- data/lib/when_exe/region/far_east.rb +192 -0
- data/lib/when_exe/region/french.rb +66 -0
- data/lib/when_exe/region/geologicalage.rb +639 -0
- data/lib/when_exe/region/indian.rb +1066 -0
- data/lib/when_exe/region/iranian.rb +66 -0
- data/lib/when_exe/region/islamic.rb +105 -0
- data/lib/when_exe/region/japanese.rb +851 -0
- data/lib/when_exe/region/japanese_notes.rb +964 -0
- data/lib/when_exe/region/japanese_residues.rb +1149 -0
- data/lib/when_exe/region/javanese.rb +228 -0
- data/lib/when_exe/region/jewish.rb +127 -0
- data/lib/when_exe/region/korean.rb +267 -0
- data/lib/when_exe/region/m17n.rb +115 -0
- data/lib/when_exe/region/martian.rb +215 -0
- data/lib/when_exe/region/mayan.rb +122 -0
- data/lib/when_exe/region/moon.rb +333 -0
- data/lib/when_exe/region/nihon_shoki.rb +73 -0
- data/lib/when_exe/region/planets.rb +585 -0
- data/lib/when_exe/region/pope.rb +298 -0
- data/lib/when_exe/region/residue.rb +229 -0
- data/lib/when_exe/region/roman.rb +325 -0
- data/lib/when_exe/region/ryukyu.rb +98 -0
- data/lib/when_exe/region/shire.rb +254 -0
- data/lib/when_exe/region/sun.rb +210 -0
- data/lib/when_exe/region/thai.rb +227 -0
- data/lib/when_exe/region/tibetan.rb +233 -0
- data/lib/when_exe/region/v50.rb +111 -0
- data/lib/when_exe/region/vietnamese.rb +173 -0
- data/lib/when_exe/region/world.rb +197 -0
- data/lib/when_exe/timestandard.rb +547 -0
- data/lib/when_exe/tmduration.rb +330 -330
- data/lib/when_exe/tmobjects.rb +1295 -0
- data/lib/when_exe/tmposition.rb +1955 -0
- data/lib/when_exe/tmreference.rb +1547 -0
- data/lib/when_exe/version.rb +10 -3
- data/link_to_online_documents +4 -0
- data/test/examples/JapanHolidays.ics +456 -0
- data/test/examples/Millennium.ics +17 -0
- data/test/examples/NewYork.ics +61 -0
- data/test/examples/Residue.m17n +135 -0
- data/test/examples/Spatial.m17n +179 -0
- data/test/examples/Terms.m17n +39 -0
- data/test/examples/Test.ics +53 -0
- data/test/examples/USA-DST.ics +61 -0
- data/test/examples/geometric_complex.rb +41 -0
- data/test/examples/sample.xml +14 -0
- data/test/examples/today.rb +61 -0
- data/test/test.rb +54 -19
- data/test/test.rb.config +1 -0
- data/test/test/basictypes.rb +368 -0
- data/test/test/calendartypes.rb +57 -0
- data/test/test/coordinates.rb +380 -0
- data/test/test/ephemeris.rb +127 -0
- data/test/test/googlecalendar.rb +167 -0
- data/test/test/icalendar.rb +848 -0
- data/test/test/inspect.rb +115 -0
- data/test/test/parts.rb +480 -0
- data/test/test/region/chinese.rb +161 -0
- data/test/test/region/french.rb +33 -0
- data/test/test/region/geologicalage.rb +14 -0
- data/test/test/region/indian.rb +55 -0
- data/test/test/region/iran.rb +54 -0
- data/test/test/region/islamic.rb +18 -0
- data/test/test/region/japanese.rb +62 -0
- data/test/test/region/jewish.rb +61 -0
- data/test/test/region/m17n.rb +181 -0
- data/test/test/region/mayan.rb +78 -0
- data/test/test/region/moon.rb +14 -0
- data/test/test/region/planets.rb +14 -0
- data/test/test/region/residue.rb +123 -0
- data/test/test/region/sun.rb +14 -0
- data/test/test/region/thai.rb +94 -0
- data/test/test/region/tibetan.rb +30 -0
- data/test/test/tmobjects.rb +356 -57
- data/test/test/tmposition.rb +237 -0
- data/test/test/tmreference.rb +95 -0
- data/when_exe.gemspec +2 -2
- metadata +187 -7
- data/doc/COPYING +0 -31
- data/doc/COPYING.ja +0 -25
- data/doc/document_url +0 -1
@@ -0,0 +1,61 @@
|
|
1
|
+
BEGIN:VCALENDAR
|
2
|
+
# Copyright (C) 2011 Takashi SUGA
|
3
|
+
#
|
4
|
+
# You may use and/or modify this file according to the license
|
5
|
+
# described in the LICENSE.txt file included in this archive.
|
6
|
+
VERSION:2.0
|
7
|
+
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
|
8
|
+
BEGIN:VTIMEZONE
|
9
|
+
TZID:America/#{C}
|
10
|
+
LAST-MODIFIED:20050809T050000Z
|
11
|
+
BEGIN:DAYLIGHT
|
12
|
+
DTSTART:19670430T020000
|
13
|
+
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19730429T#{SZ}0000Z
|
14
|
+
TZOFFSETFROM:-#{S}00
|
15
|
+
TZOFFSETTO:-#{D}00
|
16
|
+
TZNAME:#{Z}DT
|
17
|
+
END:DAYLIGHT
|
18
|
+
BEGIN:STANDARD
|
19
|
+
DTSTART:19671029T020000
|
20
|
+
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU;UNTIL=20061029T#{DZ}0000Z
|
21
|
+
TZOFFSETFROM:-#{D}00
|
22
|
+
TZOFFSETTO:-#{S}00
|
23
|
+
TZNAME:#{Z}ST
|
24
|
+
END:STANDARD
|
25
|
+
BEGIN:DAYLIGHT
|
26
|
+
DTSTART:19740106T020000
|
27
|
+
RDATE:19750223T020000
|
28
|
+
TZOFFSETFROM:-#{S}00
|
29
|
+
TZOFFSETTO:-#{D}00
|
30
|
+
TZNAME:#{Z}DT
|
31
|
+
END:DAYLIGHT
|
32
|
+
BEGIN:DAYLIGHT
|
33
|
+
DTSTART:19760425T020000
|
34
|
+
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1SU;UNTIL=19860427T#{SZ}0000Z
|
35
|
+
TZOFFSETFROM:-#{S}00
|
36
|
+
TZOFFSETTO:-#{D}00
|
37
|
+
TZNAME:#{Z}DT
|
38
|
+
END:DAYLIGHT
|
39
|
+
BEGIN:DAYLIGHT
|
40
|
+
DTSTART:19870405T020000
|
41
|
+
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU;UNTIL=20060402T#{SZ}0000Z
|
42
|
+
TZOFFSETFROM:-#{S}00
|
43
|
+
TZOFFSETTO:-#{D}00
|
44
|
+
TZNAME:#{Z}DT
|
45
|
+
END:DAYLIGHT
|
46
|
+
BEGIN:DAYLIGHT
|
47
|
+
DTSTART:20070311T020000
|
48
|
+
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
49
|
+
TZOFFSETFROM:-#{S}00
|
50
|
+
TZOFFSETTO:-#{D}00
|
51
|
+
TZNAME:#{Z}DT
|
52
|
+
END:DAYLIGHT
|
53
|
+
BEGIN:STANDARD
|
54
|
+
DTSTART:20071104T020000
|
55
|
+
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
56
|
+
TZOFFSETFROM:-#{D}00
|
57
|
+
TZOFFSETTO:-#{S}00
|
58
|
+
TZNAME:#{Z}ST
|
59
|
+
END:STANDARD
|
60
|
+
END:VTIMEZONE
|
61
|
+
END:VCALENDAR
|
@@ -0,0 +1,41 @@
|
|
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
|
+
require 'pp'
|
10
|
+
require 'when_exe'
|
11
|
+
include When
|
12
|
+
|
13
|
+
range_null = Parts::GeometricComplex.new()
|
14
|
+
range_1_1 = Parts::GeometricComplex.new(1)
|
15
|
+
range_1_4 = Parts::GeometricComplex.new(1,4)
|
16
|
+
range_2_2 = Parts::GeometricComplex.new(2)
|
17
|
+
range_2_3 = Parts::GeometricComplex.new(2,3)
|
18
|
+
range_2_5 = Parts::GeometricComplex.new(2,5)
|
19
|
+
range_4_4 = Parts::GeometricComplex.new(4)
|
20
|
+
pp range_1_4
|
21
|
+
pp range_2_3
|
22
|
+
range_1_4.each {|x| pp x}
|
23
|
+
pp range_4_4
|
24
|
+
pp range_1_4 | range_2_3
|
25
|
+
pp range_1_4.include?(range_2_2)
|
26
|
+
pp range_1_4.include?(range_2_3)
|
27
|
+
range_1_5 = range_1_4 | range_2_5
|
28
|
+
pp range_1_5
|
29
|
+
pp range_1_4.include?(range_2_5)
|
30
|
+
pp range_1_4 | range_4_4
|
31
|
+
pp range_1_4.include?(range_4_4)
|
32
|
+
reverse_all = Parts::GeometricComplex.new(true)
|
33
|
+
reverse_1_4 = Parts::GeometricComplex.new(1,4, true)
|
34
|
+
reverse_2_3 = Parts::GeometricComplex.new(2,3, true)
|
35
|
+
reverse_2_5 = Parts::GeometricComplex.new(2,5, true)
|
36
|
+
pp reverse_all
|
37
|
+
pp reverse_1_4
|
38
|
+
pp reverse_2_3
|
39
|
+
pp reverse_2_3 | range_2_3
|
40
|
+
pp reverse_1_4 | range_2_5
|
41
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Copyright (C) 2011 Takashi SUGA -->
|
3
|
+
<!-- You may use and/or modify this file according to the license
|
4
|
+
described in the LICENSE.txt file included in this archive. -->
|
5
|
+
<object xmlns="http://hosi.org/When/BasicTypes/"
|
6
|
+
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
7
|
+
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
|
8
|
+
type="http://hosi.org/When/Coordinates/Spatial">
|
9
|
+
<rdfs:label country='Japan'>Tokyo</rdfs:label>
|
10
|
+
<geo:lat>N35.412011</geo:lat>
|
11
|
+
<geo:long>E139.421322</geo:long>
|
12
|
+
<geo:alt>0</geo:alt>
|
13
|
+
<geo:datum>JGD2000</geo:datum>
|
14
|
+
</object>
|
@@ -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
|
+
require 'pp'
|
10
|
+
require 'when_exe'
|
11
|
+
include When
|
12
|
+
|
13
|
+
#require 'date'
|
14
|
+
#pp now({:clock=>'+0900'}).to_date_time.strftime('%+')
|
15
|
+
|
16
|
+
#=begin
|
17
|
+
date = today
|
18
|
+
pp [date.to_s, date.strftime('%D'), date.frame.iri, date.to_time.to_s]
|
19
|
+
puts
|
20
|
+
|
21
|
+
['Julian', 'ChineseLuniSolar?timezone=9&intercalary_span=3', 'TabularIslamic', 'Jewish', 'LongCount'].each do |calendar|
|
22
|
+
date = Calendar(calendar) ^ today
|
23
|
+
pp [date.to_s, date.frame.iri]
|
24
|
+
end
|
25
|
+
puts
|
26
|
+
|
27
|
+
(today ^ TM::Calendar).each do |date|
|
28
|
+
pp [date.to_s, date.frame.iri]
|
29
|
+
end
|
30
|
+
puts
|
31
|
+
|
32
|
+
pp today.month_included('SU') {|date, type|
|
33
|
+
case type
|
34
|
+
when WEEK ; '*'
|
35
|
+
when YEAR,MONTH ; date.strftime("%B %Y")
|
36
|
+
when DAY ; date[0]
|
37
|
+
else ; ''
|
38
|
+
end
|
39
|
+
}
|
40
|
+
puts
|
41
|
+
|
42
|
+
pp when?('CE1582.10').month_included('SU') {|date, type|
|
43
|
+
case type
|
44
|
+
when WEEK ; nil
|
45
|
+
when YEAR,MONTH ; date.strftime("%B %Y")
|
46
|
+
when DAY ; date[0]
|
47
|
+
else ; ''
|
48
|
+
end
|
49
|
+
}
|
50
|
+
puts
|
51
|
+
|
52
|
+
it = Resource("JapanHolidays.ics").enum_for(today.year_included)
|
53
|
+
it.each do |date|
|
54
|
+
pp date.to_s
|
55
|
+
end
|
56
|
+
puts
|
57
|
+
|
58
|
+
Resource("NewYork.ics")
|
59
|
+
time = now({:clock=>'America/New_York'})
|
60
|
+
pp [time.to_s, time.strftime('%+'), time.clock.tzname[0]]
|
61
|
+
|
data/test/test.rb
CHANGED
@@ -1,19 +1,54 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
=begin
|
4
|
-
Copyright (C) 2011-2013 Takashi SUGA
|
5
|
-
|
6
|
-
You may use and/or modify this file according to the license
|
7
|
-
described in the
|
8
|
-
=end
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
=begin
|
4
|
+
Copyright (C) 2011-2013 Takashi SUGA
|
5
|
+
|
6
|
+
You may use and/or modify this file according to the license
|
7
|
+
described in the LICENSE.txt file included in this archive.
|
8
|
+
=end
|
9
|
+
|
10
|
+
require 'pp'
|
11
|
+
require 'date'
|
12
|
+
begin
|
13
|
+
require 'minitest/unit'
|
14
|
+
require 'minitest/autorun'
|
15
|
+
Test = MiniTest
|
16
|
+
class Test::Unit::TestCase
|
17
|
+
alias :assert_raise :assert_raises
|
18
|
+
end
|
19
|
+
rescue LoadError
|
20
|
+
require 'test/unit'
|
21
|
+
end
|
22
|
+
|
23
|
+
class Test::Unit::TestCase
|
24
|
+
def setup
|
25
|
+
When._setup_({:multi_thread=>true})
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
require 'when_exe'
|
30
|
+
require 'when_exe/mini_application'
|
31
|
+
#include When
|
32
|
+
|
33
|
+
require './test/parts'
|
34
|
+
require './test/basictypes'
|
35
|
+
require './test/ephemeris'
|
36
|
+
require './test/coordinates'
|
37
|
+
require './test/icalendar'
|
38
|
+
require './test/tmobjects'
|
39
|
+
require './test/tmreference'
|
40
|
+
require './test/tmposition'
|
41
|
+
require './test/calendartypes'
|
42
|
+
require './test/inspect'
|
43
|
+
require './test/googlecalendar'
|
44
|
+
require './test/region/m17n'
|
45
|
+
require './test/region/residue'
|
46
|
+
require './test/region/japanese'
|
47
|
+
require './test/region/chinese'
|
48
|
+
require './test/region/tibetan'
|
49
|
+
require './test/region/thai'
|
50
|
+
require './test/region/indian'
|
51
|
+
require './test/region/iran'
|
52
|
+
require './test/region/mayan'
|
53
|
+
require './test/region/jewish'
|
54
|
+
require './test/region/french'
|
data/test/test.rb.config
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
#@:xxxxxxxx:********
|
@@ -0,0 +1,368 @@
|
|
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
|
+
module BasicTypes
|
12
|
+
|
13
|
+
#
|
14
|
+
# ISO 8601 Date and Time Representation
|
15
|
+
#
|
16
|
+
class DateTime < Unit::TestCase
|
17
|
+
|
18
|
+
def test__to_array_assert
|
19
|
+
assert_raises(TypeError) { When::BasicTypes::DateTime._to_array(1) }
|
20
|
+
assert_raises(ArgumentError) { When::BasicTypes::DateTime._to_array("") }
|
21
|
+
end
|
22
|
+
|
23
|
+
def test__x0301_5_2_1
|
24
|
+
[ # 5.2.1 暦日付
|
25
|
+
["19850412", [ 0, "1985-04-12"]], # 1 完全表記 基本形式
|
26
|
+
["1985-04-12", [ 0, "1985-04-12"]], # 1 完全表記 拡張形式
|
27
|
+
["1985-04", [-1, "1985-04" ]], # 2 a) 下位省略表記 特定の月 基本形式
|
28
|
+
["1985", [-2, "1985" ]], # 2 b) 下位省略表記 特定の年 基本形式
|
29
|
+
["19", [-4, "1900" ]], # 2 c) 下位省略表記 特定の百年台 基本形式
|
30
|
+
["850412", [ 0, "1985-04-12"]], # 3 a) 上位省略表記 ある百年代の特定の日 基本形式
|
31
|
+
["85-04-12", [ 0, "1985-04-12"]], # 3 a) 上位省略表記 ある百年代の特定の日 拡張形式
|
32
|
+
["-8504", [-1, "1985-04" ]], # 3 b) 上位省略表記 ある百年代の特定の月 基本形式
|
33
|
+
["-85-04", [-1, "1985-04" ]], # 3 b) 上位省略表記 ある百年代の特定の月 拡張形式
|
34
|
+
["-85", [-2, "1985" ]], # 3 c) 上位省略表記 ある百年代の特定の年 基本形式
|
35
|
+
["--0412", [ 0, "1985-04-12"]], # 3 d) 上位省略表記 ある年の特定の月日 基本形式
|
36
|
+
["--04-12", [ 0, "1985-04-12"]], # 3 d) 上位省略表記 ある年の特定の月日 拡張形式
|
37
|
+
["--04", [-1, "1985-04" ]], # 3 e) 上位省略表記 ある年の特定の月 基本形式
|
38
|
+
["---12", [ 0, "1985-04-12"]], # 3 f) 上位省略表記 ある月の特定の日 基本形式
|
39
|
+
["+0019850412", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 基本形式
|
40
|
+
["+001985-04-12", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 拡張形式
|
41
|
+
["+001985-04", [-1, "1985-04" ]], # 4 b) 拡大表記 特定の月 基本形式
|
42
|
+
["+001985", [-2, "1985" ]], # 4 c) 拡大表記 特定の年 基本形式
|
43
|
+
["+0019", [-4, "1900" ]], # 4 d) 拡大表記 特定の百年代 基本形式
|
44
|
+
].each do |sample|
|
45
|
+
date = When.when?(sample[0], {:abbr=>[1985,4,12]})
|
46
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test__x0301_5_2_2
|
51
|
+
[ # 5.2.2 年間通算日
|
52
|
+
["1985102", [ 0, "1985-04-12"]], # 1 完全表記 基本形式
|
53
|
+
["1985-102", [ 0, "1985-04-12"]], # 1 完全表記 拡張形式
|
54
|
+
["85102", [ 0, "1985-04-12"]], # 2 a) 上位省略表記 ある百年代の特定の年日 基本形式
|
55
|
+
["85-102", [ 0, "1985-04-12"]], # 2 a) 上位省略表記 ある百年代の特定の年日 拡張形式
|
56
|
+
["-102", [ 0, "1985-04-12"]], # 2 b) 上位省略表記 ある年の特定の日 基本形式
|
57
|
+
["+001985102", [ 0, "1985-04-12"]], # 3 a) 拡大表記 特定の日 基本形式
|
58
|
+
["+001985-102", [ 0, "1985-04-12"]], # 3 a) 拡大表記 特定の日 拡張形式
|
59
|
+
].each do |sample|
|
60
|
+
date = When.when?(sample[0], {:abbr=>[1985,4,12]})
|
61
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def test__x0301_5_2_3
|
66
|
+
[ # 5.2.3 暦週日付
|
67
|
+
["1985W155", [ 0, "1985-04-12"]], # 1 完全表記 基本形式
|
68
|
+
["1985-W15-5", [ 0, "1985-04-12"]], # 1 完全表記 拡張形式
|
69
|
+
["1985W15", [ 0, "1985-04-08...1985-04-15"]], # 2 a) 下位省略表記 基本形式
|
70
|
+
["1985-W15", [ 0, "1985-04-08...1985-04-15"]], # 2 a) 下位省略表記 拡張形式
|
71
|
+
["85W155", [ 0, "1985-04-12"]], # 3 a) 上位省略表記 ある百年代における年週日 基本形式
|
72
|
+
["85-W15-5", [ 0, "1985-04-12"]], # 3 a) 上位省略表記 ある百年代における年週日 拡張形式
|
73
|
+
["85W15", [ 0, "1985-04-08...1985-04-15"]], # 3 b) 上位省略表記 ある百年代における年週 基本形式
|
74
|
+
["85-W15", [ 0, "1985-04-08...1985-04-15"]], # 3 b) 上位省略表記 ある百年代における年週 拡張形式
|
75
|
+
["-5W155", [ 0, "1985-04-12"]], # 3 c) 上位省略表記 ある十年代における年週日 基本形式
|
76
|
+
["-5-W15-5", [ 0, "1985-04-12"]], # 3 c) 上位省略表記 ある十年代における年週日 拡張形式
|
77
|
+
["-5W15", [ 0, "1985-04-08...1985-04-15"]], # 3 d) 上位省略表記 ある十年代における年週 基本形式
|
78
|
+
["-5-W15", [ 0, "1985-04-08...1985-04-15"]], # 3 d) 上位省略表記 ある十年代における年週 拡張形式
|
79
|
+
["-W155", [ 0, "1985-04-12"]], # 3 e) 上位省略表記 ある年の週日 基本形式
|
80
|
+
["-W15-5", [ 0, "1985-04-12"]], # 3 e) 上位省略表記 ある年の週日 拡張形式
|
81
|
+
["-W15", [ 0, "1985-04-08...1985-04-15"]], # 3 f) 上位省略表記 ある年の週 基本形式
|
82
|
+
["-W-5", [ 0, "1985-04-12"]], # 3 g) 上位省略表記 ある週の日 基本形式
|
83
|
+
["+001985W155", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 基本形式
|
84
|
+
["+001985-W15-5", [ 0, "1985-04-12"]], # 4 a) 拡大表記 特定の日 拡張形式
|
85
|
+
["+001985W15", [ 0, "1985-04-08...1985-04-15"]], # 4 b) 拡大表記 特定の週 基本形式
|
86
|
+
["+001985-W15",[ 0, "1985-04-08...1985-04-15"]], # 4 c) 拡大表記 特定の週 拡張形式
|
87
|
+
].each do |sample|
|
88
|
+
date = When.when?(sample[0], {:abbr=>[1985,15,5]})
|
89
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def test__x0301_5_2_4
|
94
|
+
[ # 5.2.4 元号による日付
|
95
|
+
["60.04.12", [ 0, "S60(1985).04.12"]], # 1 完全表記 基本形式
|
96
|
+
["S60.04.12", [ 0, "S60(1985).04.12"]], # 1 完全表記 拡張形式
|
97
|
+
].each do |sample|
|
98
|
+
date = When.when?(sample[0], {:era_name=>'S'})
|
99
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def test__x0301_5_3_1
|
104
|
+
When::TM::Clock.local_time = When.utc
|
105
|
+
|
106
|
+
[ # 5.3.1 地方時の時刻
|
107
|
+
["T232050", [ 3, "T23:20:50" ]], # 1 完全表記 基本形式
|
108
|
+
["T23:20:50", [ 3, "T23:20:50" ]], # 1 完全表記 拡張形式
|
109
|
+
["T2320", [ 2, "T23:20" ]], # 2 a) 下位省略表記 特定の時分 基本形式
|
110
|
+
["T23:20", [ 2, "T23:20" ]], # 2 a) 下位省略表記 特定の時分 拡張形式
|
111
|
+
["T23", [ 1, "T23" ]], # 2 b) 下位省略表記 特定の時 基本形式
|
112
|
+
].each do |sample|
|
113
|
+
date = When.when?(sample[0])
|
114
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
115
|
+
end
|
116
|
+
|
117
|
+
[ # 3 小数点を用いる表記
|
118
|
+
["T232050.5", 4, [ 4, "T23:20:50.5" ]], # a) 特定の時分秒及び秒の小数部分 基本形式
|
119
|
+
["T152735,5", 4, [ 4, "T15:27:35.5" ]], # a) 特定の時分秒及び秒の小数部分 基本形式
|
120
|
+
["T23:20:50.5", 4, [ 4, "T23:20:50.5" ]], # a) 特定の時分秒及び秒の小数部分 拡張形式
|
121
|
+
["T2320.8", 3, [ 3, "T23:20:48" ]], # b) 特定の時分及び分の小数部分 基本形式
|
122
|
+
["T23:20.8", 3, [ 3, "T23:20:48" ]], # b) 特定の時分及び分の小数部分 拡張形式
|
123
|
+
["T23.3", 2, [ 2, "T23:18" ]], # c) 特定の時及び時の小数部分 基本形式
|
124
|
+
].each do |sample|
|
125
|
+
date = When.when?(sample[0], {:precision=>sample[1]})
|
126
|
+
assert_equal(sample[2], [date.precision, date.to_s])
|
127
|
+
end
|
128
|
+
|
129
|
+
[ # 4 上位省略表記
|
130
|
+
["T-2050", [ 3, "T23:20:50" ]], # a) ある時“hour”における特定の分秒 基本形式
|
131
|
+
["T-:20:50", [ 3, "T23:20:50" ]], # a) ある時“hour”における特定の分秒 拡張形式
|
132
|
+
["T-20", [ 2, "T23:20" ]], # b) ある時“hour”における特定の分 基本形式
|
133
|
+
["T--50", [ 3, "T23:20:50" ]], # c) ある分の特定の秒 基本形式
|
134
|
+
].each do |sample|
|
135
|
+
date = When.when?(sample[0], {:abbr=>[1985,4,12,23,20,50]})
|
136
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
137
|
+
end
|
138
|
+
|
139
|
+
[ # 4 小数点を用いる上位省略表記
|
140
|
+
["T-2050.5", 4, [ 4, "T23:20:50.5" ]], # a) ある時“hour”における特定の分秒 基本形式
|
141
|
+
["T-2735,5", 4, [ 4, "T23:27:35.5" ]], # a) ある時“hour”における特定の分秒 基本形式
|
142
|
+
["T-:20:50.5", 4, [ 4, "T23:20:50.5" ]], # a) ある時“hour”における特定の分秒 拡張形式
|
143
|
+
["T-20.8", 3, [ 3, "T23:20:48" ]], # b) ある時“hour”における特定の分 基本形式
|
144
|
+
["T--50.5", 4, [ 4, "T23:20:50.5" ]], # c) ある分の特定の秒 基本形式
|
145
|
+
].each do |sample|
|
146
|
+
date = When.when?(sample[0], {:abbr=>[1985,4,12,23,20,50], :precision=>sample[1]})
|
147
|
+
assert_equal(sample[2], [date.precision, date.to_s])
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def test__x0301_5_3_2
|
152
|
+
When::TM::Clock.local_time = When.Clock("+0900")
|
153
|
+
[ # 5.3.2 夜の12時
|
154
|
+
["19850412T240000", [ 3, "1985-04-13T00:00:00"]], # 完全表記 基本形式
|
155
|
+
["1985-04-12T24:00:00", [ 3, "1985-04-13T00:00:00"]], # 完全表記 拡張形式
|
156
|
+
["19850412T2400", [ 2, "1985-04-13T00:00" ]], # 下位省略表記 基本形式
|
157
|
+
["1985-04-12T24:00", [ 2, "1985-04-13T00:00" ]], # 下位省略表記 拡張形式
|
158
|
+
].each do |sample|
|
159
|
+
date = When.when?(sample[0])
|
160
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def test__x0301_5_3_3
|
165
|
+
[ # 5.3.3 協定世界時(UTC)の時刻
|
166
|
+
["T232050Z", [ 3, "T23:20:50Z" ]], # 1 完全表記 基本形式
|
167
|
+
["T23:20:50Z", [ 3, "T23:20:50Z" ]], # 1 完全表記 拡張形式
|
168
|
+
["T2320Z", [ 2, "T23:20Z" ]], # 2 a) 下位省略表記 特定の時分 基本形式
|
169
|
+
["T23:20Z", [ 2, "T23:20Z" ]], # 2 a) 下位省略表記 特定の時分 拡張形式
|
170
|
+
["T23Z", [ 1, "T23Z" ]], # 2 b) 下位省略表記 特定の時 基本形式
|
171
|
+
].each do |sample|
|
172
|
+
date = When.when?(sample[0])
|
173
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
174
|
+
end
|
175
|
+
|
176
|
+
[ # 3 小数点を用いる表記
|
177
|
+
["T232050.5Z", 4, [ 4, "T23:20:50.5Z" ]], # a) 特定の時分秒及び秒の小数部分 基本形式
|
178
|
+
["T23:20:50.5Z",4, [ 4, "T23:20:50.5Z" ]], # a) 特定の時分秒及び秒の小数部分 拡張形式
|
179
|
+
["T2320.8Z", 3, [ 3, "T23:20:48Z" ]], # b) 特定の時分及び分の小数部分 基本形式
|
180
|
+
["T23:20.8Z", 3, [ 3, "T23:20:48Z" ]], # b) 特定の時分及び分の小数部分 拡張形式
|
181
|
+
["T23.3Z", 2, [ 2, "T23:18Z" ]], # c) 特定の時及び時の小数部分 基本形式
|
182
|
+
].each do |sample|
|
183
|
+
date = When.when?(sample[0], {:precision=>sample[1]})
|
184
|
+
assert_equal(sample[2], [date.precision, date.to_s])
|
185
|
+
end
|
186
|
+
|
187
|
+
[ # 4 上位省略表記
|
188
|
+
["T-2050Z", [ 3, "T23:20:50Z" ]], # a) ある時“hour”における特定の分秒 基本形式
|
189
|
+
["T-:20:50Z", [ 3, "T23:20:50Z" ]], # a) ある時“hour”における特定の分秒 拡張形式
|
190
|
+
["T-20Z", [ 2, "T23:20Z" ]], # b) ある時“hour”における特定の分 基本形式
|
191
|
+
["T--50Z", [ 3, "T23:20:50Z" ]], # c) ある分の特定の秒 基本形式
|
192
|
+
].each do |sample|
|
193
|
+
date = When.when?(sample[0], {:abbr=>[1985,4,12,23,20,50]})
|
194
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
195
|
+
end
|
196
|
+
|
197
|
+
[ # 4 小数点を用いる上位省略表記
|
198
|
+
["T-2050.5Z", 4, [ 4, "T23:20:50.5Z" ]], # a) ある時“hour”における特定の分秒 基本形式
|
199
|
+
["T-:20:50.5Z", 4, [ 4, "T23:20:50.5Z" ]], # a) ある時“hour”における特定の分秒 拡張形式
|
200
|
+
["T-20.8Z", 3, [ 3, "T23:20:48Z" ]], # b) ある時“hour”における特定の分 基本形式
|
201
|
+
["T--50.5Z", 4, [ 4, "T23:20:50.5Z" ]], # c) ある分の特定の秒 基本形式
|
202
|
+
].each do |sample|
|
203
|
+
date = When.when?(sample[0], {:abbr=>[1985,4,12,23,20,50], :precision=>sample[1]})
|
204
|
+
assert_equal(sample[2], [date.precision, date.to_s])
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
def test__x0301_5_3_4
|
209
|
+
[ # 5.3.4 地方時及び協定世界時
|
210
|
+
["T+0100", [ 0, "T+01:00" ]], # 1 地方時と協定世界時との差(時差の表記) 基本形式
|
211
|
+
["T+01", [ 0, "T+01:00" ]], # 1 地方時と協定世界時との差(時差の表記) 基本形式
|
212
|
+
["T+01:00", [ 0, "T+01:00" ]], # 1 地方時と協定世界時との差(時差の表記) 拡張形式
|
213
|
+
["T152746+0100", [ 3, "T15:27:46+01:00" ]], # 2 地方時と協定世界時との差(地方時の表記) 基本形式
|
214
|
+
["T152746-0500", [ 3, "T15:27:46-05:00" ]], # 2 地方時と協定世界時との差(地方時の表記) 基本形式
|
215
|
+
["T152746+01", [ 3, "T15:27:46+01:00" ]], # 2 地方時と協定世界時との差(地方時の表記) 基本形式
|
216
|
+
["T152746-05", [ 3, "T15:27:46-05:00" ]], # 2 地方時と協定世界時との差(地方時の表記) 基本形式
|
217
|
+
["T15:27:46+01:00", [ 3, "T15:27:46+01:00" ]], # 2 地方時と協定世界時との差(地方時の表記) 拡張形式
|
218
|
+
["T15:27:46-05:00", [ 3, "T15:27:46-05:00" ]], # 2 地方時と協定世界時との差(地方時の表記) 拡張形式
|
219
|
+
["T15:27:46+01", [ 3, "T15:27:46+01:00" ]], # 2 地方時と協定世界時との差(地方時の表記) 拡張形式
|
220
|
+
["T15:27:46-05", [ 3, "T15:27:46-05:00" ]], # 2 地方時と協定世界時との差(地方時の表記) 拡張形式
|
221
|
+
].each do |sample|
|
222
|
+
date = When.when?(sample[0])
|
223
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
def test__x0301_5_4_2
|
228
|
+
When::TM::Clock.local_time = When.Clock("+0900")
|
229
|
+
[ # 5.4.2 完全表記以外の表記
|
230
|
+
["19850412T1015", [ 2, "1985-04-12T10:15" ]], # a) 暦日付及び地方時 基本形式
|
231
|
+
["1985-04-12T10:15", [ 2, "1985-04-12T10:15" ]], # a) 暦日付及び地方時 拡張形式
|
232
|
+
["1985102T1015Z", [ 2, "1985-04-12T10:15Z" ]], # b) 年間通算日及び協定世界時 基本形式
|
233
|
+
["1985-102T10:15Z", [ 2, "1985-04-12T10:15Z" ]], # b) 年間通算日及び協定世界時 拡張形式
|
234
|
+
["1985W155T1015+0400", [ 2, "1985-04-12T10:15+04:00" ]], # c) 暦週日付,地方時,及びUTCとの差 基本形式
|
235
|
+
["1985-W15-5T10:15+04:00",[ 2, "1985-04-12T10:15+04:00" ]], # c) 暦週日付,地方時,及びUTCとの差 拡張形式
|
236
|
+
].each do |sample|
|
237
|
+
date = When.when?(sample[0])
|
238
|
+
assert_equal(sample[1], [date.precision, date.to_s])
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
def test__x0301_5_5_4
|
243
|
+
When::TM::Clock.local_time = When.Clock("+0900") # 時間間隔の表記
|
244
|
+
[ # 5.5.4 完全表記
|
245
|
+
["19850412T232050/19850625T103000", "1985-04-12T23:20:50..1985-06-25T10:30:00" ], # 1 始点及び終点 基本形式
|
246
|
+
["1985-04-12T23:20:50/1985-06-25T10:30:00", "1985-04-12T23:20:50..1985-06-25T10:30:00" ], # 1 始点及び終点 拡張形式
|
247
|
+
["P2Y10M15DT10H30M20S", "P2Y10M15DT10H30M20S" ], # 2.1 時間の単位の指示記号付
|
248
|
+
["P6W", "P6W" ], # 2.1 時間の単位の指示記号付
|
249
|
+
["P1Y6M", "P1Y6M" ], # 2.1 時間の単位の指示記号付
|
250
|
+
["PT72H", "PT72H" ], # 2.1 時間の単位の指示記号付
|
251
|
+
["P00021015T103020", "P2Y10M15DT10H30M20S" ], # 2.2 代用形式 基本形式
|
252
|
+
["P0001-06", "P1Y6M" ], # 2.2 代用形式 基本形式
|
253
|
+
["P010600", "P1Y6M" ], # 2.2 代用形式 基本形式
|
254
|
+
["P0002-10-15T10:30:20", "P2Y10M15DT10H30M20S" ], # 2.2 代用形式 拡張形式
|
255
|
+
["19850412T232050/P1Y2M15DT12H30M0S", "1985-04-12T23:20:50...1986-06-28T11:50:50"], # 3 始点及び時間長 基本形式
|
256
|
+
["19850412T232050/P00010215T123000", "1985-04-12T23:20:50...1986-06-28T11:50:50"], # 3 始点及び時間長 基本形式
|
257
|
+
["1985-04-12T23:20:50/P1Y2M15DT12H30M0S", "1985-04-12T23:20:50...1986-06-28T11:50:50"], # 3 始点及び時間長 拡張形式
|
258
|
+
["1985-04-12T23:20:50/P0001-02-15T12:30:00","1985-04-12T23:20:50...1986-06-28T11:50:50"], # 3 始点及び時間長 拡張形式
|
259
|
+
["P1Y2M15DT12H30M0S/19850412T232050", "1984-01-28T10:50:50..1985-04-12T23:20:50" ], # 4 時間長及び終点 基本形式
|
260
|
+
["P00010215T123000/19850412T232050", "1984-01-28T10:50:50..1985-04-12T23:20:50" ], # 4 時間長及び終点 基本形式
|
261
|
+
["P1Y2M15DT12H30M0S/1985-04-12T23:20:50", "1984-01-28T10:50:50..1985-04-12T23:20:50" ], # 4 時間長及び終点 拡張形式
|
262
|
+
["P0001-02-15T12:30:00/1985-04-12T23:20:50","1984-01-28T10:50:50..1985-04-12T23:20:50" ], # 4 時間長及び終点 拡張形式
|
263
|
+
].each do |sample|
|
264
|
+
assert_equal(sample[1], When.when?(sample[0]).to_s)
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
def test__x0301_5_6_3
|
269
|
+
When::TM::Clock.local_time = When.Clock("+0900") # 反復時間間隔の表記
|
270
|
+
[ # 5.6.3 完全表記
|
271
|
+
["R2/19850412T232050/19850625T103000", ["1985-04-12T23:20:50","1985-06-25T10:30:00"]], # 始点及び終点
|
272
|
+
["R2/P2Y10M15DT10H30M20S", ["P2Y10M15DT10H30M20S","P2Y10M15DT10H30M20S"]], # 時間間隔
|
273
|
+
["R2/19850412T232050/P1Y2M15DT12H30M0S", ["1985-04-12T23:20:50","1986-06-28T11:50:50"]], # 始点及び時間間隔
|
274
|
+
["R2/P1Y2M15DT12H30M0S/19850412T232050", ["1984-01-28T10:50:50","1985-04-12T23:20:50"]], # 時間間隔及び終点
|
275
|
+
].each do |sample|
|
276
|
+
event = When.when?(sample[0])
|
277
|
+
sample[1].each do |date|
|
278
|
+
assert_equal(date, event.shift.to_s)
|
279
|
+
end
|
280
|
+
end
|
281
|
+
[ # 5.6.3 完全表記
|
282
|
+
["R/19850412T232050/19850625T103000", ["1985-04-12T23:20:50","1985-06-25T10:30:00"]], # 始点及び終点
|
283
|
+
["R/19850412T232050/P1Y2M15DT12H30M0S", ["1985-04-12T23:20:50","1986-06-28T11:50:50"]], # 始点及び時間間隔
|
284
|
+
].each do |sample|
|
285
|
+
event = When.when?(sample[0]).each
|
286
|
+
sample[1].each do |date|
|
287
|
+
assert_equal(date, event.succ.to_s)
|
288
|
+
end
|
289
|
+
end
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
#
|
294
|
+
# ISO 8601 Date Representation
|
295
|
+
#
|
296
|
+
class Date < Unit::TestCase
|
297
|
+
def test__to_array_basic_ISO8601
|
298
|
+
assert_equal([nil, [1985,4,12]], When::BasicTypes::Date._to_array_basic_ISO8601('19850412'))
|
299
|
+
assert_equal([nil, [1985]], When::BasicTypes::Date._to_array_basic_ISO8601('1985'))
|
300
|
+
assert_equal([:century, [1900]], When::BasicTypes::Date._to_array_basic_ISO8601('19'))
|
301
|
+
end
|
302
|
+
|
303
|
+
def test__to_array_extended_ISO8601
|
304
|
+
assert_equal([nil, [1985,4,12]], When::BasicTypes::Date._to_array_extended_ISO8601('1985-04-12'))
|
305
|
+
assert_equal([nil, [1985,4]], When::BasicTypes::Date._to_array_extended_ISO8601('1985-04'))
|
306
|
+
# assert_equal([19,nil,nil], When::BasicTypes::Date._to_array_extended_ISO8601('19'))
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
#
|
311
|
+
# ISO 8601 Time Representation
|
312
|
+
#
|
313
|
+
class Time < Unit::TestCase
|
314
|
+
def test_nothing
|
315
|
+
end
|
316
|
+
end
|
317
|
+
|
318
|
+
#
|
319
|
+
# M17n String
|
320
|
+
#
|
321
|
+
class M17n < Unit::TestCase
|
322
|
+
Term1 = When::BasicTypes::M17n.new('Tokyo', 'zip')
|
323
|
+
Term2 = When::BasicTypes::M17n.new(<<LABEL, <<NS, <<LOCALE)
|
324
|
+
[
|
325
|
+
Getsuyou
|
326
|
+
Monday
|
327
|
+
]
|
328
|
+
LABEL
|
329
|
+
ISO, jwiki=http://ja.wikipedia.org/wiki/, ewiki=http://en.wikipedia.org/wiki/
|
330
|
+
NS
|
331
|
+
=jwiki:, en=ewiki:
|
332
|
+
LOCALE
|
333
|
+
Term3 = When.Resource('_co:CommonResidue::Week::Monday::Monday')
|
334
|
+
|
335
|
+
def test__code_space
|
336
|
+
assert_equal('zip', Term1.codeSpace)
|
337
|
+
assert_equal("ISO", Term2.codeSpace)
|
338
|
+
assert_equal(nil, Term3.codeSpace)
|
339
|
+
end
|
340
|
+
|
341
|
+
def test__label
|
342
|
+
assert_equal("Getsuyou", Term2.label)
|
343
|
+
assert_equal(String, Term2.label.class)
|
344
|
+
assert_equal("Monday", Term3.label)
|
345
|
+
end
|
346
|
+
end
|
347
|
+
|
348
|
+
class Object < Unit::TestCase
|
349
|
+
def test_nothing
|
350
|
+
end
|
351
|
+
end
|
352
|
+
|
353
|
+
end
|
354
|
+
|
355
|
+
module RS
|
356
|
+
class Identifier < Unit::TestCase
|
357
|
+
def test_nothing
|
358
|
+
end
|
359
|
+
end
|
360
|
+
end
|
361
|
+
|
362
|
+
module EX
|
363
|
+
class Extent < Unit::TestCase
|
364
|
+
def test_nothing
|
365
|
+
end
|
366
|
+
end
|
367
|
+
end
|
368
|
+
end
|