equationoftime 3.0.0

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.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.md +22 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +80 -0
  8. data/README2.txt +70 -0
  9. data/Rakefile +80 -0
  10. data/doc/GeoLatLng.html +770 -0
  11. data/doc/_index.html +123 -0
  12. data/doc/class_list.html +54 -0
  13. data/doc/css/common.css +1 -0
  14. data/doc/css/full_list.css +57 -0
  15. data/doc/css/style.css +339 -0
  16. data/doc/file.README.html +179 -0
  17. data/doc/file_list.html +56 -0
  18. data/doc/frames.html +26 -0
  19. data/doc/index.html +179 -0
  20. data/doc/js/app.js +219 -0
  21. data/doc/js/full_list.js +178 -0
  22. data/doc/js/jquery.js +4 -0
  23. data/doc/method_list.html +611 -0
  24. data/doc/top-level-namespace.html +112 -0
  25. data/equationoftime.gemspec +35 -0
  26. data/examples/Equation_of_Time.jpg +0 -0
  27. data/examples/analemma_data_generator.rb +53 -0
  28. data/examples/check_date_type.rb +57 -0
  29. data/examples/compare_geoc_long_ra.rb +31 -0
  30. data/examples/data_table.rb +26 -0
  31. data/examples/earth_rotation.rb +13 -0
  32. data/examples/eot_methods_list.rb +16 -0
  33. data/examples/eot_plot.r +57 -0
  34. data/examples/eot_suntimes.rb +140 -0
  35. data/examples/equation_of_time.py +186 -0
  36. data/examples/figure_1.jpg +0 -0
  37. data/examples/file_converter.rb +31 -0
  38. data/examples/from_readme.rb +10 -0
  39. data/examples/geo_locator.rb +12 -0
  40. data/examples/getjd.rb +45 -0
  41. data/examples/input_suntimes.rb +21 -0
  42. data/examples/julian_day_formula.rb +29 -0
  43. data/examples/julian_day_formula.txt +12 -0
  44. data/examples/my_time_conversion.rb +21 -0
  45. data/examples/nutation_series.txt +678 -0
  46. data/examples/nutation_series.yaml +14239 -0
  47. data/examples/nutation_table5_3a.txt +682 -0
  48. data/examples/nutation_table5_3a.yaml +9532 -0
  49. data/examples/ptime.rb +162 -0
  50. data/examples/read_nutation_data.rb +399 -0
  51. data/examples/suntimes.rb +28 -0
  52. data/examples/suntimes_test.rb +47 -0
  53. data/examples/test_poly_eval.rb +38 -0
  54. data/examples/time_scales.rb +29 -0
  55. data/examples/usage_example.rb +13 -0
  56. data/examples/use_angles.rb +155 -0
  57. data/lib/eot/angles.rb +337 -0
  58. data/lib/eot/constants.rb +168 -0
  59. data/lib/eot/displays.rb +213 -0
  60. data/lib/eot/geo_lat_lng_smt.rb +80 -0
  61. data/lib/eot/init.rb +93 -0
  62. data/lib/eot/nutation.rb +70 -0
  63. data/lib/eot/nutation_table5_3a.yaml +9532 -0
  64. data/lib/eot/times.rb +130 -0
  65. data/lib/eot/utilities.rb +129 -0
  66. data/lib/eot/version.rb +6 -0
  67. data/lib/eot.rb +11 -0
  68. data/tests/minitest/aliased_angles_spec.rb +287 -0
  69. data/tests/minitest/aliased_displays_spec.rb +106 -0
  70. data/tests/minitest/aliased_times_spec.rb +36 -0
  71. data/tests/minitest/aliased_utilities_spec.rb +49 -0
  72. data/tests/minitest/angles_spec.rb +313 -0
  73. data/tests/minitest/constants_spec.rb +27 -0
  74. data/tests/minitest/delta_epsilon_spec.rb +35 -0
  75. data/tests/minitest/displays_spec.rb +111 -0
  76. data/tests/minitest/geo_spec.rb +36 -0
  77. data/tests/minitest/init_spec.rb +32 -0
  78. data/tests/minitest/nutation_spec.rb +33 -0
  79. data/tests/minitest/times_spec.rb +137 -0
  80. data/tests/minitest/utilities_spec.rb +121 -0
  81. data/tests/spec_config.rb +3 -0
  82. data/wiki.md +46 -0
  83. data/wiki2.md +4 -0
  84. metadata +240 -0
data/lib/eot/times.rb ADDED
@@ -0,0 +1,130 @@
1
+ # times.rb
2
+ #
3
+
4
+ class Eot
5
+
6
+ # From times.rb:<br>
7
+ # Pass in an AJD number
8
+ # Returns a DateTime object
9
+ def ajd_to_datetime(ajd)
10
+ DateTime.jd(ajd + 0.5)
11
+ end
12
+
13
+ # From times.rb:<br>
14
+ # Uses @ajd attribute
15
+ # Returns EOT as an AJD Julian number
16
+ def eot_jd
17
+ time_eot() / DAY_MINUTES
18
+ end
19
+
20
+ # From times.rb:<br>
21
+ # Uses @ajd and @longitude attributes
22
+ # Returns DateTime object of local mean noon or solar transit
23
+ def mean_local_noon_dt()
24
+ ajd_to_datetime(@ajd - @longitude / 360.0)
25
+ end
26
+
27
+ # From times.rb:<br>
28
+ # Uses changed @ajd attribute
29
+ # Returns EOT (equation of time) now in decimal minutes time
30
+ def now()
31
+ @ajd = DateTime.now.to_time.utc.to_datetime.ajd
32
+ time_eot()
33
+ end
34
+
35
+ # From times.rb:<br>
36
+ # Uses @ajd attribute
37
+ # Returns a DateTime object of local sunrise
38
+ def sunrise_dt()
39
+ eot_jd()
40
+ eot_dt = ajd_to_datetime(eot_jd())
41
+ local_noon_dt = ajd_to_datetime(mean_local_noon_dt() - eot_dt)
42
+ tjca = time_julian_century( local_noon_dt.ajd )
43
+ lha_dt = ajd_to_datetime(ha_Sun( tjca ) / 360.0)
44
+ ajd_to_datetime(local_noon_dt - lha_dt)
45
+ end
46
+
47
+ # From times.rb:<br>
48
+ # Uses @ajd attribute
49
+ # Returns Sunrise as a Julian number
50
+ def sunrise_jd()
51
+ sunrise_dt.ajd.to_f
52
+ end
53
+
54
+ # From times.rb:<br>
55
+ # Uses @ajd attribute
56
+ # Returns a DateTime object of local sunset
57
+ def sunset_dt()
58
+ eot_dt = ajd_to_datetime(eot_jd())
59
+ local_noon_dt = ajd_to_datetime(mean_local_noon_dt() - eot_dt)
60
+ tjca = time_julian_century( local_noon_dt.ajd )
61
+ lha_dt = ajd_to_datetime(-ha_Sun( tjca ) / 360.0)
62
+ ajd_to_datetime(local_noon_dt - lha_dt)
63
+ end
64
+
65
+ # From times.rb:<br>
66
+ # Uses @ajd attribute
67
+ # Returns Sunset as a Julian number
68
+ def sunset_jd()
69
+ sunset_dt.ajd.to_f
70
+ end
71
+
72
+ # From times.rb:<br>
73
+ # Uses @ajd attribute
74
+ # Returns Oblique component of EOT in decimal minutes time
75
+ def time_delta_oblique()
76
+ ta = time_julian_century(@ajd)
77
+ @ma = ma_Sun()
78
+ (tl_Sun( ta ) -
79
+ ra_Sun( ta )) * SM
80
+ end
81
+
82
+ # From times.rb:<br>
83
+ # Uses @ajd attribute
84
+ # Returns Orbit component of EOT in decimal minutes time
85
+ def time_delta_orbit()
86
+ ta = time_julian_century(@ajd)
87
+ @ma = ma_Sun()
88
+ (@ma - ta_Sun( ta )) * SM
89
+ end
90
+
91
+ # From times.rb:<br>
92
+ # Uses @ajd attribute
93
+ # Returns EOT as a float for decimal minutes time
94
+ def time_eot()
95
+ eot() * SM
96
+ end
97
+
98
+ # From times.rb:<br>
99
+ # All calculations with ( ta ) based on this.
100
+ # Julian Century Time is a fractional century
101
+ # Julian Day Number J2000 is subtracted
102
+ # Returns an array of fractional century powers
103
+ def time_julian_century( dt = DT2000 )
104
+ dt = check_t_zero( dt )
105
+ dt.class == DateTime ? jd = dt.ajd : jd = dt
106
+
107
+ t1 = ( jd - J2000 ) / DJC
108
+ t2 = t1 * t1
109
+ t3 = t1 * t2
110
+ t4 = t2 * t2
111
+ t5 = t2 * t3
112
+ t6 = t3 * t3
113
+ t7 = t3 * t4
114
+ t8 = t4 * t4
115
+ t9 = t4 * t5
116
+ t10 = t5 * t5
117
+ [ t1, t2, t3, t4, t5, t6, t7, t8, t9, t10 ]
118
+ end
119
+ alias_method :time_julian_centurey, :time_julian_century
120
+
121
+ end
122
+
123
+ if __FILE__ == $PROGRAM_NAME
124
+
125
+ spec = File.expand_path('../../../tests/minitest', __FILE__)
126
+ $LOAD_PATH.unshift(spec) unless $LOAD_PATH.include?(spec)
127
+ require 'times_spec'
128
+ require 'aliased_times_spec'
129
+
130
+ end
@@ -0,0 +1,129 @@
1
+ # utilities.rb
2
+
3
+ require 'bigdecimal'
4
+
5
+ class Eot
6
+
7
+ # From utilities.rb:<br>
8
+ # if you want to use BigDecimal math
9
+ def bd( var = 0.0 )
10
+ var.nil? ? var = 0.0 : var
11
+ BigDecimal( var.to_s ) * 1.0
12
+ end
13
+
14
+ # From utilities.rb:<br>
15
+ # A check for default D2000
16
+ # sets default when arg is nil
17
+ def check_date_nil( d = D2000 )
18
+ d.nil? ? d = D2000 : d
19
+ end
20
+
21
+ # From utilities.rb:<br>
22
+ # A check for default D2000
23
+ # sets default when arg is zero
24
+ def check_date_zero( d = D2000 )
25
+ d == 0 ? d = D2000 : d = check_date_nil( d )
26
+ end
27
+
28
+ # From utilities.rb:<br>
29
+ # A check for default J2000
30
+ # sets default when arg is nil
31
+ def check_jd_nil( jd = J2000 )
32
+ jd.nil? ? jd = J2000 : jd
33
+ end
34
+
35
+ # From utilities.rb:<br>
36
+ # A check for default J2000
37
+ # sets default when arg is zero
38
+ def check_jd_zero( jd = J2000 )
39
+ jd == 0 ? jd = J2000 : jd = check_jd_nil( jd )
40
+ end
41
+
42
+ # From utilities.rb:<br>
43
+ # A check for default A2000
44
+ # sets default when arg is nil
45
+ def check_jct_nil( ta = A2000 )
46
+ ta.nil? ? ta = A2000 : ta
47
+ end
48
+
49
+ # From utilities.rb:<br>
50
+ # A check for default A2000
51
+ # sets default when arg is zero
52
+ def check_jct_zero( ta = A2000 )
53
+ ta == 0 ? ta = A2000 : ta = check_jct_nil( ta )
54
+ end
55
+
56
+ # From utilities.rb:<br>
57
+ # A check for default DT2000
58
+ # sets default when arg is nil
59
+ def check_t_nil( dt = DT2000 )
60
+ dt.nil? ? dt = DT2000 : dt
61
+ end
62
+
63
+ # From utilities.rb:<br>
64
+ # A check for default DT2000
65
+ # sets default when arg is zero
66
+ def check_t_zero( dt = DT2000 )
67
+ dt == 0 ? dt = DT2000 : dt = check_t_nil( dt )
68
+ end
69
+
70
+ # From utilities.rb:<br>
71
+ # Trig function for cosine of degrees
72
+ # used in the nutation table calculations
73
+ def cosd( x = 0.0 )
74
+ x.nil? ? x = 0.0 : x
75
+ cos( DTR * x )
76
+ end
77
+
78
+ # From utilities.rb:<br>
79
+ # degrees to radians conversion
80
+ # aliased by degrees_to_radians
81
+ def deg_to_rad( degrees = 0.0 )
82
+ degrees.nil? ? degrees = 0.0 : degrees
83
+ degrees * PI / 180.0
84
+ end
85
+ alias_method :degrees_to_radians, :deg_to_rad
86
+
87
+ # From utilities.rb:<br>
88
+ # Keeps large angles in range of 360.0
89
+ # aliased by truncate
90
+ def mod_360( x = 0.0 )
91
+ x.nil? ? x = 0.0 : x
92
+ 360.0 * ( x / 360.0 - Integer( x / 360.0 ) )
93
+ end
94
+ alias_method :truncate, :mod_360
95
+
96
+ # From utilities.rb:<br>
97
+ # radians to degrees conversion
98
+ # aliased by radians_to_degrees
99
+ def rad_to_deg( radians = 0.0 )
100
+ radians.nil? ? radians = 0.0 : radians
101
+ radians * 180.0 / PI
102
+ end
103
+ alias_method :radians_to_degrees,:rad_to_deg
104
+
105
+ # From utilities.rb:<br>
106
+ # Trig function for sine of degrees
107
+ # used in the nutation table calculations
108
+ def sind( x = 0.0 )
109
+ x.nil? ? x = 0.0 : x
110
+ sin( DTR * x )
111
+ end
112
+
113
+ # From utilities.rb:<br>
114
+ # arc seconds to degree conversion
115
+ def to_deg( arc_secs = 0.0 )
116
+ arc_secs.nil? ? arc_secs = 0.0 : arc_secs
117
+ arc_secs / ARCSEC
118
+ end
119
+
120
+ end
121
+
122
+ if __FILE__ == $PROGRAM_NAME
123
+
124
+ spec = File.expand_path('../../../tests/minitest', __FILE__)
125
+ $LOAD_PATH.unshift(spec) unless $LOAD_PATH.include?(spec)
126
+ require 'utilities_spec'
127
+ require 'aliased_utilities_spec'
128
+
129
+ end
@@ -0,0 +1,6 @@
1
+ # version.rb
2
+
3
+ class Eot
4
+ # From version.rb<br>
5
+ VERSION = "3.0.0"
6
+ end
data/lib/eot.rb ADDED
@@ -0,0 +1,11 @@
1
+ # eot.rb
2
+
3
+ require 'eot/version'
4
+ require 'eot/constants'
5
+ require 'eot/init'
6
+ require 'eot/utilities'
7
+ require 'eot/angles'
8
+ require 'eot/times'
9
+ require 'eot/displays'
10
+ require 'eot/nutation'
11
+ require 'eot/geo_lat_lng_smt'
@@ -0,0 +1,287 @@
1
+ # aliased_angles_spec.rb
2
+ #
3
+ # uncomment below for minitest
4
+ gem 'minitest'
5
+ require 'minitest/autorun'
6
+ # require_relative '../spec_config'
7
+ lib = File.expand_path('../../../lib', __FILE__)
8
+ # puts "Loading gem from #{lib}/eot.rb"
9
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
10
+ require 'eot'
11
+
12
+ Eot_aliased_angles = Eot.new
13
+
14
+
15
+ describe 'EOT aliased_angles default, nil, 0' do
16
+
17
+ # set ma attribute first as it gets tested anyway but a lot of methods
18
+ # now rely on @ma so we don't have to keep calling it unless we change
19
+ # @ajd attribute.
20
+
21
+ before(:each) do
22
+ @ajd = 2456885.0
23
+ Eot_aliased_angles.ajd = @ajd
24
+ Eot_aliased_angles.mean_anomaly()
25
+ end
26
+
27
+ it 'expected 2456885.0 for Eot_aliased_angles.ajd'do
28
+ assert_equal 2456885.0, Eot_aliased_angles.ajd
29
+ assert_equal 220.63461047326172, Eot_aliased_angles.ma
30
+ end
31
+
32
+ it 'expected 279.2295199333757 returned by Eot_aliased_angles.apparent_longitude()? ' do
33
+ assert_equal 279.2295199333757, Eot_aliased_angles.apparent_longitude()
34
+ assert_equal 279.2295199333757, Eot_aliased_angles.apparent_longitude(nil)
35
+ assert_equal 279.2295199333757, Eot_aliased_angles.apparent_longitude(0)
36
+ end
37
+
38
+ it 'expected 0.16038975882741865 returned by Eot_aliased_angles.cosine_apparent_longitude()? ' do
39
+ assert_equal 0.16038975882741865, Eot_aliased_angles.cosine_apparent_longitude()
40
+ assert_equal 0.16038975882741865, Eot_aliased_angles.cosine_apparent_longitude(nil)
41
+ assert_equal 0.16038975882741865, Eot_aliased_angles.cosine_apparent_longitude(0)
42
+ end
43
+
44
+ it 'expected 0.16055519782509398 returned by Eot_aliased_angles.cosine_true_longitude()? ' do
45
+ assert_equal 0.16055519782509398, Eot_aliased_angles.cosine_true_longitude()
46
+ assert_equal 0.16055519782509398, Eot_aliased_angles.cosine_true_longitude(nil)
47
+ assert_equal 0.16055519782509398, Eot_aliased_angles.cosine_true_longitude(0)
48
+ end
49
+
50
+ it 'expected 0.9174932093012645 returned by Eot_aliased_angles.cosine_true_obliquity()? ' do
51
+ assert_equal 0.9174932093012645, Eot_aliased_angles.cosine_true_obliquity()
52
+ assert_equal 0.9174932093012645, Eot_aliased_angles.cosine_true_obliquity(nil)
53
+ assert_equal 0.9174932093012645, Eot_aliased_angles.cosine_true_obliquity(0)
54
+ end
55
+
56
+ it 'expected -23.116504240687046 returned by Eot_aliased_angles.declination()? ' do
57
+ assert_equal -23.116504240687046, Eot_aliased_angles.declination()
58
+ assert_equal -23.116504240687046, Eot_aliased_angles.declination(nil)
59
+ assert_equal -23.116504240687046, Eot_aliased_angles.declination(0)
60
+ end
61
+
62
+ it 'expected -0.8041525701173668 returned by Eot_aliased_angles.delta_t_ecliptic()? ' do
63
+ assert_equal -0.8041525701173668, Eot_aliased_angles.delta_t_ecliptic()
64
+ assert_equal -0.8041525701173668, Eot_aliased_angles.delta_t_ecliptic(nil)
65
+ assert_equal -0.8041525701173668, Eot_aliased_angles.delta_t_ecliptic(0)
66
+ end
67
+
68
+ it 'expected 1.2273333530652906 returned by Eot_aliased_angles.delta_t_elliptic()? ' do
69
+ assert_equal 1.2273333530652906, Eot_aliased_angles.delta_t_elliptic()
70
+ assert_equal 1.2273333530652906, Eot_aliased_angles.delta_t_elliptic(nil)
71
+ assert_equal 1.2273333530652906, Eot_aliased_angles.delta_t_elliptic(0)
72
+ end
73
+
74
+ it 'expected 0.016708617 returned by Eot_aliased_angles.eccentricity_earth_orbit()? ' do
75
+ assert_equal 0.016708617, Eot_aliased_angles.eccentricity_earth_orbit()
76
+ assert_equal 0.016708617, Eot_aliased_angles.eccentricity_earth_orbit(nil)
77
+ assert_equal 0.016708617, Eot_aliased_angles.eccentricity_earth_orbit(0)
78
+ end
79
+
80
+ it 'expected -1.227333353065282returned by Eot_aliased_angles.equation_of_center()? ' do
81
+ assert_equal -1.227333353065282, Eot_aliased_angles.equation_of_center()
82
+ assert_equal -1.227333353065282, Eot_aliased_angles.equation_of_center(nil)
83
+ assert_equal -1.227333353065282, Eot_aliased_angles.equation_of_center(0)
84
+ end
85
+
86
+ it 'expected 280.4664567 returned by Eot_aliased_angles.geometric_mean_longitude()? ' do
87
+ assert_equal 280.4664567, Eot_aliased_angles.geometric_mean_longitude()
88
+ assert_equal 280.4664567, Eot_aliased_angles.geometric_mean_longitude(nil)
89
+ assert_equal 280.4664567, Eot_aliased_angles.geometric_mean_longitude(0)
90
+ end
91
+
92
+ it 'expected 90.9060538240478 returned by Eot_aliased_angles.horizon_angle()? ' do
93
+ assert_equal 90.9060538240478, Eot_aliased_angles.horizon_angle()
94
+ assert_equal 90.9060538240478, Eot_aliased_angles.horizon_angle(nil)
95
+ assert_equal 90.9060538240478, Eot_aliased_angles.horizon_angle(0)
96
+ end
97
+
98
+ it 'expected 220.63461047326172 returned by Eot_aliased_angles.mean_anomaly()? ' do
99
+ assert_equal 220.63461047326172, Eot_aliased_angles.mean_anomaly()
100
+ end
101
+
102
+ it 'expected 280.460622404583 returned by Eot_aliased_angles.mean_longitude_aries()? ' do
103
+ assert_equal 280.460622404583, Eot_aliased_angles.mean_longitude_aries()
104
+ assert_equal 280.460622404583, Eot_aliased_angles.mean_longitude_aries(nil)
105
+ assert_equal 280.460622404583, Eot_aliased_angles.mean_longitude_aries(0)
106
+ end
107
+
108
+ it 'expected 23.439279444444445 returned by Eot_aliased_angles.mean_obliquity()? ' do
109
+ assert_equal 23.439279444444445, Eot_aliased_angles.mean_obliquity()
110
+ assert_equal 23.439279444444445, Eot_aliased_angles.mean_obliquity(nil)
111
+ assert_equal 23.439279444444445, Eot_aliased_angles.mean_obliquity(0)
112
+ end
113
+
114
+ it 'expected 23.439279444444445 returned by Eot_aliased_angles.mean_obliquity_of_ecliptic()? ' do
115
+ assert_equal 23.439279444444445, Eot_aliased_angles.mean_obliquity_of_ecliptic()
116
+ assert_equal 23.439279444444445, Eot_aliased_angles.mean_obliquity_of_ecliptic(nil)
117
+ assert_equal 23.439279444444445, Eot_aliased_angles.mean_obliquity_of_ecliptic(0)
118
+ end
119
+
120
+ it 'expected 23.43768541308359, returned by Eot_aliased_angles.obliquity_correction()? ' do
121
+ assert_equal 23.43768541308359, Eot_aliased_angles.obliquity_correction()
122
+ assert_equal 23.43768541308359, Eot_aliased_angles.obliquity_correction(nil)
123
+ assert_equal 23.43768541308359, Eot_aliased_angles.obliquity_correction(0)
124
+ end
125
+
126
+ it 'expected 280.0432759170521 returned by Eot_aliased_angles.right_ascension()? ' do
127
+ assert_equal 280.0432759170521, Eot_aliased_angles.right_ascension()
128
+ assert_equal 280.0432759170521, Eot_aliased_angles.right_ascension(nil)
129
+ assert_equal 280.0432759170521, Eot_aliased_angles.right_ascension(0)
130
+ end
131
+
132
+ it 'expected -0.9870537600674456 returned by Eot_aliased_angles.sine_apparent_longitude()? ' do
133
+ assert_equal -0.9870537600674456, Eot_aliased_angles.sine_apparent_longitude()
134
+ assert_equal -0.9870537600674456, Eot_aliased_angles.sine_apparent_longitude(nil)
135
+ assert_equal -0.9870537600674456, Eot_aliased_angles.sine_apparent_longitude(0)
136
+ end
137
+
138
+ it 'expected -0.9870268630849643 returned by Eot_aliased_angles.sine_true_longitude()? ' do
139
+ assert_equal -0.9870268630849643, Eot_aliased_angles.sine_true_longitude()
140
+ assert_equal -0.9870268630849643, Eot_aliased_angles.sine_true_longitude(nil)
141
+ assert_equal -0.9870268630849643, Eot_aliased_angles.sine_true_longitude(0)
142
+ end
143
+
144
+ it 'expected 219.40727712019643 returned by Eot_aliased_angles.true_anomaly()? ' do
145
+ assert_equal 219.40727712019643, Eot_aliased_angles.true_anomaly()
146
+ assert_equal 219.40727712019643, Eot_aliased_angles.true_anomaly(nil)
147
+ assert_equal 219.40727712019643, Eot_aliased_angles.true_anomaly(0)
148
+ end
149
+
150
+ it 'expected 279.2391233469347 returned by Eot_aliased_angles.true_longitude()? ' do
151
+ assert_equal 279.2391233469347, Eot_aliased_angles.true_longitude()
152
+ assert_equal 279.2391233469347, Eot_aliased_angles.true_longitude(nil)
153
+ assert_equal 279.2391233469347, Eot_aliased_angles.true_longitude(0)
154
+ end
155
+
156
+ it 'expected 280.45708542258194 returned by Eot_aliased_angles.true_longitude_aries()? ' do
157
+ assert_equal 280.45708542258194, Eot_aliased_angles.true_longitude_aries()
158
+ assert_equal 280.45708542258194, Eot_aliased_angles.true_longitude_aries(nil)
159
+ assert_equal 280.45708542258194, Eot_aliased_angles.true_longitude_aries(0)
160
+ end
161
+
162
+ it 'expected 23.43768541308359 returned by Eot_aliased_angles.true_obliquity()? ' do
163
+ assert_equal 23.43768541308359, Eot_aliased_angles.true_obliquity()
164
+ assert_equal 23.43768541308359, Eot_aliased_angles.true_obliquity(nil)
165
+ assert_equal 23.43768541308359, Eot_aliased_angles.true_obliquity(0)
166
+ end
167
+ end
168
+
169
+ describe 'EOT angles tjc array for jd 2455055.5 a non default value' do
170
+
171
+ # set ma attribute first as it gets tested anyway but a lot of methods
172
+ # now rely on @ma so we don't have to keep calling it unless we change
173
+ # @ajd attribute
174
+ before(:each) do
175
+ @ajd = 2455055.0
176
+ Eot_aliased_angles.ajd = @ajd
177
+ @dt = Eot_aliased_angles.ajd_to_datetime(@ajd)
178
+ Eot_aliased_angles.date = @dt
179
+ Eot_aliased_angles.ma_Sun
180
+ @ta = Eot_aliased_angles.time_julian_century(@ajd)
181
+ end
182
+
183
+ it 'expected 2455055.0, returned by Eot_aliased_angles.' do
184
+ assert_equal 2455055.0, Eot_aliased_angles.ajd
185
+ end
186
+
187
+ it 'expected "2009-08-11T12:00:00+00:00", returned by Eot_aliased_angles.date.to_s' do
188
+ assert_equal "2009-08-11T12:00:00+00:00", Eot_aliased_angles.date.to_s
189
+ end
190
+
191
+ it 'expected 216.98609672514223, returned by Eot_aliased_angles.' do
192
+ assert_equal 216.98609672514223, Eot_aliased_angles.ma
193
+ end
194
+
195
+ it 'expected Eot_aliased_angles.ma returned by Eot_angles.mean_anomaly()' do
196
+ assert_equal Eot_aliased_angles.ma, Eot_aliased_angles.mean_anomaly()
197
+ end
198
+
199
+ it 'expected 138.95453031575755 returned by Eot_aliased_angles.apparent_longitude(@ta)? ' do
200
+ assert_equal 138.95453031575755, Eot_aliased_angles.apparent_longitude(@ta)
201
+ end
202
+
203
+ it 'expected -0.7541886969973313 returned by Eot_aliased_angles.cosine_apparent_longitude(@ta)? ' do
204
+ assert_equal -0.7541886969973313, Eot_aliased_angles.cosine_apparent_longitude(@ta)
205
+ end
206
+
207
+ it 'expected -0.7542060769934986 returned by Eot_aliased_angles.cosine_true_longitude(@ta)? ' do
208
+ assert_equal -0.7542060769934986, Eot_aliased_angles.cosine_true_longitude(@ta)
209
+ end
210
+
211
+ it 'expected 0.9174818406562965 returned by Eot_aliased_angles.cosine_true_obliquity(@ta)? ' do
212
+ assert_equal 0.9174818406562965, Eot_aliased_angles.cosine_true_obliquity(@ta)
213
+ end
214
+
215
+ it 'expected 15.141502782959178 returned by Eot_aliased_angles.declination(@ta)? ' do
216
+ assert_equal 15.141502782959178, Eot_aliased_angles.declination(@ta)
217
+ end
218
+
219
+ it 'expected -2.42490431188628 returned by Eot_aliased_angles.delta_t_ecliptic(@ta)? ' do
220
+ assert_equal -2.42490431188628, Eot_aliased_angles.delta_t_ecliptic(@ta)
221
+ end
222
+
223
+ it 'expected 1.1326466587538278 returned by Eot_aliased_angles.delta_t_elliptic(@ta)? ' do
224
+ assert_equal 1.1326466587538278, Eot_aliased_angles.delta_t_elliptic(@ta)
225
+ end
226
+
227
+ it 'expected 0.016704576164208475 returned by Eot_aliased_angles.eccentricity_earth_orbit(@ta)? ' do
228
+ assert_equal 0.016704576164208475, Eot_aliased_angles.eccentricity_earth_orbit(@ta)
229
+ end
230
+
231
+ it 'expected -1.1326466587538162 returned by Eot_aliased_angles.equation_of_center(@ta)? ' do
232
+ assert_equal -1.1326466587538162, Eot_aliased_angles.equation_of_center(@ta)
233
+ end
234
+
235
+ it 'expected 140.08869346549056 returned by Eot_aliased_angles.geometric_mean_longitude(@ta)? ' do
236
+ assert_equal 140.08869346549056, Eot_aliased_angles.geometric_mean_longitude(@ta)
237
+ end
238
+
239
+ it 'expected 90.86327177163999 returned by Eot_aliased_angles.horizon_angle(@ta)? ' do
240
+ assert_equal 90.86327177163999, Eot_aliased_angles.horizon_angle(@ta)
241
+ end
242
+
243
+ it 'expected 216.98609672514223 returned by Eot_aliased_angles.mean_anomaly()? ' do
244
+ assert_equal 216.98609672514223, Eot_aliased_angles.mean_anomaly()
245
+ end
246
+
247
+ it 'expected 140.08287431273857 returned by Eot_aliased_angles.mean_longitude_aries(@ta)? ' do
248
+ assert_equal 140.08287431273857, Eot_aliased_angles.mean_longitude_aries(@ta)
249
+ end
250
+
251
+ it 'expected 23.43802918164109 returned by Eot_aliased_angles.mean_obliquity(@ta)? ' do
252
+ assert_equal 23.43802918164109, Eot_aliased_angles.mean_obliquity(@ta)
253
+ end
254
+
255
+ it 'expected 23.439323003379247 returned by Eot_aliased_angles.obliquity_correction(@ta)? ' do
256
+ assert_equal 23.439323003379247, Eot_aliased_angles.obliquity_correction(@ta)
257
+ end
258
+
259
+ it 'expected 141.38095111862302 returned by Eot_aliased_angles.right_ascension(@ta)? ' do
260
+ assert_equal 141.38095111862302, Eot_aliased_angles.right_ascension(@ta)
261
+ end
262
+
263
+ it 'expected 0.6566577566141039 returned by Eot_aliased_angles.sine_apparent_longitude(@ta)? ' do
264
+ assert_equal 0.6566577566141039, Eot_aliased_angles.sine_apparent_longitude(@ta)
265
+ end
266
+
267
+ it 'expected 0.6566377946981706 returned by Eot_aliased_angles.sine_true_longitude(@ta)? ' do
268
+ assert_equal 0.6566377946981706, Eot_aliased_angles.sine_true_longitude(@ta)
269
+ end
270
+
271
+ it 'expected 215.8534500663884 returned by Eot_aliased_angles.true_anomaly(@ta)? ' do
272
+ assert_equal 215.8534500663884, Eot_aliased_angles.true_anomaly(@ta)
273
+ end
274
+
275
+ it 'expected 138.95604680673674 returned by Eot_aliased_angles.true_longitude(@ta)? ' do
276
+ assert_equal 138.95604680673674, Eot_aliased_angles.true_longitude(@ta)
277
+ end
278
+
279
+ it 'expected 140.08689002538767 returned by Eot_aliased_angles.true_longitude_aries(@ta)? ' do
280
+ assert_equal 140.08689002538767, Eot_aliased_angles.true_longitude_aries(@ta)
281
+ end
282
+
283
+ it 'expected 23.439323003379247 returned by Eot_aliased_angles.true_obliquity(@ta)? ' do
284
+ assert_equal 23.439323003379247, Eot_aliased_angles.true_obliquity(@ta)
285
+ end
286
+
287
+ end
@@ -0,0 +1,106 @@
1
+ # aliased_displays_spec.rb
2
+ #
3
+ # uncomment below for minitest
4
+ gem 'minitest'
5
+ require 'minitest/autorun'
6
+ # require_relative '../spec_config'
7
+ lib = File.expand_path('../../../lib', __FILE__)
8
+ # puts "Loading gem from #{lib}/eot.rb"
9
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
10
+ require 'eot'
11
+
12
+ Eot_aliased_displays = Eot.new
13
+
14
+ describe 'assert_equal Eot aliased_displays default, nil' do
15
+
16
+ # set ma attribute first as it gets tested anyway but a lot of methods
17
+ # now rely on @ma so we don't have to keep calling it unless we change
18
+ # @ajd attribute.
19
+
20
+ before(:each) do
21
+ @ajd = 2456885.0
22
+ Eot_aliased_displays.ajd = @ajd
23
+ Eot_aliased_displays.mean_anomaly()
24
+ end
25
+
26
+ it 'expected 2456885.0 for Eot_aliased_displays.ajd' do
27
+ assert_equal 2456885.0, Eot_aliased_displays.ajd
28
+ assert_equal 220.63461047326172, Eot_aliased_displays.ma
29
+ end
30
+
31
+ it 'expected "+279:13:46.271" returned by Eot_aliased_displays.apparent_longitude_string()? ' do
32
+ assert_equal "+279:13:46.271", Eot_aliased_displays.apparent_longitude_string()
33
+ assert_equal "+279:13:46.271", Eot_aliased_displays.apparent_longitude_string(nil)
34
+ assert_equal "+279:13:46.271", Eot_aliased_displays.apparent_longitude_string(0)
35
+ end
36
+
37
+ it 'expected "-023:06:59.415" returned by Eot_aliased_displays.declination_string()? ' do
38
+ assert_equal "-023:06:59.415", Eot_aliased_displays.declination_string()
39
+ assert_equal "-023:06:59.415", Eot_aliased_displays.declination_string(nil)
40
+ assert_equal "-023:06:59.415", Eot_aliased_displays.declination_string(0)
41
+ end
42
+
43
+ it 'expected "-04m, 28.9s" returned by Eot_aliased_displays.display_equation_of_time()? ' do
44
+ assert_equal "-04m, 28.9s", Eot_aliased_displays.display_equation_of_time()
45
+ end
46
+
47
+ it 'expected "12:00:00.000" returned by Eot_aliased_displays.display_time_string()? ' do
48
+ assert_equal "12:00:00.000", Eot_aliased_displays.display_time_string()
49
+ assert_equal "12:00:00.000", Eot_aliased_displays.display_time_string(nil)
50
+ assert_equal "12:00:00.000", Eot_aliased_displays.display_time_string(0)
51
+ end
52
+
53
+ it 'expected "2000-01-01" returned by Eot_aliased_displays.jd_to_date_string()? ' do
54
+ assert_equal "2000-01-01", Eot_aliased_displays.jd_to_date_string()
55
+ assert_equal "2000-01-01", Eot_aliased_displays.jd_to_date_string(nil)
56
+ assert_equal "2000-01-01", Eot_aliased_displays.jd_to_date_string(0)
57
+ end
58
+
59
+ it 'expected "12:00:00" returned by Eot_aliased_displays.julian_period_day_fraction_to_time()? ' do
60
+ assert_equal "12:00:00", Eot_aliased_displays.julian_period_day_fraction_to_time()
61
+ assert_equal "12:00:00", Eot_aliased_displays.julian_period_day_fraction_to_time(nil)
62
+ assert_equal "12:00:00", Eot_aliased_displays.julian_period_day_fraction_to_time(0)
63
+ end
64
+
65
+ it 'expected "+220:38:04.597" returned by Eot_aliased_displays.mean_anomaly_string()? ' do
66
+ assert_equal "+220:38:04.597", Eot_aliased_displays.mean_anomaly_string()
67
+ end
68
+
69
+ it 'expected "+280:02:35.793" returned by Eot_aliased_displays.right_ascension_string()? ' do
70
+ assert_equal "+280:02:35.793", Eot_aliased_displays.right_ascension_string()
71
+ assert_equal "+280:02:35.793", Eot_aliased_displays.right_ascension_string(nil)
72
+ assert_equal "+280:02:35.793", Eot_aliased_displays.right_ascension_string(0)
73
+ end
74
+
75
+ it 'expected "+219:24:26.197" returned by Eot_aliased_displays.true_anomaly_string()? ' do
76
+ assert_equal "+219:24:26.197", Eot_aliased_displays.true_anomaly_string()
77
+ assert_equal "+219:24:26.197", Eot_aliased_displays.true_anomaly_string(nil)
78
+ assert_equal "+219:24:26.197", Eot_aliased_displays.true_anomaly_string(0)
79
+ end
80
+
81
+ it 'expected "+279:14:20.844" returned by Eot_aliased_displays.true_longitude_string()? ' do
82
+ assert_equal "+279:14:20.844", Eot_aliased_displays.true_longitude_string()
83
+ assert_equal "+279:14:20.844", Eot_aliased_displays.true_longitude_string(nil)
84
+ assert_equal "+279:14:20.844", Eot_aliased_displays.true_longitude_string(0)
85
+ end
86
+
87
+ it 'expected "+023:26:15.667" returned by Eot_aliased_displays.true_obliquity_string()? ' do
88
+ assert_equal "+023:26:15.667", Eot_aliased_displays.true_obliquity_string()
89
+ assert_equal "+023:26:15.667", Eot_aliased_displays.true_obliquity_string(nil)
90
+ assert_equal "+023:26:15.667", Eot_aliased_displays.true_obliquity_string(0)
91
+ end
92
+
93
+ end
94
+
95
+ describe 'Eot aliased displays explicit values' do
96
+
97
+ it 'expected "16:40:40.800" returned by Eot_aliased_displays.display_time_string(16.6780)? ' do
98
+ assert_equal "16:40:40.800", Eot_aliased_displays.display_time_string(16.6780)
99
+ end
100
+
101
+ it 'expected "17:59:16.800" returned by Eot_aliased_displays.display_time_string(17988)? ' do
102
+ Eot_aliased_displays.date = Date.today.to_s
103
+ assert_equal "17:59:16.800", Eot_aliased_displays.display_time_string(17.988)
104
+ end
105
+
106
+ end