geodesy 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8381b9c9997458d973c0b1497626a7c5c2761e44
4
- data.tar.gz: 328a729a630fed32b3eecf08cafb074e3545e7ed
3
+ metadata.gz: 8b3ccd736823399b58025d03e12b5cc35fc28267
4
+ data.tar.gz: e824b96a5c01f59988f899eaddfefdfed05ef4f6
5
5
  SHA512:
6
- metadata.gz: 6861116ff291d75dc40c4b187fc319c2a9685e2216a194b135f6f9d5bd45fa491ff7be6cfbe348b685f2fa9275a117c6d19b14a7a24da9a1d5bca6573d57919e
7
- data.tar.gz: 570b5bbf1df7c6ceaaa5c482be8c01b023aa0ac905e6823a563cdae7b7126a10920b0f7470015bdb209182454cf19b00adb6a81ffc005ad95081a351fc70ca1e
6
+ metadata.gz: bb0e4d9947a938b8280688f7192b5bb8a3d93f5c7a7bfdb45418d2a604f755d81dd6c7c32d4c1b77f63ed798b4bf2719a38dc712f44450831150cf2935589dd9
7
+ data.tar.gz: 15d547e0c9ad55de67a27a8651f0d56d1b1b83f8b972d9a9cd9697bfecd783234ee9ac96ace824c889677c45c322b738a597d13fcde4fd8e409da2c0c34f6ef8
@@ -12,28 +12,188 @@ module Geodesy
12
12
  self * 180 / Math::PI
13
13
  end
14
14
 
15
- def to_kilometers(miles)
16
- miles * Geodesy::Conversions.miles_to_kilometers
15
+ # Unit defines what "self" is
16
+ def to_kilometers(unit)
17
+ case unit
18
+ when 'kilometers'
19
+ self
20
+
21
+ when 'miles'
22
+ self * 0.621371
23
+
24
+ when 'meters'
25
+ self * 1000.0
26
+
27
+ when 'yards'
28
+ self * 1093.61
29
+
30
+ when 'feet'
31
+ self * 3280.84
32
+
33
+ when 'inches'
34
+ self * 39370.1
35
+
36
+ when 'centimeters'
37
+ self * 100000.0
38
+
39
+ end
40
+ end
41
+
42
+ def to_miles(unit)
43
+ case unit
44
+ when 'kilometers'
45
+ self * 1.60934
46
+
47
+ when 'miles'
48
+ self
49
+
50
+ when 'meters'
51
+ self * 1609.34
52
+
53
+ when 'yards'
54
+ self * 1760.0
55
+
56
+ when 'feet'
57
+ self * 5280.0
58
+
59
+ when 'inches'
60
+ self * 63360.0
61
+
62
+ when 'centimeters'
63
+ self * 160934.0
64
+
65
+ end
17
66
  end
18
67
 
19
- def to_miles(kilometers)
20
- kilometers * Geodesy::Conversions.kilometers_to_miles
68
+ def to_meters(unit)
69
+ case unit
70
+ when 'kilometers'
71
+ self * 0.001
72
+
73
+ when 'miles'
74
+ self * 0.000621371
75
+
76
+ when 'meters'
77
+ self
78
+
79
+ when 'yards'
80
+ self * 1.09361
81
+
82
+ when 'feet'
83
+ self * 3.28084
84
+
85
+ when 'inches'
86
+ self * 39.3701
87
+
88
+ when 'centimeters'
89
+ self * 100
90
+
91
+ end
21
92
  end
22
93
 
23
- def to_meters(yards)
24
- yards * Geodesy::Conversions.yards_to_meters
94
+ def to_yards(unit)
95
+ case unit
96
+ when 'kilometers'
97
+ self * 0.0009144
98
+
99
+ when 'miles'
100
+ self * 0.000568182
101
+
102
+ when 'meters'
103
+ self * 1760.0
104
+
105
+ when 'yards'
106
+ self
107
+
108
+ when 'feet'
109
+ self * 3
110
+
111
+ when 'inches'
112
+ self * 36
113
+
114
+ when 'centimeters'
115
+ self * 91.44
116
+
117
+ end
25
118
  end
26
119
 
27
- def to_yards(meters)
28
- meters * Geodesy::Conversions.meters_to_yards
120
+ def to_feet(unit)
121
+ case unit
122
+ when 'kilometers'
123
+ self * 0.0003048
124
+
125
+ when 'miles'
126
+ self * 0.000189394
127
+
128
+ when 'meters'
129
+ self * 0.3048
130
+
131
+ when 'yards'
132
+ self * 0.333333
133
+
134
+ when 'feet'
135
+ self
136
+
137
+ when 'inches'
138
+ self * 12
139
+
140
+ when 'centimeters'
141
+ self * 30.48
142
+
143
+ end
29
144
  end
30
145
 
31
- def to_feet(yards)
32
- yards * Geodesy::Conversions.yards_to_feet
146
+ def to_inches(unit)
147
+ case unit
148
+ when 'kilometers'
149
+ self * 2.54e-5
150
+
151
+ when 'miles'
152
+ self * 1.5783e-5
153
+
154
+ when 'meters'
155
+ self * 0.0254
156
+
157
+ when 'yards'
158
+ self * 0.0277778
159
+
160
+ when 'feet'
161
+ self * 0.0833333
162
+
163
+ when 'inches'
164
+ self
165
+
166
+ when 'centimeters'
167
+ self * 2.54
168
+
169
+ end
33
170
  end
34
171
 
35
- def to_inches(feet)
36
- feet * Geodesy::Conversions.feet_to_inches
172
+
173
+ def to_centimeters(unit)
174
+ case unit
175
+ when 'kilometers'
176
+ self * 1e-5
177
+
178
+ when 'miles'
179
+ self * 6.2137e-6
180
+
181
+ when 'meters'
182
+ self * 0.01
183
+
184
+ when 'yards'
185
+ self * 0.0109361
186
+
187
+ when 'feet'
188
+ self * 0.0328084
189
+
190
+ when 'inches'
191
+ self * 0.393701
192
+
193
+ when 'centimeters'
194
+ self
195
+
196
+ end
37
197
  end
38
198
 
39
199
  end
@@ -1,3 +1,3 @@
1
1
  module Geodesy
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -11,20 +11,32 @@ class Number
11
11
  @num.to_radians
12
12
  end
13
13
 
14
- def to_meters(yards)
15
- @num.to_meters(yards)
14
+ def to_kilometers(unit)
15
+ @num.to_kilometers(unit)
16
16
  end
17
17
 
18
- def to_yards(meters)
19
- @num.to_yards(meters)
18
+ def to_miles(unit)
19
+ @num.to_miles(unit)
20
20
  end
21
21
 
22
- def to_feet(yards)
23
- @num.to_feet(yards)
22
+ def to_meters(unit)
23
+ @num.to_meters(unit)
24
24
  end
25
25
 
26
- def to_inches(feet)
27
- @num.to_inches(feet)
26
+ def to_yards(unit)
27
+ @num.to_yards(unit)
28
+ end
29
+
30
+ def to_feet(unit)
31
+ @num.to_feet(unit)
32
+ end
33
+
34
+ def to_inches(unit)
35
+ @num.to_inches(unit)
36
+ end
37
+
38
+ def to_centimeters(unit)
39
+ @num.to_centimeters(unit)
28
40
  end
29
41
  end
30
42
 
@@ -34,32 +46,181 @@ class FixnumExtensionTest < Minitest::Test
34
46
  assert_equal 0.017453292519943295, number.to_radians
35
47
  end
36
48
 
49
+ def test_to_kilometers
50
+ number = Number.new(2)
51
+
52
+ expects = 2 * 100000.0
53
+ assert_equal expects, number.to_kilometers('centimeters')
54
+
55
+ expects = 2 * 39370.1
56
+ assert_equal expects, number.to_kilometers('inches')
57
+
58
+ expects = 2 * 3280.84
59
+ assert_equal expects, number.to_kilometers('feet')
60
+
61
+ expects = 2 * 1093.61
62
+ assert_equal expects, number.to_kilometers('yards')
63
+
64
+ expects = 2 * 1000.0
65
+ assert_equal expects, number.to_kilometers('meters')
66
+
67
+ expects = 2 * 0.621371
68
+ assert_equal expects, number.to_kilometers('miles')
69
+
70
+ expects = 2
71
+ assert_equal expects, number.to_kilometers('kilometers')
72
+ end
73
+
74
+
75
+
76
+ def test_to_miles
77
+ number = Number.new(2)
78
+
79
+ expects = 2 * 160934.0
80
+ assert_equal expects, number.to_miles('centimeters')
81
+
82
+ expects = 2 * 63360.0
83
+ assert_equal expects, number.to_miles('inches')
84
+
85
+ expects = 2 * 5280.0
86
+ assert_equal expects, number.to_miles('feet')
87
+
88
+ expects = 2 * 1760.0
89
+ assert_equal expects, number.to_miles('yards')
90
+
91
+ expects = 2 * 1609.34
92
+ assert_equal expects, number.to_miles('meters')
93
+
94
+ expects = 2
95
+ assert_equal expects, number.to_miles('miles')
96
+
97
+ expects = 2 * 1.60934
98
+ assert_equal expects, number.to_miles('kilometers')
99
+ end
100
+
37
101
  def test_to_meters
38
- number = Number.new(1)
39
- expects = 3 * ::Geodesy::YARDS_PER_METER
102
+ number = Number.new(2)
103
+
104
+ expects = 2 * 100
105
+ assert_equal expects, number.to_meters('centimeters')
106
+
107
+ expects = 2 * 39.3701
108
+ assert_equal expects, number.to_meters('inches')
109
+
110
+ expects = 2 * 3.28084
111
+ assert_equal expects, number.to_meters('feet')
112
+
113
+ expects = 2 * 1.09361
114
+ assert_equal expects, number.to_meters('yards')
115
+
116
+ expects = 2
117
+ assert_equal expects, number.to_meters('meters')
40
118
 
41
- assert_equal expects, number.to_meters(3)
119
+ expects = 2 * 0.000621371
120
+ assert_equal expects, number.to_meters('miles')
121
+
122
+ expects = 2 * 0.001
123
+ assert_equal expects, number.to_meters('kilometers')
42
124
  end
43
125
 
44
126
 
45
127
  def test_to_yards
46
- number = Number.new(1)
47
- expects = 3 * ::Geodesy::METERS_TO_YARDS
128
+ number = Number.new(2)
129
+
130
+ expects = 2 * 91.44
131
+ assert_equal expects, number.to_yards('centimeters')
132
+
133
+ expects = 2 * 36
134
+ assert_equal expects, number.to_yards('inches')
135
+
136
+ expects = 2 * 3
137
+ assert_equal expects, number.to_yards('feet')
48
138
 
49
- assert_equal expects, number.to_yards(3)
139
+ expects = 2
140
+ assert_equal expects, number.to_yards('yards')
141
+
142
+ expects = 2 * 1760.0
143
+ assert_equal expects, number.to_yards('meters')
144
+
145
+ expects = 2 * 0.000568182
146
+ assert_equal expects, number.to_yards('miles')
147
+
148
+ expects = 2 * 0.0009144
149
+ assert_equal expects, number.to_yards('kilometers')
50
150
  end
51
151
 
52
152
  def test_to_feet
53
- number = Number.new(1)
54
- expects = 3 * 3
153
+ number = Number.new(2)
154
+
155
+ expects = 2 * 30.48
156
+ assert_equal expects, number.to_feet('centimeters')
55
157
 
56
- assert_equal expects, number.to_feet(3)
158
+ expects = 2 * 12
159
+ assert_equal expects, number.to_feet('inches')
160
+
161
+ expects = 2
162
+ assert_equal expects, number.to_feet('feet')
163
+
164
+ expects = 2 * 0.333333
165
+ assert_equal expects, number.to_feet('yards')
166
+
167
+ expects = 2 * 0.3048
168
+ assert_equal expects, number.to_feet('meters')
169
+
170
+ expects = 2 * 0.000189394
171
+ assert_equal expects, number.to_feet('miles')
172
+
173
+ expects = 2 * 0.0003048
174
+ assert_equal expects, number.to_feet('kilometers')
57
175
  end
58
176
 
59
177
  def test_to_inches
60
- number = Number.new(1)
61
- expects = 3 * 12
178
+ number = Number.new(2)
179
+
180
+ expects = 2 * 2.54
181
+ assert_equal expects, number.to_inches('centimeters')
182
+
183
+ assert_equal 2, number.to_inches('inches')
62
184
 
63
- assert_equal expects, number.to_inches(3)
185
+ expects = 2 * 0.0833333
186
+ assert_equal expects, number.to_inches('feet')
187
+
188
+ expects = 2 * 0.0277778
189
+ assert_equal expects, number.to_inches('yards')
190
+
191
+ expects = 2 * 0.0254
192
+ assert_equal expects, number.to_inches('meters')
193
+
194
+ expects = 2 * 1.5783e-5
195
+ assert_equal expects, number.to_inches('miles')
196
+
197
+ expects = 2 * 2.54e-5
198
+ assert_equal expects, number.to_inches('kilometers')
64
199
  end
200
+
201
+
202
+ def test_to_centimeters
203
+ number = Number.new(2)
204
+
205
+ assert_equal 2, number.to_centimeters('centimeters')
206
+
207
+ expects = 2 * 0.393701
208
+ assert_equal expects, number.to_centimeters('inches')
209
+
210
+ expects = 2 * 0.0328084
211
+ assert_equal expects, number.to_centimeters('feet')
212
+
213
+ expects = 2 * 0.0109361
214
+ assert_equal expects, number.to_centimeters('yards')
215
+
216
+ expects = 2 * 0.01
217
+ assert_equal expects, number.to_centimeters('meters')
218
+
219
+ expects = 2 * 6.2137e-6
220
+ assert_equal expects, number.to_centimeters('miles')
221
+
222
+ expects = 2 * 1e-5
223
+ assert_equal expects, number.to_centimeters('kilometers')
224
+ end
225
+
65
226
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geodesy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-11 00:00:00.000000000 Z
11
+ date: 2015-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -119,4 +119,3 @@ test_files:
119
119
  - test/latitude_test.rb
120
120
  - test/longitude_test.rb
121
121
  - test/test_helper.rb
122
- has_rdoc: