equationoftime 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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