when_exe 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +171 -0
  3. data/lib/when_exe.rb +78 -47
  4. data/lib/when_exe/basictypes.rb +752 -747
  5. data/lib/when_exe/calendarnote.rb +805 -801
  6. data/lib/when_exe/calendartypes.rb +1583 -1531
  7. data/lib/when_exe/coordinates.rb +16 -15
  8. data/lib/when_exe/core/duration.rb +114 -110
  9. data/lib/when_exe/core/extension.rb +504 -504
  10. data/lib/when_exe/ephemeris.rb +1917 -1913
  11. data/lib/when_exe/ephemeris/moon.rb +333 -333
  12. data/lib/when_exe/ephemeris/notes.rb +389 -387
  13. data/lib/when_exe/ephemeris/planets.rb +585 -585
  14. data/lib/when_exe/ephemeris/sun.rb +214 -214
  15. data/lib/when_exe/googlecalendar.rb +144 -140
  16. data/lib/when_exe/icalendar.rb +1636 -1636
  17. data/lib/when_exe/inspect.rb +46 -22
  18. data/lib/when_exe/locales/akt.rb +176 -176
  19. data/lib/when_exe/locales/encoding_conversion.rb +134 -126
  20. data/lib/when_exe/locales/iast.rb +90 -90
  21. data/lib/when_exe/locales/locale.rb +750 -746
  22. data/lib/when_exe/locales/transliteration_table.rb +62 -62
  23. data/lib/when_exe/mini_application.rb +307 -305
  24. data/lib/when_exe/parts/enumerator.rb +2 -2
  25. data/lib/when_exe/parts/geometric_complex.rb +397 -397
  26. data/lib/when_exe/parts/method_cash.rb +224 -224
  27. data/lib/when_exe/parts/resource.rb +1069 -1071
  28. data/lib/when_exe/parts/timezone.rb +240 -230
  29. data/lib/when_exe/region/armenian.rb +56 -56
  30. data/lib/when_exe/region/babylonian.rb +405 -0
  31. data/lib/when_exe/region/bahai.rb +146 -146
  32. data/lib/when_exe/region/balinese.rb +622 -622
  33. data/lib/when_exe/region/chinese.rb +95 -25
  34. data/lib/when_exe/region/chinese/calendars.rb +1016 -1016
  35. data/lib/when_exe/region/chinese/epochs.rb +1 -1
  36. data/lib/when_exe/region/chinese/twins.rb +803 -795
  37. data/lib/when_exe/region/christian.rb +824 -824
  38. data/lib/when_exe/region/coptic.rb +106 -87
  39. data/lib/when_exe/region/discordian.rb +225 -225
  40. data/lib/when_exe/region/far_east.rb +188 -188
  41. data/lib/when_exe/region/french.rb +56 -56
  42. data/lib/when_exe/region/geologicalage.rb +639 -639
  43. data/lib/when_exe/region/goddess.rb +58 -58
  44. data/lib/when_exe/region/indian.rb +1254 -1251
  45. data/lib/when_exe/region/iranian.rb +8 -8
  46. data/lib/when_exe/region/islamic.rb +3 -3
  47. data/lib/when_exe/region/japanese.rb +93 -99
  48. data/lib/when_exe/region/japanese/calendars.rb +396 -397
  49. data/lib/when_exe/region/japanese/epochs.rb +26 -26
  50. data/lib/when_exe/region/japanese/nihon_shoki.rb +71 -71
  51. data/lib/when_exe/region/japanese/notes.rb +1383 -1386
  52. data/lib/when_exe/region/japanese/residues.rb +1306 -1306
  53. data/lib/when_exe/region/japanese/twins.rb +225 -225
  54. data/lib/when_exe/region/japanese/weeks.rb +112 -0
  55. data/lib/when_exe/region/javanese.rb +230 -230
  56. data/lib/when_exe/region/jewish.rb +126 -126
  57. data/lib/when_exe/region/korean.rb +378 -378
  58. data/lib/when_exe/region/m17n.rb +114 -113
  59. data/lib/when_exe/region/martian.rb +258 -255
  60. data/lib/when_exe/region/mayan.rb +32 -32
  61. data/lib/when_exe/region/residue.rb +89 -89
  62. data/lib/when_exe/region/roman.rb +36 -24
  63. data/lib/when_exe/region/ryukyu.rb +97 -97
  64. data/lib/when_exe/region/shire.rb +240 -240
  65. data/lib/when_exe/region/soviet.rb +209 -0
  66. data/lib/when_exe/region/symmetry.rb +50 -50
  67. data/lib/when_exe/region/thai.rb +336 -335
  68. data/lib/when_exe/region/tibetan.rb +316 -315
  69. data/lib/when_exe/region/vietnamese.rb +440 -439
  70. data/lib/when_exe/region/weekdate.rb +80 -80
  71. data/lib/when_exe/region/world.rb +175 -175
  72. data/lib/when_exe/region/yerm.rb +14 -14
  73. data/lib/when_exe/region/zoroastrian.rb +203 -203
  74. data/lib/when_exe/timestandard.rb +707 -681
  75. data/lib/when_exe/tmduration.rb +338 -330
  76. data/lib/when_exe/tmobjects.rb +1346 -1325
  77. data/lib/when_exe/tmposition.rb +2115 -2072
  78. data/lib/when_exe/tmreference.rb +1693 -1669
  79. data/lib/when_exe/version.rb +1 -1
  80. data/link_to_online_documents +1 -1
  81. data/test/examples/JapanHolidaysRFC6350.ics +1 -1
  82. data/test/test.rb +67 -61
  83. data/test/test/basictypes.rb +409 -409
  84. data/test/test/calendarnote.rb +86 -69
  85. data/test/test/calendartypes.rb +97 -97
  86. data/test/test/coordinates.rb +396 -396
  87. data/test/test/ephemeris.rb +83 -74
  88. data/test/test/ephemeris/moon.rb +14 -14
  89. data/test/test/ephemeris/planets.rb +14 -14
  90. data/test/test/ephemeris/sun.rb +14 -14
  91. data/test/test/googlecalendar.rb +194 -176
  92. data/test/test/icalendar.rb +867 -858
  93. data/test/test/inspect.rb +117 -117
  94. data/test/test/parts.rb +487 -487
  95. data/test/test/region/balinese.rb +34 -0
  96. data/test/test/region/chinese.rb +218 -206
  97. data/test/test/region/christian.rb +245 -245
  98. data/test/test/region/coptic.rb +27 -27
  99. data/test/test/region/french.rb +33 -33
  100. data/test/test/region/geologicalage.rb +17 -17
  101. data/test/test/region/indian.rb +57 -57
  102. data/test/test/region/iran.rb +54 -54
  103. data/test/test/region/islamic.rb +18 -18
  104. data/test/test/region/japanese.rb +237 -219
  105. data/test/test/region/jewish.rb +61 -61
  106. data/test/test/region/m17n.rb +184 -184
  107. data/test/test/region/mayan.rb +195 -195
  108. data/test/test/region/residue.rb +147 -139
  109. data/test/test/region/thai.rb +116 -116
  110. data/test/test/region/tibetan.rb +30 -30
  111. data/test/test/region/vietnamese.rb +102 -102
  112. data/test/test/region/yerm.rb +146 -146
  113. data/test/test/timestandard.rb +81 -81
  114. data/test/test/tmobjects.rb +328 -328
  115. data/test/test/tmposition.rb +397 -284
  116. data/test/test/tmreference.rb +157 -157
  117. metadata +13 -10
@@ -1,146 +1,146 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2014 Takashi SUGA
4
-
5
- You may use and/or modify this file according to the license
6
- described in the LICENSE.txt file included in this archive.
7
- =end
8
-
9
- module Test
10
-
11
- class Yerm < Test::Unit::TestCase
12
- Abbrs = [[], 21, [21,14], [21,14, 5]]
13
- Crecents = %w<
14
- -1(02(03(04
15
- 20(02(03(04
16
- -1-02(03(04
17
- 20-02(03(04
18
- -1-02(03
19
- 20-02(03
20
- -1-02
21
- 20-02
22
- -1-
23
- 20-
24
- -1
25
- 02(03(04
26
- 03(04
27
- 04
28
- 04)03)02)-1
29
- 04)03)02)20
30
- 04)03)02--1
31
- 04)03)02-20
32
- 03)02--1
33
- 03)02-20
34
- 02--1
35
- 04)03)02
36
- 04)03
37
- >
38
- Results = [
39
- [[], "-1(02(03(04", "-1-02-03-04"],
40
- [[], "20(02(03(04", "20-02-03-04"],
41
- [[], "-1-02(03(04", "-1-02-03-04"],
42
- [[], "20-02(03(04", "20-02-03-04"],
43
- [[], "-1-02(03", "-1-02-03"],
44
- [[], "20-02(03", "20-02-03"],
45
- [[], "-1-02", "-1-02"],
46
- [[], "20-02", "20-02"],
47
- [[], "-1-", "-1"],
48
- [[], "20-", "20"],
49
- [[], "-1", "-1"],
50
- [[], "02(03(04", :error],
51
- [[], "03(04", :error],
52
- [[], "04", :error],
53
- [[], "04)03)02)-1", "-1-02-03-04"],
54
- [[], "04)03)02)20", "20-02-03-04"],
55
- [[], "04)03)02--1", "-1-02-03-04"],
56
- [[], "04)03)02-20", "20-02-03-04"],
57
- [[], "03)02--1", "-1-02-03"],
58
- [[], "03)02-20", "20-02-03"],
59
- [[], "02--1", "-1-02"],
60
- [[], "04)03)02", :error],
61
- [[], "04)03", :error],
62
- [21, "-1(02(03(04", "-1-02-03-04"],
63
- [21, "20(02(03(04", "20-02-03-04"],
64
- [21, "-1-02(03(04", "-1-02-03-04"],
65
- [21, "20-02(03(04", "20-02-03-04"],
66
- [21, "-1-02(03", "-1-02-03"],
67
- [21, "20-02(03", "20-02-03"],
68
- [21, "-1-02", "-1-02"],
69
- [21, "20-02", "20-02"],
70
- [21, "-1-", "-1"],
71
- [21, "20-", "20"],
72
- [21, "-1", "-1"],
73
- [21, "02(03(04", "21-02-03-04"],
74
- [21, "03(04", :error],
75
- [21, "04", :error],
76
- [21, "04)03)02)-1", "-1-02-03-04"],
77
- [21, "04)03)02)20", "20-02-03-04"],
78
- [21, "04)03)02--1", "-1-02-03-04"],
79
- [21, "04)03)02-20", "20-02-03-04"],
80
- [21, "03)02--1", "-1-02-03"],
81
- [21, "03)02-20", "20-02-03"],
82
- [21, "02--1", "-1-02"],
83
- [21, "04)03)02", "21-02-03-04"],
84
- [21, "04)03", :error],
85
- [[21, 14], "-1(02(03(04", "-1-02-03-04"],
86
- [[21, 14], "20(02(03(04", "20-02-03-04"],
87
- [[21, 14], "-1-02(03(04", "-1-02-03-04"],
88
- [[21, 14], "20-02(03(04", "20-02-03-04"],
89
- [[21, 14], "-1-02(03", "-1-02-03"],
90
- [[21, 14], "20-02(03", "20-02-03"],
91
- [[21, 14], "-1-02", "-1-02"],
92
- [[21, 14], "20-02", "20-02"],
93
- [[21, 14], "-1-", "-1"],
94
- [[21, 14], "20-", "20"],
95
- [[21, 14], "-1", "-1"],
96
- [[21, 14], "02(03(04", "21-02-03-04"],
97
- [[21, 14], "03(04", "21-14-03-04"],
98
- [[21, 14], "04", :error],
99
- [[21, 14], "04)03)02)-1", "-1-02-03-04"],
100
- [[21, 14], "04)03)02)20", "20-02-03-04"],
101
- [[21, 14], "04)03)02--1", "-1-02-03-04"],
102
- [[21, 14], "04)03)02-20", "20-02-03-04"],
103
- [[21, 14], "03)02--1", "-1-02-03"],
104
- [[21, 14], "03)02-20", "20-02-03"],
105
- [[21, 14], "02--1", "-1-02"],
106
- [[21, 14], "04)03)02", "21-02-03-04"],
107
- [[21, 14], "04)03", "21-14-03-04"],
108
- [[21, 14, 5], "-1(02(03(04", "-1-02-03-04"],
109
- [[21, 14, 5], "20(02(03(04", "20-02-03-04"],
110
- [[21, 14, 5], "-1-02(03(04", "-1-02-03-04"],
111
- [[21, 14, 5], "20-02(03(04", "20-02-03-04"],
112
- [[21, 14, 5], "-1-02(03", "-1-02-03"],
113
- [[21, 14, 5], "20-02(03", "20-02-03"],
114
- [[21, 14, 5], "-1-02", "-1-02"],
115
- [[21, 14, 5], "20-02", "20-02"],
116
- [[21, 14, 5], "-1-", "-1"],
117
- [[21, 14, 5], "20-", "20"],
118
- [[21, 14, 5], "-1", "-1"],
119
- [[21, 14, 5], "02(03(04", "21-02-03-04"],
120
- [[21, 14, 5], "03(04", "21-14-03-04"],
121
- [[21, 14, 5], "04", "21-14-5-04"],
122
- [[21, 14, 5], "04)03)02)-1", "-1-02-03-04"],
123
- [[21, 14, 5], "04)03)02)20", "20-02-03-04"],
124
- [[21, 14, 5], "04)03)02--1", "-1-02-03-04"],
125
- [[21, 14, 5], "04)03)02-20", "20-02-03-04"],
126
- [[21, 14, 5], "03)02--1", "-1-02-03"],
127
- [[21, 14, 5], "03)02-20", "20-02-03"],
128
- [[21, 14, 5], "02--1", "-1-02"],
129
- [[21, 14, 5], "04)03)02", "21-02-03-04"],
130
- [[21, 14, 5], "04)03", "21-14-03-04"]]
131
-
132
- def test__parse_crecents
133
- results = []
134
- Abbrs.each do |abbr|
135
- Crecents.each do |crecent|
136
- begin
137
- results << [abbr, crecent, When::CalendarTypes::Yerm.parse(crecent, abbr)]
138
- rescue
139
- results << [abbr, crecent, :error]
140
- end
141
- end
142
- end
143
- assert_equal(Results, results)
144
- end
145
- end
146
- end
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 Yerm < MiniTest::TestCase
12
+ Abbrs = [[], 21, [21,14], [21,14, 5]]
13
+ Crecents = %w<
14
+ -1(02(03(04
15
+ 20(02(03(04
16
+ -1-02(03(04
17
+ 20-02(03(04
18
+ -1-02(03
19
+ 20-02(03
20
+ -1-02
21
+ 20-02
22
+ -1-
23
+ 20-
24
+ -1
25
+ 02(03(04
26
+ 03(04
27
+ 04
28
+ 04)03)02)-1
29
+ 04)03)02)20
30
+ 04)03)02--1
31
+ 04)03)02-20
32
+ 03)02--1
33
+ 03)02-20
34
+ 02--1
35
+ 04)03)02
36
+ 04)03
37
+ >
38
+ Results = [
39
+ [[], "-1(02(03(04", "-1-02-03-04"],
40
+ [[], "20(02(03(04", "20-02-03-04"],
41
+ [[], "-1-02(03(04", "-1-02-03-04"],
42
+ [[], "20-02(03(04", "20-02-03-04"],
43
+ [[], "-1-02(03", "-1-02-03"],
44
+ [[], "20-02(03", "20-02-03"],
45
+ [[], "-1-02", "-1-02"],
46
+ [[], "20-02", "20-02"],
47
+ [[], "-1-", "-1"],
48
+ [[], "20-", "20"],
49
+ [[], "-1", "-1"],
50
+ [[], "02(03(04", :error],
51
+ [[], "03(04", :error],
52
+ [[], "04", :error],
53
+ [[], "04)03)02)-1", "-1-02-03-04"],
54
+ [[], "04)03)02)20", "20-02-03-04"],
55
+ [[], "04)03)02--1", "-1-02-03-04"],
56
+ [[], "04)03)02-20", "20-02-03-04"],
57
+ [[], "03)02--1", "-1-02-03"],
58
+ [[], "03)02-20", "20-02-03"],
59
+ [[], "02--1", "-1-02"],
60
+ [[], "04)03)02", :error],
61
+ [[], "04)03", :error],
62
+ [21, "-1(02(03(04", "-1-02-03-04"],
63
+ [21, "20(02(03(04", "20-02-03-04"],
64
+ [21, "-1-02(03(04", "-1-02-03-04"],
65
+ [21, "20-02(03(04", "20-02-03-04"],
66
+ [21, "-1-02(03", "-1-02-03"],
67
+ [21, "20-02(03", "20-02-03"],
68
+ [21, "-1-02", "-1-02"],
69
+ [21, "20-02", "20-02"],
70
+ [21, "-1-", "-1"],
71
+ [21, "20-", "20"],
72
+ [21, "-1", "-1"],
73
+ [21, "02(03(04", "21-02-03-04"],
74
+ [21, "03(04", :error],
75
+ [21, "04", :error],
76
+ [21, "04)03)02)-1", "-1-02-03-04"],
77
+ [21, "04)03)02)20", "20-02-03-04"],
78
+ [21, "04)03)02--1", "-1-02-03-04"],
79
+ [21, "04)03)02-20", "20-02-03-04"],
80
+ [21, "03)02--1", "-1-02-03"],
81
+ [21, "03)02-20", "20-02-03"],
82
+ [21, "02--1", "-1-02"],
83
+ [21, "04)03)02", "21-02-03-04"],
84
+ [21, "04)03", :error],
85
+ [[21, 14], "-1(02(03(04", "-1-02-03-04"],
86
+ [[21, 14], "20(02(03(04", "20-02-03-04"],
87
+ [[21, 14], "-1-02(03(04", "-1-02-03-04"],
88
+ [[21, 14], "20-02(03(04", "20-02-03-04"],
89
+ [[21, 14], "-1-02(03", "-1-02-03"],
90
+ [[21, 14], "20-02(03", "20-02-03"],
91
+ [[21, 14], "-1-02", "-1-02"],
92
+ [[21, 14], "20-02", "20-02"],
93
+ [[21, 14], "-1-", "-1"],
94
+ [[21, 14], "20-", "20"],
95
+ [[21, 14], "-1", "-1"],
96
+ [[21, 14], "02(03(04", "21-02-03-04"],
97
+ [[21, 14], "03(04", "21-14-03-04"],
98
+ [[21, 14], "04", :error],
99
+ [[21, 14], "04)03)02)-1", "-1-02-03-04"],
100
+ [[21, 14], "04)03)02)20", "20-02-03-04"],
101
+ [[21, 14], "04)03)02--1", "-1-02-03-04"],
102
+ [[21, 14], "04)03)02-20", "20-02-03-04"],
103
+ [[21, 14], "03)02--1", "-1-02-03"],
104
+ [[21, 14], "03)02-20", "20-02-03"],
105
+ [[21, 14], "02--1", "-1-02"],
106
+ [[21, 14], "04)03)02", "21-02-03-04"],
107
+ [[21, 14], "04)03", "21-14-03-04"],
108
+ [[21, 14, 5], "-1(02(03(04", "-1-02-03-04"],
109
+ [[21, 14, 5], "20(02(03(04", "20-02-03-04"],
110
+ [[21, 14, 5], "-1-02(03(04", "-1-02-03-04"],
111
+ [[21, 14, 5], "20-02(03(04", "20-02-03-04"],
112
+ [[21, 14, 5], "-1-02(03", "-1-02-03"],
113
+ [[21, 14, 5], "20-02(03", "20-02-03"],
114
+ [[21, 14, 5], "-1-02", "-1-02"],
115
+ [[21, 14, 5], "20-02", "20-02"],
116
+ [[21, 14, 5], "-1-", "-1"],
117
+ [[21, 14, 5], "20-", "20"],
118
+ [[21, 14, 5], "-1", "-1"],
119
+ [[21, 14, 5], "02(03(04", "21-02-03-04"],
120
+ [[21, 14, 5], "03(04", "21-14-03-04"],
121
+ [[21, 14, 5], "04", "21-14-5-04"],
122
+ [[21, 14, 5], "04)03)02)-1", "-1-02-03-04"],
123
+ [[21, 14, 5], "04)03)02)20", "20-02-03-04"],
124
+ [[21, 14, 5], "04)03)02--1", "-1-02-03-04"],
125
+ [[21, 14, 5], "04)03)02-20", "20-02-03-04"],
126
+ [[21, 14, 5], "03)02--1", "-1-02-03"],
127
+ [[21, 14, 5], "03)02-20", "20-02-03"],
128
+ [[21, 14, 5], "02--1", "-1-02"],
129
+ [[21, 14, 5], "04)03)02", "21-02-03-04"],
130
+ [[21, 14, 5], "04)03", "21-14-03-04"]]
131
+
132
+ def test__parse_crecents
133
+ results = []
134
+ Abbrs.each do |abbr|
135
+ Crecents.each do |crecent|
136
+ begin
137
+ results << [abbr, crecent, When::CalendarTypes::Yerm.parse(crecent, abbr)]
138
+ rescue
139
+ results << [abbr, crecent, :error]
140
+ end
141
+ end
142
+ end
143
+ assert_equal(Results, results)
144
+ end
145
+ end
146
+ end
@@ -1,81 +1,81 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2011-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::TimeStandard
10
-
11
- class UniversalTime < Test::Unit::TestCase
12
- def view(time)
13
- return time unless time.instance_of?(When::Coordinates::LeapSeconds)
14
- return [time.trunk, time.branch, time.second]
15
- end
16
-
17
- def test__delta_t
18
- date = When.when?('2009-01-01T00:00:00Z')
19
- assert_equal("2008-12-31T23:59:01Z", (date - When::TM::IntervalLength.new(60, 'second')).to_s)
20
- assert_equal("2008-12-31T23:59:00Z", (date - When::Duration('PT60S')).to_s)
21
-
22
- date = When::TM::JulianDate.dynamical_time((2500000-(When::TM::JulianDate::JD19700101-0.5))*675)
23
- assert_equal(2500000.0, +date)
24
- assert_equal(true, +date > date.to_f)
25
-
26
- date = When::TM::JulianDate.universal_time((2500000-(When::TM::JulianDate::JD19700101-0.5))*675)
27
- assert_equal(2500000.0, date.to_f)
28
- assert_equal(true, +date > date.to_f)
29
-
30
- assert_equal((40 + 377.0/2048), When::TimeStandard.delta_t(When.when?('1970-01-01T').to_f))
31
-
32
- date = When.when?('2008-10-31T23:59:60Z')
33
- assert_equal([[2008, 11, 1], [0, 0, 0, 0]], [date.cal_date, date.clk_time.clk_time])
34
-
35
- pair = When::Coordinates::Pair.new(1,1)
36
- assert_equal([-1, -1, 1], [0.9, 1, 1.1].map {|v| v<=>pair})
37
-
38
- time = When.Resource('_t:UniversalTime')
39
- date0 = When.when?('2008-12-31T23:59:58Z') ^ When.Duration('1s') # Duration('PT1S')
40
- [
41
- "2008-12-31T23:59:58Z",
42
- "2008-12-31T23:59:59Z",
43
- "2008-12-31T23:59:60Z",
44
- "2009-01-01T00:00:00Z",
45
- "2009-01-01T00:00:01Z"
46
- ].each do |sample|
47
- date = date0.next
48
- assert_equal([sample, true], [date.to_s, date.universal_time == time.from_dynamical_time(date.dynamical_time)])
49
- end
50
-
51
- it = When::V::Event.new({
52
- 'rrule' => 'FREQ=MINUTELY;BYSECOND=59,60',
53
- 'dtstart' => '2008-12-31T23:58:59Z'
54
- }).each
55
-
56
- [
57
- "2008-12-31T23:58:59Z",
58
- "2008-12-31T23:59:59Z",
59
- "2009-01-01T00:00:59Z",
60
- "2009-01-01T00:01:59Z"
61
- ].each do |sample|
62
- assert_equal(sample, it.next.to_s)
63
- end
64
-
65
- it = When::V::Event.new({
66
- 'rrule' => 'FREQ=1s', #;BYSECOND=59,60',
67
- 'dtstart' => '2008-12-31T23:59:58Z'
68
- }).each
69
-
70
- [
71
- "2008-12-31T23:59:58Z",
72
- "2008-12-31T23:59:59Z",
73
- "2008-12-31T23:59:60Z",
74
- "2009-01-01T00:00:00Z",
75
- "2009-01-01T00:00:01Z"
76
- ].each do |sample|
77
- assert_equal(sample, it.next.to_s)
78
- end
79
- end
80
- end
81
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-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::TimeStandard
10
+
11
+ class UniversalTime < MiniTest::TestCase
12
+ def view(time)
13
+ return time unless time.instance_of?(When::Coordinates::LeapSeconds)
14
+ return [time.trunk, time.branch, time.second]
15
+ end
16
+
17
+ def test__delta_t
18
+ date = When.when?('2009-01-01T00:00:00Z')
19
+ assert_equal("2008-12-31T23:59:01Z", (date - When::TM::IntervalLength.new(60, 'second')).to_s)
20
+ assert_equal("2008-12-31T23:59:00Z", (date - When::Duration('PT60S')).to_s)
21
+
22
+ date = When::TM::JulianDate.dynamical_time((2500000-(When::TM::JulianDate::JD19700101-0.5))*675)
23
+ assert_equal(2500000.0, +date)
24
+ assert_equal(true, +date > date.to_f)
25
+
26
+ date = When::TM::JulianDate.universal_time((2500000-(When::TM::JulianDate::JD19700101-0.5))*675)
27
+ assert_equal(2500000.0, date.to_f)
28
+ assert_equal(true, +date > date.to_f)
29
+
30
+ assert_equal((40 + 377.0/2048), When::TimeStandard.delta_t(When.when?('1970-01-01T').to_f))
31
+
32
+ date = When.when?('2008-10-31T23:59:60Z')
33
+ assert_equal([[2008, 11, 1], [0, 0, 0, 0]], [date.cal_date, date.clk_time.clk_time])
34
+
35
+ pair = When::Coordinates::Pair.new(1,1)
36
+ assert_equal([-1, -1, 1], [0.9, 1, 1.1].map {|v| v<=>pair})
37
+
38
+ time = When.Resource('_t:UniversalTime')
39
+ date0 = When.when?('2008-12-31T23:59:58Z') ^ When.Duration('1s') # Duration('PT1S')
40
+ [
41
+ "2008-12-31T23:59:58Z",
42
+ "2008-12-31T23:59:59Z",
43
+ "2008-12-31T23:59:60Z",
44
+ "2009-01-01T00:00:00Z",
45
+ "2009-01-01T00:00:01Z"
46
+ ].each do |sample|
47
+ date = date0.next
48
+ assert_equal([sample, true], [date.to_s, date.universal_time == time.from_dynamical_time(date.dynamical_time)])
49
+ end
50
+
51
+ it = When::V::Event.new({
52
+ 'rrule' => 'FREQ=MINUTELY;BYSECOND=59,60',
53
+ 'dtstart' => '2008-12-31T23:58:59Z'
54
+ }).each
55
+
56
+ [
57
+ "2008-12-31T23:58:59Z",
58
+ "2008-12-31T23:59:59Z",
59
+ "2009-01-01T00:00:59Z",
60
+ "2009-01-01T00:01:59Z"
61
+ ].each do |sample|
62
+ assert_equal(sample, it.next.to_s)
63
+ end
64
+
65
+ it = When::V::Event.new({
66
+ 'rrule' => 'FREQ=1s', #;BYSECOND=59,60',
67
+ 'dtstart' => '2008-12-31T23:59:58Z'
68
+ }).each
69
+
70
+ [
71
+ "2008-12-31T23:59:58Z",
72
+ "2008-12-31T23:59:59Z",
73
+ "2008-12-31T23:59:60Z",
74
+ "2009-01-01T00:00:00Z",
75
+ "2009-01-01T00:00:01Z"
76
+ ].each do |sample|
77
+ assert_equal(sample, it.next.to_s)
78
+ end
79
+ end
80
+ end
81
+ end