measured 2.0.0 → 2.1.0

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: 7c468b43dd721649e5b050c0ad7f81b17e541734
4
- data.tar.gz: d7c36b859f8e80539841a8a52457f923ca175136
3
+ metadata.gz: 4648c97b03e2458e77b1d85bba0c5509059a0d86
4
+ data.tar.gz: 233b64d44b798c9e745cba485410a72180436009
5
5
  SHA512:
6
- metadata.gz: fae18c324062e6274e0b6dab29b2ed0bcdb88012d90859edbc23fad081d1c02aba34710f54d0ecb2e7eb92a1940ef382fd5c0edaf2700ba2fc0ce422e333a3e7
7
- data.tar.gz: ef22bf6cc930d8e3835095952e9aad259e32475584a0d0537f38f459e4ab141d4713f275f1c33d35e52eeabf0c7221c6192cec137827d3938287ece2e603f1da
6
+ metadata.gz: a48e99cdcd87f090ab3138228391c6ec682de456f49b34a7afb88480b3ea8c985e5b269e243c40f0f941a69141b97be1ef4417af6b0dbcf0a1061dbc222af59c
7
+ data.tar.gz: a8d54d54cc160e18947c40e405efe57caab4f1d1b9bdd84521e00b5390410b271a49f1325daa6b8f302c2fb5285cd327018cd16aa40fb79ab8499e32a232bb7c
data/README.md CHANGED
@@ -143,20 +143,46 @@ Measured::Weight.unit_names_with_aliases
143
143
 
144
144
  ## Units and conversions
145
145
 
146
+ ### SI units support
147
+
148
+ There is support for SI units through the use of `si_unit`. Units declared through it will have automatic support for all SI prefixes:
149
+
150
+ | Multiplying Factor | SI Prefix | Scientific Notation |
151
+ | --------------------------------- | --------- | --------------------- |
152
+ | 1 000 000 000 000 000 000 000 000 | yotta (Y) | 10^24 |
153
+ | 1 000 000 000 000 000 000 000 | zetta (Z) | 10^21 |
154
+ | 1 000 000 000 000 000 000 | exa (E) | 10^18 |
155
+ | 1 000 000 000 000 000 | peta (P) | 10^15 |
156
+ | 1 000 000 000 000 | tera (T) | 10^12 |
157
+ | 1 000 000 000 | giga (G) | 10^9 |
158
+ | 1 000 000 | mega (M) | 10^6 |
159
+ | 1 000 | kilo (k) | 10^3 |
160
+ | 0.001 | milli (m) | 10^-3 |
161
+ | 0.000 001 | micro (µ) | 10^-6 |
162
+ | 0.000 000 001 | nano (n) | 10^-9 |
163
+ | 0.000 000 000 001 | pico (p) | 10^-12 |
164
+ | 0.000 000 000 000 001 | femto (f) | 10^-15 |
165
+ | 0.000 000 000 000 000 001 | atto (a) | 10^-18 |
166
+ | 0.000 000 000 000 000 000 001 | zepto (z) | 10^-21 |
167
+ | 0.000 000 000 000 000 000 000 001 | yocto (y) | 10^-24 |
168
+
146
169
  ### Bundled unit conversion
147
170
 
148
171
  * `Measured::Weight`
149
- * g, gram, grams
150
- * kg, kilogram, kilograms
172
+ * g, gram, grams, and all SI prefixes
173
+ * t, metric_ton, metric_tons
174
+ * slug, slugs
175
+ * N, newtons, newton
176
+ * long_ton, long_tons, weight_ton, weight_tons, 'W/T', imperial_ton, imperial_tons, displacement_ton, displacement_tons
177
+ * short_ton, short_tons
151
178
  * lb, lbs, pound, pounds
152
179
  * oz, ounce, ounces
153
180
  * `Measured::Length`
154
- * m, meter, metre, meters, metres
155
- * cm, centimeter, centimetre, centimeters, centimetres
156
- * mm, millimeter, millimetre, millimeters, millimetres
181
+ * m, meter, metre, meters, metres, and all SI prefixes
157
182
  * in, inch, inches
158
183
  * ft, foot, feet
159
184
  * yd, yard, yards
185
+ * mi, mile, miles
160
186
 
161
187
  You can skip these and only define your own units by doing:
162
188
 
@@ -8,12 +8,49 @@ class Measured::UnitSystemBuilder
8
8
  nil
9
9
  end
10
10
 
11
+ def si_unit(unit_name, aliases: [], value: nil)
12
+ @units += build_si_units(unit_name, aliases: aliases, value: value)
13
+ nil
14
+ end
15
+
11
16
  def build
12
17
  Measured::UnitSystem.new(@units)
13
18
  end
14
19
 
15
20
  private
16
21
 
22
+ SI_PREFIXES = [
23
+ ["y", "yocto", -24],
24
+ ["z", "zepto", -21],
25
+ ["a", "atto", -18],
26
+ ["f", "femto", -15],
27
+ ["p", "pico", -12],
28
+ ["n", "nano", -9],
29
+ ["μ", "micro", -6],
30
+ ["m", "milli", -3],
31
+ ["c", "centi", -2],
32
+ ["d", "deci", -1],
33
+ ["da", "deca", 1],
34
+ ["h", "hecto", 2],
35
+ ["k", "kilo", 3],
36
+ ["M", "mega", 6],
37
+ ["G", "giga", 9],
38
+ ["T", "tera", 12],
39
+ ["P", "peta", 15],
40
+ ["E", "exa", 18],
41
+ ["Z", "zetta", 21],
42
+ ["Y", "yotta", 24]
43
+ ]
44
+
45
+ def build_si_units(name, aliases: [], value: nil)
46
+ si_units = [build_unit(name, aliases: aliases, value: value)]
47
+ SI_PREFIXES.each do |short, long, exp|
48
+ long_names = aliases.map { |suffix| "#{long}#{suffix}" }
49
+ si_units << build_unit("#{short}#{name}", aliases: long_names, value: "#{10 ** exp} #{name}")
50
+ end
51
+ si_units
52
+ end
53
+
17
54
  def build_unit(name, aliases: [], value: nil)
18
55
  unit = Measured::Unit.new(name, aliases: aliases, value: value)
19
56
  check_for_duplicate_unit_names!(unit)
@@ -1,8 +1,8 @@
1
1
  Measured::Length = Measured.build do
2
- unit :m, aliases: [:meter, :metre, :meters, :metres]
3
- unit :cm, value: "1/100 m", aliases: [:centimeter, :centimetre, :centimeters, :centimetres]
4
- unit :mm, value: "1/1000 m", aliases: [:millimeter, :millimetre, :millimeters, :millimetres]
2
+ si_unit :m, aliases: [:meter, :metre, :meters, :metres]
3
+
5
4
  unit :in, value: "0.0254 m", aliases: [:inch, :inches]
6
5
  unit :ft, value: "12 in", aliases: [:foot, :feet]
7
6
  unit :yd, value: "3 ft", aliases: [:yard, :yards]
7
+ unit :mi, value: "5280 ft", aliases: [:mile, :miles]
8
8
  end
@@ -1,6 +1,11 @@
1
1
  Measured::Weight = Measured.build do
2
- unit :g, aliases: [:gram, :grams]
3
- unit :kg, value: "1000 g", aliases: [:kilogram, :kilograms]
2
+ si_unit :g, aliases: [:gram, :grams]
3
+
4
+ unit :t, value: "1000 kg", aliases: [:metric_ton, :metric_tons]
5
+ unit :slug, value: "14.593903 kg", aliases: [:slugs]
6
+ unit :N, value: "0.10197162129779283 kg", aliases: [:newtons, :newton]
7
+ unit :long_ton, value: "2240 lb", aliases: [:long_tons, :weight_ton, :weight_tons, 'W/T', :imperial_ton, :imperial_tons, :displacement_ton, :displacement_tons]
8
+ unit :short_ton, value: "2000 lb", aliases: [:short_tons]
4
9
  unit :lb, value: "0.45359237 kg", aliases: [:lbs, :pound, :pounds]
5
10
  unit :oz, value: "1/16 lb", aliases: [:ounce, :ounces]
6
11
  end
@@ -1,3 +1,3 @@
1
1
  module Measured
2
- VERSION = "2.0.0"
2
+ VERSION = "2.1.0"
3
3
  end
@@ -37,4 +37,76 @@ class Measured::UnitSystemBuilderTest < ActiveSupport::TestCase
37
37
 
38
38
  assert_equal 'BOLD', measurable.unit_system.unit_for!(:BOLD).name
39
39
  end
40
+
41
+ test "#si_unit adds 21 new units" do
42
+ measurable = Measured.build do
43
+ unit :ft
44
+ si_unit :in, value: "12 ft", aliases: [:ins]
45
+ end
46
+
47
+ assert_equal 22, measurable.unit_names.count
48
+ end
49
+
50
+ test "#si_unit creates units with si prefixes" do
51
+ measurable = Measured.build do
52
+ unit :in
53
+ si_unit :ft, value: "12 in", aliases: [:fts]
54
+ end
55
+
56
+ prefixes = Measured::UnitSystemBuilder::SI_PREFIXES.map { |short, _, _| "#{short}ft" }
57
+ prefixes += %w(in ft)
58
+ assert_equal prefixes.sort, measurable.unit_names
59
+ end
60
+
61
+ test "#si_unit cannot add duplicate unit names" do
62
+ assert_raises Measured::UnitError do
63
+ Measured.build do
64
+ unit :m
65
+ si_unit :in, aliases: [:inch], value: "0.0254 m"
66
+ si_unit :in, aliases: [:thing], value: "123 m"
67
+ end
68
+ end
69
+
70
+ assert_raises Measured::UnitError do
71
+ Measured.build do
72
+ unit :m
73
+ si_unit :in, aliases: [:inch], value: "0.0254 m"
74
+ si_unit :inch, aliases: [:thing], value: "123 m"
75
+ end
76
+ end
77
+ end
78
+
79
+ test "#si_unit is case sensitive" do
80
+ measurable = Measured.build do
81
+ unit :normal
82
+ si_unit :bold, value: "10 normal"
83
+ si_unit :BOLD, value: "100 normal"
84
+ end
85
+
86
+ assert_equal "yBOLD", measurable.unit_system.unit_for!(:yBOLD).name
87
+ assert_equal "YBOLD", measurable.unit_system.unit_for!(:YBOLD).name
88
+ assert_equal "BOLD", measurable.unit_system.unit_for!(:BOLD).name
89
+ end
90
+
91
+ test "#si_unit generates working units when given base unit" do
92
+ measurable = Measured.build do
93
+ si_unit :g, aliases: [:gram, :grams]
94
+ unit :bigg, value: "1000 g"
95
+ end
96
+
97
+ assert_equal 1000, measurable.unit_system.unit_for!(:bigg).conversion_amount
98
+ assert_equal "g", measurable.unit_system.unit_for!(:bigg).conversion_unit
99
+ assert_equal 1000, measurable.unit_system.unit_for!(:kg).conversion_amount
100
+ assert_equal "g", measurable.unit_system.unit_for!(:kg).conversion_unit
101
+ end
102
+
103
+ test "#si_unit generates working units when given non base unit" do
104
+ measurable = Measured.build do
105
+ unit :lb
106
+ si_unit :long_ton, value: "2240 lb", aliases: ["long ton", "long tons"]
107
+ end
108
+
109
+ assert_equal (2240), measurable.unit_system.unit_for!(:long_ton).conversion_amount
110
+ assert_equal "lb", measurable.unit_system.unit_for!(:long_ton).conversion_unit
111
+ end
40
112
  end
@@ -2,18 +2,18 @@ require "test_helper"
2
2
 
3
3
  class Measured::LengthTest < ActiveSupport::TestCase
4
4
  test ".unit_names_with_aliases should be the expected list of valid units" do
5
- assert_equal(
6
- %w(
7
- centimeter centimeters centimetre centimetres cm feet foot ft
8
- in inch inches m meter meters metre metres millimeter
9
- millimeters millimetre millimetres mm yard yards yd
10
- ),
11
- Measured::Length.unit_names_with_aliases
12
- )
5
+ expected_units = %w(m meter metre meters metres feet foot ft in inch inches mi mile miles yard yards yd)
6
+ expected_units += Measured::UnitSystemBuilder::SI_PREFIXES.flat_map do |short, long, _|
7
+ ["#{short}m", "#{long}meter", "#{long}metre", "#{long}meters", "#{long}metres"]
8
+ end
9
+
10
+ assert_equal expected_units.sort, Measured::Length.unit_names_with_aliases
13
11
  end
14
12
 
15
13
  test ".unit_names should be the list of base unit names" do
16
- assert_equal %w(cm ft in m mm yd), Measured::Length.unit_names
14
+ expected_units = %w(m ft in mi yd)
15
+ expected_units += Measured::UnitSystemBuilder::SI_PREFIXES.map { |short, _, _| "#{short}m" }
16
+ assert_equal expected_units.sort, Measured::Length.unit_names
17
17
  end
18
18
 
19
19
  test ".name" do
@@ -37,10 +37,18 @@ class Measured::LengthTest < ActiveSupport::TestCase
37
37
  assert_conversion Measured::Length, "2000 cm", "0.7874015748E3 in"
38
38
  end
39
39
 
40
+ test ".convert_to from cm to km" do
41
+ assert_exact_conversion Measured::Length, "2000 cm", "0.02 km"
42
+ end
43
+
40
44
  test ".convert_to from cm to m" do
41
45
  assert_exact_conversion Measured::Length, "2000 cm", "20 m"
42
46
  end
43
47
 
48
+ test ".convert_to from cm to mi" do
49
+ assert_conversion Measured::Length, "2000 cm", "0.1242742E-1 mi"
50
+ end
51
+
44
52
  test ".convert_to from cm to mm" do
45
53
  assert_exact_conversion Measured::Length, "2000 cm", "20000 mm"
46
54
  end
@@ -61,10 +69,18 @@ class Measured::LengthTest < ActiveSupport::TestCase
61
69
  assert_exact_conversion Measured::Length, "2000 ft", "24000 in"
62
70
  end
63
71
 
72
+ test ".convert_to from ft to km" do
73
+ assert_conversion Measured::Length, "2000 ft", "0.6096 km"
74
+ end
75
+
64
76
  test ".convert_to from ft to m" do
65
77
  assert_exact_conversion Measured::Length, "2000 ft", "609.6 m"
66
78
  end
67
79
 
80
+ test ".convert_to from ft to mi" do
81
+ assert_conversion Measured::Length, "2000 ft", "0.3787879 mi"
82
+ end
83
+
68
84
  test ".convert_to from ft to mm" do
69
85
  assert_conversion Measured::Length, "2000 ft", "609600 mm"
70
86
  end
@@ -85,10 +101,18 @@ class Measured::LengthTest < ActiveSupport::TestCase
85
101
  assert_exact_conversion Measured::Length, "2000 in", "2000 in"
86
102
  end
87
103
 
104
+ test ".convert_to from in to km" do
105
+ assert_conversion Measured::Length, "2000 in", "0.508E-1 km"
106
+ end
107
+
88
108
  test ".convert_to from in to m" do
89
109
  assert_conversion Measured::Length, "2000 in", "50.8 m"
90
110
  end
91
111
 
112
+ test ".convert_to from in to mi" do
113
+ assert_conversion Measured::Length, "2000 in", "0.31565658E-1 mi"
114
+ end
115
+
92
116
  test ".convert_to from in to mm" do
93
117
  assert_conversion Measured::Length, "2000 in", "50800 mm"
94
118
  end
@@ -97,8 +121,40 @@ class Measured::LengthTest < ActiveSupport::TestCase
97
121
  assert_conversion Measured::Length, "2000 in", "0.555555555384E2 yd"
98
122
  end
99
123
 
124
+ test ".convert_to from km to cm" do
125
+ assert_exact_conversion Measured::Length, "2000 km", "2.0E8 cm"
126
+ end
127
+
128
+ test ".convert_to from km to ft" do
129
+ assert_conversion Measured::Length, "2000 km", "0.6561679790026247E7 ft"
130
+ end
131
+
132
+ test ".convert_to from km to in" do
133
+ assert_conversion Measured::Length, "2000 km", "0.78740157480315E8 in"
134
+ end
135
+
136
+ test ".convert_to from km to km" do
137
+ assert_exact_conversion Measured::Length, "2000 km", "2000 km"
138
+ end
139
+
140
+ test ".convert_to from km to m" do
141
+ assert_exact_conversion Measured::Length, "2000 km", "2.0E6 m"
142
+ end
143
+
144
+ test ".convert_to from km to mi" do
145
+ assert_conversion Measured::Length, "2000 km", "0.1242742384475E4 mi"
146
+ end
147
+
148
+ test ".convert_to from km to mm" do
149
+ assert_exact_conversion Measured::Length, "2000 km", "2.0E9 mm"
150
+ end
151
+
152
+ test ".convert_to from km to yd" do
153
+ assert_conversion Measured::Length, "2000 km", "0.218722659667542E7 yd"
154
+ end
155
+
100
156
  test ".convert_to from m to cm" do
101
- assert_conversion Measured::Length, "2000 m", "200000 cm"
157
+ assert_exact_conversion Measured::Length, "2000 m", "200000 cm"
102
158
  end
103
159
 
104
160
  test ".convert_to from m to ft" do
@@ -109,10 +165,18 @@ class Measured::LengthTest < ActiveSupport::TestCase
109
165
  assert_conversion Measured::Length, "2000 m", "0.7874015748E5 in"
110
166
  end
111
167
 
168
+ test ".convert_to from m to km" do
169
+ assert_exact_conversion Measured::Length, "2000 m", "2 km"
170
+ end
171
+
112
172
  test ".convert_to from m to m" do
113
173
  assert_exact_conversion Measured::Length, "2000 m", "2000 m"
114
174
  end
115
175
 
176
+ test ".convert_to from m to mi" do
177
+ assert_conversion Measured::Length, "2000 m", "0.1242742E1 mi"
178
+ end
179
+
116
180
  test ".convert_to from m to mm" do
117
181
  assert_exact_conversion Measured::Length, "2000 m", "2000000 mm"
118
182
  end
@@ -121,6 +185,38 @@ class Measured::LengthTest < ActiveSupport::TestCase
121
185
  assert_conversion Measured::Length, "2000 m", "0.2187226596E4 yd"
122
186
  end
123
187
 
188
+ test ".convert_to from mi to cm" do
189
+ assert_conversion Measured::Length, "2000 mi", "0.3218688E9 cm"
190
+ end
191
+
192
+ test ".convert_to from mi to ft" do
193
+ assert_exact_conversion Measured::Length, "2000 mi", "0.1056E8 ft"
194
+ end
195
+
196
+ test ".convert_to from mi to in" do
197
+ assert_exact_conversion Measured::Length, "2000 mi", "0.12672E9 in"
198
+ end
199
+
200
+ test ".convert_to from mi to km" do
201
+ assert_conversion Measured::Length, "2000 mi", "0.3218688E4 km"
202
+ end
203
+
204
+ test ".convert_to from mi to m" do
205
+ assert_conversion Measured::Length, "2000 mi", "0.3218688E7 m"
206
+ end
207
+
208
+ test ".convert_to from mi to mi" do
209
+ assert_exact_conversion Measured::Length, "2000 mi", "2000 mi"
210
+ end
211
+
212
+ test ".convert_to from mi to mm" do
213
+ assert_conversion Measured::Length, "2000 mi", "0.3218688E10 mm"
214
+ end
215
+
216
+ test ".convert_to from mi to yd" do
217
+ assert_exact_conversion Measured::Length, "2000 mi", "3520000 yd"
218
+ end
219
+
124
220
  test ".convert_to from mm to cm" do
125
221
  assert_exact_conversion Measured::Length, "2000 mm", "200 cm"
126
222
  end
@@ -133,10 +229,18 @@ class Measured::LengthTest < ActiveSupport::TestCase
133
229
  assert_conversion Measured::Length, "2000 mm", "0.7874015748E2 in"
134
230
  end
135
231
 
232
+ test ".convert_to from mm to km" do
233
+ assert_exact_conversion Measured::Length, "2000 mm", "0.002 km"
234
+ end
235
+
136
236
  test ".convert_to from mm to m" do
137
237
  assert_exact_conversion Measured::Length, "2000 mm", "2 m"
138
238
  end
139
239
 
240
+ test ".convert_to from mm to mi" do
241
+ assert_conversion Measured::Length, "2000 mm", "0.1242742E-2 mi"
242
+ end
243
+
140
244
  test ".convert_to from mm to mm" do
141
245
  assert_exact_conversion Measured::Length, "2000 mm", "2000 mm"
142
246
  end
@@ -157,10 +261,18 @@ class Measured::LengthTest < ActiveSupport::TestCase
157
261
  assert_exact_conversion Measured::Length, "2000 yd", "72000 in"
158
262
  end
159
263
 
264
+ test ".convert_to from yd to km" do
265
+ assert_conversion Measured::Length, "2000 yd", "0.18288E1 km"
266
+ end
267
+
160
268
  test ".convert_to from yd to m" do
161
269
  assert_conversion Measured::Length, "2000 yd", "1828.8 m"
162
270
  end
163
271
 
272
+ test ".convert_to from yd to mi" do
273
+ assert_conversion Measured::Length, "2000 yd", "1.136364 mi"
274
+ end
275
+
164
276
  test ".convert_to from yd to mm" do
165
277
  assert_conversion Measured::Length, "2000 yd", "1828800 mm"
166
278
  end
@@ -6,17 +6,50 @@ class Measured::WeightTest < ActiveSupport::TestCase
6
6
  end
7
7
 
8
8
  test ".unit_names_with_aliases should be the expected list of valid units" do
9
- assert_equal(
10
- %w(g gram grams kg kilogram kilograms lb lbs ounce ounces oz pound pounds),
11
- Measured::Weight.unit_names_with_aliases
9
+ expected_units = %w(
10
+ N
11
+ W/T
12
+ displacement_ton
13
+ displacement_tons
14
+ g
15
+ gram
16
+ grams
17
+ imperial_ton
18
+ imperial_tons
19
+ lb
20
+ lbs
21
+ long_ton
22
+ long_tons
23
+ metric_ton
24
+ metric_tons
25
+ newton
26
+ newtons
27
+ ounce
28
+ ounces
29
+ oz
30
+ pound
31
+ pounds
32
+ short_ton
33
+ short_tons
34
+ slug
35
+ slugs
36
+ t
37
+ weight_ton
38
+ weight_tons
12
39
  )
40
+ expected_units += Measured::UnitSystemBuilder::SI_PREFIXES.flat_map do |short, long, _|
41
+ ["#{short}g", "#{long}gram", "#{long}grams"]
42
+ end
43
+
44
+ assert_equal expected_units.sort, Measured::Weight.unit_names_with_aliases
13
45
  end
14
46
 
15
47
  test ".unit_names should be the list of base unit names" do
16
- assert_equal %w(g kg lb oz), Measured::Weight.unit_names
48
+ expected_units = %w(N g lb long_ton oz short_ton slug t)
49
+ expected_units += Measured::UnitSystemBuilder::SI_PREFIXES.map { |short, _, _| "#{short}g" }
50
+ assert_equal expected_units.sort, Measured::Weight.unit_names
17
51
  end
18
52
 
19
-
20
53
  test "Measured::Weight() delegates automatically to .new" do
21
54
  assert_equal Measured::Weight.new(1, :lb), Measured::Weight(1, :lb)
22
55
  assert_equal Measured::Weight.new(2000, :g), Measured::Weight(2, :kg)
@@ -42,6 +75,26 @@ class Measured::WeightTest < ActiveSupport::TestCase
42
75
  assert_conversion Measured::Weight, "2000 g", "70.54792384 oz"
43
76
  end
44
77
 
78
+ test ".convert_to from g to slug" do
79
+ assert_conversion Measured::Weight, "2000 g", "0.1370435 slug"
80
+ end
81
+
82
+ test ".convert_to from g to N" do
83
+ assert_conversion Measured::Weight, "2000 g", "19.6133 N"
84
+ end
85
+
86
+ test ".convert_to from g to short_ton" do
87
+ assert_conversion Measured::Weight, "2000 g", "0.002204623 short_ton"
88
+ end
89
+
90
+ test ".convert_to from g to long_ton" do
91
+ assert_conversion Measured::Weight, "2000 g", "0.001968413055222 long_ton"
92
+ end
93
+
94
+ test ".convert_to from g to t" do
95
+ assert_exact_conversion Measured::Weight, "2000 g", "0.002 t"
96
+ end
97
+
45
98
  test ".convert_to from kg to g" do
46
99
  assert_exact_conversion Measured::Weight, "2000 kg", "2000000 g"
47
100
  end
@@ -58,6 +111,26 @@ class Measured::WeightTest < ActiveSupport::TestCase
58
111
  assert_conversion Measured::Weight, "2000 kg", "70547.92390 oz"
59
112
  end
60
113
 
114
+ test ".convert_to from kg to slug" do
115
+ assert_conversion Measured::Weight, "2000 kg", "137.0435311239221 slug"
116
+ end
117
+
118
+ test ".convert_to from kg to N" do
119
+ assert_conversion Measured::Weight, "2000 kg", "19613.3 N"
120
+ end
121
+
122
+ test ".convert_to from kg to short_ton" do
123
+ assert_conversion Measured::Weight, "2000 kg", "2.204622621848 short_ton"
124
+ end
125
+
126
+ test ".convert_to from kg to long_ton" do
127
+ assert_conversion Measured::Weight, "2000 kg", "1.9684130552220003 long_ton"
128
+ end
129
+
130
+ test ".convert_to from kg to t" do
131
+ assert_exact_conversion Measured::Weight, "2000 kg", "2 t"
132
+ end
133
+
61
134
  test ".convert_to from lb to g" do
62
135
  assert_exact_conversion Measured::Weight, "2000 lb", "907184.74 g"
63
136
  end
@@ -74,6 +147,26 @@ class Measured::WeightTest < ActiveSupport::TestCase
74
147
  assert_exact_conversion Measured::Weight, "2000 lb", "32000 oz"
75
148
  end
76
149
 
150
+ test ".convert_to from lb to slug" do
151
+ assert_conversion Measured::Weight, "2000 lb", "62.16190007566859 slug"
152
+ end
153
+
154
+ test ".convert_to from lb to N" do
155
+ assert_conversion Measured::Weight, "2000 lb", "8896.443230521 N"
156
+ end
157
+
158
+ test ".convert_to from lb to short_ton" do
159
+ assert_exact_conversion Measured::Weight, "2000 lb", "1 short_ton"
160
+ end
161
+
162
+ test ".convert_to from lb to long_ton" do
163
+ assert_conversion Measured::Weight, "2000 lb", "0.892857142857088 long_ton"
164
+ end
165
+
166
+ test ".convert_to from lb to t" do
167
+ assert_conversion Measured::Weight, "2000 lb", "0.90718474 t"
168
+ end
169
+
77
170
  test ".convert_to from oz to g" do
78
171
  assert_conversion Measured::Weight, "2000 oz", "56699.04625 g"
79
172
  end
@@ -90,4 +183,195 @@ class Measured::WeightTest < ActiveSupport::TestCase
90
183
  assert_exact_conversion Measured::Weight, "2000 oz", "2000 oz"
91
184
  end
92
185
 
186
+ test ".convert_to from oz to slug" do
187
+ assert_conversion Measured::Weight, "2000 oz", "3.885119 slug"
188
+ end
189
+
190
+ test ".convert_to from oz to N" do
191
+ assert_conversion Measured::Weight, "2000 oz", "556.0277019075625 N"
192
+ end
193
+
194
+ test ".convert_to from oz to short_ton" do
195
+ assert_conversion Measured::Weight, "2000 oz", "0.06249999999997801 short_ton"
196
+ end
197
+
198
+ test ".convert_to from oz to long_ton" do
199
+ assert_conversion Measured::Weight, "2000 oz", "0.055803571428568 long_ton"
200
+ end
201
+
202
+ test ".convert_to from oz to t" do
203
+ assert_conversion Measured::Weight, "2000 oz", "0.05669904625 t"
204
+ end
205
+
206
+ test ".convert_to from slug to g" do
207
+ assert_conversion Measured::Weight, "2000 slug", "29187806 g"
208
+ end
209
+
210
+ test ".convert_to from slug to kg" do
211
+ assert_conversion Measured::Weight, "2000 slug", "29187.805999999997 kg"
212
+ end
213
+
214
+ test ".convert_to from slug to lb" do
215
+ assert_conversion Measured::Weight, "2000 slug", "64348.09738973343 lb"
216
+ end
217
+
218
+ test ".convert_to from slug to oz" do
219
+ assert_conversion Measured::Weight, "2000 slug", "1029569.5582357347 oz"
220
+ end
221
+
222
+ test ".convert_to from slug to slug" do
223
+ assert_exact_conversion Measured::Weight, "2000 slug", "2000 slug"
224
+ end
225
+
226
+ test ".convert_to from slug to N" do
227
+ assert_conversion Measured::Weight, "2000 slug", "286234.59770989994 N"
228
+ end
229
+
230
+ test ".convert_to from slug to short_ton" do
231
+ assert_conversion Measured::Weight, "2000 slug", "32.17404869485539 short_ton"
232
+ end
233
+
234
+ test ".convert_to from slug to long_ton" do
235
+ assert_conversion Measured::Weight, "2000 slug", "28.726829191843514 long_ton"
236
+ end
237
+
238
+ test ".convert_to from slug to t" do
239
+ assert_conversion Measured::Weight, "2000 slug", "29.187806 t"
240
+ end
241
+
242
+ test ".convert_to from short_ton to g" do
243
+ assert_conversion Measured::Weight, "2000 short_ton", "1814369480 g"
244
+ end
245
+
246
+ test ".convert_to from short_ton to kg" do
247
+ assert_conversion Measured::Weight, "2000 short_ton", "1814369.48 kg"
248
+ end
249
+
250
+ test ".convert_to from short_ton to lb" do
251
+ assert_exact_conversion Measured::Weight, "2000 short_ton", "4000000 lb"
252
+ end
253
+
254
+ test ".convert_to from short_ton to oz" do
255
+ assert_exact_conversion Measured::Weight, "2000 short_ton", "64000000 oz"
256
+ end
257
+
258
+ test ".convert_to from short_ton to slug" do
259
+ assert_conversion Measured::Weight, "2000 short_ton", "124323.80015133717 slug"
260
+ end
261
+
262
+ test ".convert_to from short_ton to N" do
263
+ assert_conversion Measured::Weight, "2000 short_ton", "17792886.461041998 N"
264
+ end
265
+
266
+ test ".convert_to from short_ton to short_ton" do
267
+ assert_exact_conversion Measured::Weight, "2000 short_ton", "2000 short_ton"
268
+ end
269
+
270
+ test ".convert_to from short_ton to long_ton" do
271
+ assert_conversion Measured::Weight, "2000 short_ton", "1785.714285714176 long_ton"
272
+ end
273
+
274
+ test ".convert_to from short_ton to t" do
275
+ assert_conversion Measured::Weight, "2000 short_ton", "1814.36948 t"
276
+ end
277
+
278
+ test ".convert_to from long_ton to g" do
279
+ assert_conversion Measured::Weight, "2000 long_ton", "2032093817.6 g"
280
+ end
281
+
282
+ test ".convert_to from long_ton to kg" do
283
+ assert_conversion Measured::Weight, "2000 long_ton", "2032093.8176 kg"
284
+ end
285
+
286
+ test ".convert_to from long_ton to lb" do
287
+ assert_exact_conversion Measured::Weight, "2000 long_ton", "4480000 lb"
288
+ end
289
+
290
+ test ".convert_to from long_ton to oz" do
291
+ assert_exact_conversion Measured::Weight, "2000 long_ton", "71680000 oz"
292
+ end
293
+
294
+ test ".convert_to from long_ton to slug" do
295
+ assert_conversion Measured::Weight, "2000 long_ton", "139242.65616949764 slug"
296
+ end
297
+
298
+ test ".convert_to from long_ton to N" do
299
+ assert_conversion Measured::Weight, "2000 long_ton", "19928032.836367033 N"
300
+ end
301
+
302
+ test ".convert_to from long_ton to short_ton" do
303
+ assert_exact_conversion Measured::Weight, "2000 long_ton", "2240 short_ton"
304
+ end
305
+
306
+ test ".convert_to from long_ton to long_ton" do
307
+ assert_conversion Measured::Weight, "2000 long_ton", "2000 long_ton"
308
+ end
309
+
310
+ test ".convert_to from long_ton to t" do
311
+ assert_conversion Measured::Weight, "2000 long_ton", "2032.0938176 t"
312
+ end
313
+
314
+ test ".convert_to from N to g" do
315
+ assert_conversion Measured::Weight, "2000 N", "203943.24259558567 g"
316
+ end
317
+
318
+ test ".convert_to from N to kg" do
319
+ assert_conversion Measured::Weight, "2000 N", "203.9432425955857 kg"
320
+ end
321
+
322
+ test ".convert_to from N to lb" do
323
+ assert_conversion Measured::Weight, "2000 N", "449.6178861994211 lb"
324
+ end
325
+
326
+ test ".convert_to from N to oz" do
327
+ assert_conversion Measured::Weight, "2000 N", "7193.886179190737 oz"
328
+ end
329
+
330
+ test ".convert_to from N to slug" do
331
+ assert_conversion Measured::Weight, "2000 N", "13.974551057080868 slug"
332
+ end
333
+
334
+ test ".convert_to from N to N" do
335
+ assert_exact_conversion Measured::Weight, "2000 N", "2000 N"
336
+ end
337
+
338
+ test ".convert_to from N to short_ton" do
339
+ assert_conversion Measured::Weight, "2000 N", "0.2248089430996314 short_ton"
340
+ end
341
+
342
+ test ".convert_to from N to long_ton" do
343
+ assert_conversion Measured::Weight, "2000 N", "0.20072227062472917 long_ton"
344
+ end
345
+
346
+ test ".convert_to from N to t" do
347
+ assert_conversion Measured::Weight, "2000 N", "0.2039432425955857 t"
348
+ end
349
+
350
+ test ".convert_to from t to g" do
351
+ assert_exact_conversion Measured::Weight, "2000 t", "2000000000 g"
352
+ end
353
+
354
+ test ".convert_to from t to kg" do
355
+ assert_exact_conversion Measured::Weight, "2000 t", "2000000 kg"
356
+ end
357
+
358
+ test ".convert_to from t to lb" do
359
+ assert_conversion Measured::Weight, "2000 t", "4409245.243697552 lb"
360
+ end
361
+
362
+ test ".convert_to from t to oz" do
363
+ assert_conversion Measured::Weight, "2000 t", "70547923.89916082 oz"
364
+ end
365
+
366
+ test ".convert_to from t to slug" do
367
+ assert_conversion Measured::Weight, "2000 t", "137043.5311239221 slug"
368
+ end
369
+
370
+ test ".convert_to from t to short_ton" do
371
+ assert_conversion Measured::Weight, "2000 t", "2204.622621848 short_ton"
372
+ end
373
+
374
+ test ".convert_to from t to t" do
375
+ assert_conversion Measured::Weight, "2000 t", "2000 t"
376
+ end
93
377
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: measured
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin McPhillips
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-04-05 00:00:00.000000000 Z
11
+ date: 2017-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport