equationoftime 4.1.7 → 4.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,17 @@
1
- # class Eot file = constants.rb
1
+ ##
2
+ # class Eot file = constants.rb:
2
3
  # has the constants used and more
4
+
3
5
  class Eot
4
- # Array result for time_julian_century default = [0.0, 0.0, 0.0, 0.0, 0.0]
5
- # A2000 = [0.0, 0.0, 0.0, 0.0, 0.0]
6
6
 
7
+ ##
7
8
  # Arc seconds in a degree = 3_600.0
9
+
8
10
  ARCSEC = 3_600.0
9
11
 
12
+ ##
10
13
  # Arc seconds in a degree = 3_600.0
14
+
11
15
  ASD = 3_600.0
12
16
 
13
17
  # Arc seconds in an hour = 240.0
@@ -25,31 +29,46 @@ class Eot
25
29
  # 2Pi = 6.283185307179586476925287
26
30
  # D2PI = 6.283185307179586476925287
27
31
 
32
+ ##
28
33
  # from desktop calculator DAS2R = 4.8481368110953599358991410235795e-6
34
+
29
35
  DAS2R = 4.8481368110953599358991410235795e-6
30
36
 
31
37
  # Astronomical unit (m) = 149597870e3
32
38
  # DAU = 149597870e3
33
39
 
40
+ ##
34
41
  # Hours in a day = 24.0
42
+
35
43
  DAY_HOURS = 24.0
36
44
 
45
+ ##
37
46
  # Minutes in a day = 1_440.0
47
+
38
48
  DAY_MINUTES = 1_440.0
39
49
 
50
+ ##
40
51
  # Seconds in a day = 86_400.0
52
+
41
53
  DAY_SECONDS = 86_400.0
42
54
 
55
+ ##
43
56
  # Seconds in a day = 86_400.0
57
+
44
58
  DAYSEC = 86_400.0
45
59
 
60
+ ##
46
61
  # Micro Seconds in a day = 86_400_000_000.0
62
+
47
63
  DAY_USECS = 86_400_000_000.0
48
64
 
65
+ ##
49
66
  # Speed of light (AU per day) = DAYSEC / AULT
50
67
  # DC = DAYSEC / AULT
51
68
 
69
+ ##
52
70
  # from desktop calculator D2R = 0.017453292519943295769236907684886
71
+
53
72
  D2R = 0.017453292519943295769236907684886
54
73
 
55
74
  # dint(A) - truncate to nearest whole number towards zero (double)
@@ -61,11 +80,15 @@ class Eot
61
80
  # dsign(A,B) - magnitude of A with sign of B (double)
62
81
  # dsign(A,B) = ((B)<0.0?-fabs(A):fabs(A))
63
82
 
83
+ ##
64
84
  # Reference epoch (J2000.0), Julian Date
65
85
  # Default Julian Number = 2451545.0
86
+
66
87
  DJ00 = 2_451_545.0
67
88
 
89
+ ##
68
90
  # Days per Julian century = 36525.0
91
+
69
92
  DJC = 36_525.0
70
93
 
71
94
  # Days per Julian millennium = 365250.0
@@ -94,7 +117,9 @@ class Eot
94
117
  # Seconds of time to radians = 7.272205216643039903848712e-5
95
118
  # DS2R = 7.272205216643039903848712e-5
96
119
 
120
+ ##
97
121
  # Default DateTime = DateTime.new( 2000, 01, 01, 12, 00, 00, "+00:00" )
122
+
98
123
  DT2000 = DateTime.new(2000, 01, 01, 12, 00, 00, '+00:00')
99
124
 
100
125
  # arc seconds degrees to radians = PI / 180.0 / ARCSEC
@@ -124,20 +149,32 @@ class Eot
124
149
  # 1858, 11, 17, 0.0 midnight start of calendar reform = 2400000.5
125
150
  # MJD0 = 2400000.5
126
151
 
152
+ ##
127
153
  # from desktop calculator PI = 3.1415926535897932384626433832795
154
+
128
155
  PI = 3.1415926535897932384626433832795
129
156
 
157
+ ##
130
158
  # 2Pi from Math module = Math::PI * 2.0
159
+
131
160
  P2 = PI * 2.0
132
161
 
162
+ ##
133
163
  # from desktop calculator R2D = 57.295779513082320876798154814105
164
+
134
165
  R2D = 57.295779513082320876798154814105
135
166
 
167
+ ##
136
168
  # from desktop calculator RTD = 0.015915494309189533576888376337251
169
+
137
170
  RTD = 0.015915494309189533576888376337251
138
171
 
172
+ ##
139
173
  # from desktop calculator Sidereal minutes =
140
174
  # 4.0 / 1.0027379093507953456536618754278
175
+ # probably 3.989 would be close enough because
176
+ # it's not that constant anyway
177
+
141
178
  SM = 4.0 / 1.0027379093507953456536618754278
142
179
 
143
180
  # Schwarzschild radius of the Sun (au) =
Binary file
@@ -1,9 +1,17 @@
1
- # class Eot file = times.rb
1
+ ##
2
+ # class Eot file = times.rb:
2
3
  # methods calculating times
4
+
3
5
  class Eot
6
+
7
+ ##
4
8
  # From times.rb:
9
+
5
10
  # Pass in an AJD number
6
11
  # Returns a DateTime object
12
+ # only DateTime#jd() to work with so
13
+ # add a half day to make it work.
14
+
7
15
  def ajd_to_datetime(ajd)
8
16
  DateTime.jd(ajd + 0.5)
9
17
  end
@@ -2,5 +2,5 @@
2
2
  # contains gem version
3
3
  class Eot
4
4
  # current version
5
- VERSION = '4.1.7'
5
+ VERSION = '4.1.8'
6
6
  end
@@ -0,0 +1,293 @@
1
+ # aliased_angles_spec.rb
2
+ gem 'minitest'
3
+ require 'minitest/autorun'
4
+
5
+ lib = File.expand_path('../../../lib', __FILE__)
6
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
7
+ require 'eot'
8
+
9
+ aliased_angles = Eot.new
10
+
11
+ describe 'tests ajd of 2456885.0 ' do
12
+
13
+ before(:each) do
14
+ aliased_angles.ajd = 2_456_885.0
15
+ ajd = aliased_angles.ajd
16
+ aliased_angles.ma_ta_set
17
+ # somtimes need date to check values somewhere else
18
+ aliased_angles.date = aliased_angles.ajd_to_datetime(ajd)
19
+ end
20
+
21
+ it 'expected 2_456_885.0 for aliased_angles.ajd 'do
22
+ assert_equal(2_456_885.0, aliased_angles.ajd)
23
+ end
24
+
25
+ it 'expected "2014-08-15T12:00:00+00:00" from \
26
+ aliased_angles.date.to_s ' do
27
+ assert_equal('2014-08-15T12:00:00+00:00', aliased_angles.date.to_s)
28
+ end
29
+
30
+ it 'expected 3.8508003966038915 from aliased_angles.ma 'do
31
+ assert_equal(3.8508003966038915, aliased_angles.ma)
32
+ end
33
+
34
+ it 'expected 2.4887103398436143 from \
35
+ aliased_angles.apparent_longitude()? ' do
36
+ assert_equal(2.4887103398436143, aliased_angles.apparent_longitude)
37
+ end
38
+
39
+ it 'expected -0.7943361570447028 from \
40
+ aliased_angles.cosine_apparent_longitude()? ' do
41
+ assert_equal(-0.7943361570447028, \
42
+ aliased_angles.cosine_apparent_longitude)
43
+ end
44
+
45
+ it 'expected -0.7943772759574919 from \
46
+ aliased_angles.cosine_true_longitude()? ' do
47
+ assert_equal(-0.7943772759574919, aliased_angles.cosine_true_longitude)
48
+ end
49
+
50
+ it 'expected 0.9175115346811911 from \
51
+ aliased_angles.cosine_true_obliquity()? ' do
52
+ assert_equal(0.9175115346811911, aliased_angles.cosine_true_obliquity)
53
+ end
54
+
55
+ it 'expected 0.24401410218543554 from \
56
+ aliased_angles.declination()? ' do
57
+ assert_equal(0.24401410218543554, aliased_angles.declination)
58
+ end
59
+
60
+ it 'expected -0.04103082558803539 from \
61
+ aliased_angles.delta_t_ecliptic()? ' do
62
+ assert_equal(-0.04103082558803539, aliased_angles.delta_t_ecliptic)
63
+ end
64
+
65
+ it 'expected 0.021413249720702462 from \
66
+ aliased_angles.delta_t_elliptic()? ' do
67
+ assert_equal(0.021413249720702462, aliased_angles.delta_t_elliptic)
68
+ end
69
+
70
+ it 'expected 0.016702468499021204 from \
71
+ aliased_angles.eccentricity_earth_orbit()? ' do
72
+ assert_equal(0.016702468499021204, \
73
+ aliased_angles.eccentricity_earth_orbit)
74
+ end
75
+
76
+ it 'expected -0.021413249720702462 from \
77
+ aliased_angles.equation_of_center()? ' do
78
+ assert_equal(-0.021413249720702462, aliased_angles.equation_of_center)
79
+ end
80
+
81
+ it 'expected 2.5101912804141424 from \
82
+ aliased_angles.geometric_mean_longitude()? ' do
83
+ assert_equal(2.5101912804141424, \
84
+ aliased_angles.geometric_mean_longitude)
85
+ end
86
+
87
+ it 'expected 1.5857841877939605 from \
88
+ aliased_angles.horizon_angle(1)? ' do
89
+ assert_equal(1.5857841877939605, aliased_angles.horizon_angle(1))
90
+ end
91
+
92
+ it 'expected 3.8508003966038915 from \
93
+ aliased_angles.mean_anomaly()? ' do
94
+ assert_equal(3.8508003966038915, aliased_angles.mean_anomaly)
95
+ end
96
+
97
+ it 'expected 2.510089864980358 from \
98
+ aliased_angles.mean_longitude_aries()? ' do
99
+ assert_equal(2.510089864980358, aliased_angles.mean_longitude_aries)
100
+ end
101
+
102
+ it 'expected 0.40905940254265843 from \
103
+ aliased_angles.mean_obliquity()? ' do
104
+ assert_equal(0.40905940254265843, aliased_angles.mean_obliquity)
105
+ end
106
+
107
+ it 'expected 0.40905940254265843 from \
108
+ aliased_angles.mean_obliquity_of_ecliptic()? ' do
109
+ assert_equal(0.40905940254265843, \
110
+ aliased_angles.mean_obliquity_of_ecliptic)
111
+ end
112
+
113
+ it 'expected 0.40901870461547685 from \
114
+ aliased_angles.obliquity_correction()? ' do
115
+ assert_equal(0.40901870461547685, aliased_angles.obliquity_correction)
116
+ end
117
+
118
+ it 'expected 2.5297411654316497 from \
119
+ aliased_angles.right_ascension()? ' do
120
+ assert_equal(2.5297411654316497, aliased_angles.right_ascension)
121
+ end
122
+
123
+ it 'expected 0.6074784519729512 from \
124
+ aliased_angles.sine_apparent_longitude()? ' do
125
+ assert_equal(0.6074784519729512, aliased_angles.sine_apparent_longitude)
126
+ end
127
+
128
+ it 'expected 0.6074246812917259 from \
129
+ aliased_angles.sine_true_longitude()? ' do
130
+ assert_equal(0.6074246812917259, aliased_angles.sine_true_longitude)
131
+ end
132
+
133
+ it 'expected 3.8293871468831893 from \
134
+ aliased_angles.true_anomaly()? ' do
135
+ assert_equal(3.8293871468831893, aliased_angles.true_anomaly)
136
+ end
137
+
138
+ it 'expected 2.48877803069344 from \
139
+ aliased_angles.true_longitude()? ' do
140
+ assert_equal(2.48877803069344, aliased_angles.true_longitude)
141
+ end
142
+
143
+ it 'expected 2.5101242776531474 from \
144
+ aliased_angles.true_longitude_aries()? ' do
145
+ assert_equal(2.5101242776531474, aliased_angles.true_longitude_aries)
146
+ end
147
+
148
+ it 'expected 0.40901870461547685 from \
149
+ aliased_angles.true_obliquity()? ' do
150
+ assert_equal(0.40901870461547685, aliased_angles.true_obliquity)
151
+ end
152
+ end
153
+
154
+ describe 'tests ajd of 2455055.5 ' do
155
+
156
+ before(:each) do
157
+ aliased_angles.ajd = 2_455_055.0
158
+ ajd = aliased_angles.ajd
159
+ aliased_angles.ma_ta_set
160
+ # check date for this ajd when needed.
161
+ aliased_angles.date = aliased_angles.ajd_to_datetime(ajd)
162
+ end
163
+
164
+ it 'expected 2_455_055.0, from aliased_angles.' do
165
+ assert_equal(2_455_055.0, aliased_angles.ajd)
166
+ end
167
+
168
+ it 'expected "2009-08-11T12:00:00+00:00" from \
169
+ aliased_angles.date.to_s ' do
170
+ assert_equal('2009-08-11T12:00:00+00:00', aliased_angles.date.to_s)
171
+ end
172
+
173
+ it 'expected 3.7871218188949207, from aliased_angles.ma ' do
174
+ assert_equal(3.7871218188949207, aliased_angles.ma)
175
+ end
176
+
177
+ it 'expected 3.7871218188949207 from \
178
+ aliased_angles.ma from Eot_angles.mean_anomaly() ' do
179
+ assert_equal(3.7871218188949207, aliased_angles.mean_anomaly)
180
+ end
181
+
182
+ it 'expected 2.4252140645725033 from \
183
+ aliased_angles.apparent_longitude()? ' do
184
+ assert_equal(2.4252140645725033, aliased_angles.apparent_longitude)
185
+ end
186
+
187
+ it 'expected -0.7541886969975007 from \
188
+ aliased_angles.cosine_apparent_longitude()? ' do
189
+ assert_equal(-0.7541886969975007, \
190
+ aliased_angles.cosine_apparent_longitude)
191
+ end
192
+
193
+ it 'expected -0.7542060769936684 from \
194
+ aliased_angles.cosine_true_longitude()? ' do
195
+ assert_equal(-0.7542060769936684, aliased_angles.cosine_true_longitude)
196
+ end
197
+
198
+ it 'expected 0.9174818088112336 from \
199
+ aliased_angles.cosine_true_obliquity()? ' do
200
+ assert_equal(0.9174818088112336, aliased_angles.cosine_true_obliquity)
201
+ end
202
+
203
+ it 'expected 0.2642691272294404 from \
204
+ aliased_angles.declination()? ' do
205
+ assert_equal(0.2642691272294404, aliased_angles.declination)
206
+ end
207
+
208
+ it 'expected -0.04234904897476355 from \
209
+ aliased_angles.delta_t_ecliptic()? ' do
210
+ assert_equal(-0.04234904897476355, aliased_angles.delta_t_ecliptic)
211
+ end
212
+
213
+ it 'expected 0.019768413456709915 from \
214
+ aliased_angles.delta_t_elliptic()? ' do
215
+ assert_equal(0.019768413456709915, aliased_angles.delta_t_elliptic)
216
+ end
217
+
218
+ it 'expected 0.016704576164208475 from \
219
+ aliased_angles.eccentricity_earth_orbit()? ' do
220
+ assert_equal(0.016704576164208475, \
221
+ aliased_angles.eccentricity_earth_orbit)
222
+ end
223
+
224
+ it 'expected -0.019768413456709915 from \
225
+ aliased_angles.equation_of_center()? ' do
226
+ assert_equal(-0.019768413456709915, aliased_angles.equation_of_center)
227
+ end
228
+
229
+ it 'expected 2.445008945789877 from \
230
+ aliased_angles.geometric_mean_longitude()? ' do
231
+ assert_equal(2.445008945789877, aliased_angles.geometric_mean_longitude)
232
+ end
233
+
234
+ it 'expected 1.585863261753274 from \
235
+ aliased_angles.horizon_angle()? ' do
236
+ assert_equal(1.585863261753274, aliased_angles.horizon_angle(1))
237
+ end
238
+
239
+ it 'expected 3.7871218188949207 from \
240
+ aliased_angles.mean_anomaly()? ' do
241
+ assert_equal(3.7871218188949207, aliased_angles.mean_anomaly)
242
+ end
243
+
244
+ it 'expected 2.444907382260759 from \
245
+ aliased_angles.mean_longitude_aries()? ' do
246
+ assert_equal(2.444907382260759, aliased_angles.mean_longitude_aries)
247
+ end
248
+
249
+ it 'expected 0.4090707793981491 from \
250
+ aliased_angles.mean_obliquity()? ' do
251
+ assert_equal(0.4090707793981491, aliased_angles.mean_obliquity)
252
+ end
253
+
254
+ it 'expected 0.4090934409048494 from \
255
+ aliased_angles.obliquity_correction()? ' do
256
+ assert_equal(0.4090934409048494, aliased_angles.obliquity_correction)
257
+ end
258
+
259
+ it 'expected 2.467563113547267 from \
260
+ aliased_angles.right_ascension()? ' do
261
+ assert_equal(2.467563113547267, aliased_angles.right_ascension)
262
+ end
263
+
264
+ it 'expected 0.6566577566139093 from \
265
+ aliased_angles.sine_apparent_longitude()? ' do
266
+ assert_equal(0.6566577566139093, aliased_angles.sine_apparent_longitude)
267
+ end
268
+
269
+ it 'expected 0.6566377946979757 from \
270
+ aliased_angles.sine_true_longitude()? ' do
271
+ assert_equal(0.6566377946979757, aliased_angles.sine_true_longitude)
272
+ end
273
+
274
+ it 'expected 3.767353405438211 from aliased_angles.true_anomaly()? ' do
275
+ assert_equal(3.767353405438211, aliased_angles.true_anomaly)
276
+ end
277
+
278
+ it 'expected 2.4252405323331674 from \
279
+ aliased_angles.true_longitude()? ' do
280
+ assert_equal(2.4252405323331674, aliased_angles.true_longitude)
281
+ end
282
+
283
+ it 'expected 2.4449774607872907 from \
284
+ aliased_angles.true_longitude_aries()? ' do
285
+ assert_equal(2.4449774607872907, aliased_angles.true_longitude_aries)
286
+ end
287
+
288
+ it 'expected 0.4090934409048494 from \
289
+ aliased_angles.true_obliquity()? ' do
290
+ assert_equal(0.4090934409048494, aliased_angles.true_obliquity)
291
+ end
292
+
293
+ end
@@ -0,0 +1,127 @@
1
+ # aliased_displays_spec.rb
2
+ gem 'minitest'
3
+ require 'minitest/autorun'
4
+
5
+ lib = File.expand_path('../../../lib', __FILE__)
6
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
7
+ require 'eot'
8
+
9
+ aliased_displays = Eot.new
10
+
11
+ describe 'aliased_displays using ajd of 2456885.0' do
12
+
13
+ before(:each) do
14
+ aliased_displays.ajd = 2_456_885.0
15
+ ajd = aliased_displays.ajd
16
+ aliased_displays.ma_ta_set
17
+ # check date for this ajd when needed.
18
+ aliased_displays.date = aliased_displays.ajd_to_datetime(ajd)
19
+
20
+ end
21
+
22
+ it 'expected 2456885.0 , from aliased_displays.' do
23
+ assert_equal 2_456_885.0, aliased_displays.ajd
24
+ end
25
+
26
+ it 'expected "2014-08-15T12:00:00+00:00", \
27
+ from aliased_displays.date.to_s' do
28
+ assert_equal '2014-08-15T12:00:00+00:00', aliased_displays.date.to_s
29
+ end
30
+
31
+ it 'expected 3.8508003966038915, from aliased_displays.' do
32
+ assert_equal 3.8508003966038915, aliased_displays.ma
33
+ end
34
+
35
+ it 'expected "+142:35:33.356" \
36
+ from aliased_displays.apparent_longitude_string()? ' do
37
+ assert_equal '+142:35:33.356', aliased_displays.apparent_longitude_string
38
+ end
39
+
40
+ it 'expected "+013:58:51.522" \
41
+ from aliased_displays.declination_string()? ' do
42
+ assert_equal '+013:58:51.522', aliased_displays.declination_string
43
+ end
44
+
45
+ it 'expected "-04m, 29.2s" from \
46
+ aliased_displays.display_equation_of_time()? ' do
47
+ assert_equal '-04m, 29.2s', aliased_displays.display_equation_of_time
48
+ end
49
+
50
+ it 'expected "12:00:00.000" \
51
+ from aliased_displays.display_time_string()? ' do
52
+ assert_equal '12:00:00.000', aliased_displays.display_time_string
53
+ assert_equal '12:00:00.000', aliased_displays.display_time_string(nil)
54
+ assert_equal '12:00:00.000', aliased_displays.display_time_string(0)
55
+ end
56
+
57
+ it 'expected "12:00:00.000" from \
58
+ aliased_displays.display_time_string(aliased_displays.date)? ' do
59
+ assert_equal '12:00:00.000', \
60
+ aliased_displays.display_time_string(aliased_displays.date)
61
+ end
62
+
63
+ it 'expected "2000-01-01" from aliased_displays.jd_to_date_string()? ' do
64
+ assert_equal '2000-01-01', aliased_displays.jd_to_date_string
65
+ assert_equal '2000-01-01', aliased_displays.jd_to_date_string(nil)
66
+ assert_equal '2000-01-01', aliased_displays.jd_to_date_string(0)
67
+ end
68
+
69
+ it 'expected "2014-08-15" \
70
+ from aliased_displays.jd_to_date_string(aliased_displays.ajd)? ' do
71
+ assert_equal '2014-08-15', \
72
+ aliased_displays.jd_to_date_string(aliased_displays.ajd)
73
+ end
74
+
75
+ it 'expected "12:00:00" from \
76
+ aliased_displays.julian_period_day_fraction_to_time()? ' do
77
+ assert_equal '12:00:00', \
78
+ aliased_displays.julian_period_day_fraction_to_time
79
+ assert_equal '12:00:00', \
80
+ aliased_displays.julian_period_day_fraction_to_time(nil)
81
+ assert_equal '12:00:00', \
82
+ aliased_displays.julian_period_day_fraction_to_time(0)
83
+ end
84
+
85
+ it 'expected "+220:38:04.598" from \
86
+ aliased_displays.mean_anomaly_string()? ' do
87
+ assert_equal '+220:38:04.598', aliased_displays.mean_anomaly_string
88
+ end
89
+
90
+ it 'expected "+144:56:36.571" from \
91
+ aliased_displays.right_ascension_string()? ' do
92
+ assert_equal '+144:56:36.571', aliased_displays.right_ascension_string
93
+ end
94
+
95
+ it 'expected "+219:24:27.798" from \
96
+ aliased_displays.true_anomaly_string()? ' do
97
+ assert_equal '+219:24:27.798', aliased_displays.true_anomaly_string
98
+ end
99
+
100
+ it 'expected "+142:35:47.318" from \
101
+ aliased_displays.true_longitude_string()? ' do
102
+ assert_equal '+142:35:47.318', aliased_displays.true_longitude_string
103
+ end
104
+
105
+ it 'expected "+023:26:06.164" from \
106
+ aliased_displays.true_obliquity_string()? ' do
107
+ assert_equal '+023:26:06.164', aliased_displays.true_obliquity_string
108
+ end
109
+
110
+ end
111
+
112
+ describe 'Eot aliased displays explicit values' do
113
+
114
+ it 'expected "16:40:40.800" from \
115
+ aliased_displays.display_time_string(16.6780)? ' do
116
+ assert_equal '16:40:40.800', \
117
+ aliased_displays.display_time_string(16.6780)
118
+ end
119
+
120
+ it 'expected "17:59:16.800" from \
121
+ aliased_displays.display_time_string(17988)? ' do
122
+ aliased_displays.date = Date.today.to_s
123
+ assert_equal '17:59:16.800', \
124
+ aliased_displays.display_time_string(17.988)
125
+ end
126
+
127
+ end