measured 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/README.md +208 -0
- data/Rakefile +21 -0
- data/lib/measured/arithmetic.rb +37 -0
- data/lib/measured/base.rb +13 -0
- data/lib/measured/conversion.rb +91 -0
- data/lib/measured/conversion_table.rb +67 -0
- data/lib/measured/measurable.rb +67 -0
- data/lib/measured/unit.rb +59 -0
- data/lib/measured/units/length.rb +26 -0
- data/lib/measured/units/weight.rb +18 -0
- data/lib/measured/version.rb +3 -0
- data/lib/measured.rb +4 -0
- data/measured.gemspec +28 -0
- data/test/arithmetic_test.rb +133 -0
- data/test/conversion_table_test.rb +19 -0
- data/test/conversion_test.rb +206 -0
- data/test/measurable_test.rb +118 -0
- data/test/support/fake_system.rb +26 -0
- data/test/test_helper.rb +20 -0
- data/test/unit_error_test.rb +7 -0
- data/test/unit_test.rb +77 -0
- data/test/units/length_test.rb +160 -0
- data/test/units/weight_test.rb +80 -0
- metadata +165 -0
@@ -0,0 +1,118 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Measured::MeasurableTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
setup do
|
6
|
+
@magic = Magic.new(10, :magic_missile)
|
7
|
+
end
|
8
|
+
|
9
|
+
test "#initialize requires two params, the amount and the unit" do
|
10
|
+
assert_nothing_raised do
|
11
|
+
Magic.new(1, "fireball")
|
12
|
+
end
|
13
|
+
|
14
|
+
assert_raises ArgumentError do
|
15
|
+
Magic.new(1)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
test "#initialize converts unit to string from symbol" do
|
20
|
+
magic = Magic.new(1, :arcane)
|
21
|
+
assert_equal "arcane", magic.unit
|
22
|
+
end
|
23
|
+
|
24
|
+
test "#initialize raises if it is an unknown unit" do
|
25
|
+
assert_raises Measured::UnitError do
|
26
|
+
Magic.new(1, "slash")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
test "#initialize converts numbers and strings into BigDecimal" do
|
31
|
+
assert_equal BigDecimal(1), Magic.new(1, :arcane).value
|
32
|
+
assert_equal BigDecimal("2.3"), Magic.new("2.3", :arcane).value
|
33
|
+
assert_equal BigDecimal("5"), Magic.new("5", :arcane).value
|
34
|
+
end
|
35
|
+
|
36
|
+
test "#initialize converts to the base unit name" do
|
37
|
+
assert_equal "fireball", Magic.new(1, :fire).unit
|
38
|
+
end
|
39
|
+
|
40
|
+
test "#unit allows you to read the unit string" do
|
41
|
+
assert_equal "magic_missile", @magic.unit
|
42
|
+
end
|
43
|
+
|
44
|
+
test "#value allows you to read the numeric value" do
|
45
|
+
assert_equal BigDecimal(10), @magic.value
|
46
|
+
end
|
47
|
+
|
48
|
+
test ".conversion is set and cached" do
|
49
|
+
conversion = Magic.conversion
|
50
|
+
|
51
|
+
assert_instance_of Measured::Conversion, conversion
|
52
|
+
assert_equal conversion, Magic.conversion
|
53
|
+
end
|
54
|
+
|
55
|
+
test ".units returns just the base units" do
|
56
|
+
assert_equal ["arcane", "fireball", "ice", "magic_missile", "ultima"], Magic.units
|
57
|
+
end
|
58
|
+
|
59
|
+
test ".units_with_aliases returns all units" do
|
60
|
+
assert_equal ["arcane", "fire", "fireball", "fireballs", "ice", "magic_missile", "magic_missiles", "ultima"], Magic.units_with_aliases
|
61
|
+
end
|
62
|
+
|
63
|
+
test "#convert_to raises on an invalid unit" do
|
64
|
+
assert_raises Measured::UnitError do
|
65
|
+
@magic.convert_to(:punch)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
test "#convert_to returns a new object of the same type in the new unit" do
|
70
|
+
converted = @magic.convert_to(:arcane)
|
71
|
+
|
72
|
+
refute_equal converted, @magic
|
73
|
+
assert_equal BigDecimal(10), @magic.value
|
74
|
+
assert_equal "magic_missile", @magic.unit
|
75
|
+
assert_equal BigDecimal(1), converted.value
|
76
|
+
assert_equal "arcane", converted.unit
|
77
|
+
end
|
78
|
+
|
79
|
+
test "#convert_to! replaces the existing object with a new version in the new unit" do
|
80
|
+
converted = @magic.convert_to!(:arcane)
|
81
|
+
|
82
|
+
assert_equal converted, @magic
|
83
|
+
assert_equal BigDecimal(1), @magic.value
|
84
|
+
assert_equal "arcane", @magic.unit
|
85
|
+
assert_equal BigDecimal(1), converted.value
|
86
|
+
assert_equal "arcane", converted.unit
|
87
|
+
end
|
88
|
+
|
89
|
+
test "#to_s outputs the number and the unit" do
|
90
|
+
assert_equal "10 fireball", Magic.new(10, :fire).to_s
|
91
|
+
assert_equal "1.234 magic_missile", Magic.new("1.234", :magic_missile).to_s
|
92
|
+
end
|
93
|
+
|
94
|
+
test "#inspect shows the number and the unit" do
|
95
|
+
assert_equal "#<Magic: 0.1E2 fireball>", Magic.new(10, :fire).inspect
|
96
|
+
assert_equal "#<Magic: 0.1234E1 magic_missile>", Magic.new("1.234", :magic_missile).inspect
|
97
|
+
end
|
98
|
+
|
99
|
+
test "#<=> compares only if the class and unit are the same" do
|
100
|
+
assert_nil @magic <=> Magic.new(10, :fire)
|
101
|
+
assert_equal 1, @magic <=> Magic.new(9, :magic_missile)
|
102
|
+
assert_equal 0, @magic <=> Magic.new(10, :magic_missile)
|
103
|
+
assert_equal -1, @magic <=> Magic.new(11, :magic_missile)
|
104
|
+
end
|
105
|
+
|
106
|
+
test "#== should be the same if the classes, unit, and amount match" do
|
107
|
+
assert @magic == @magic
|
108
|
+
assert Magic.new(10, :magic_missile) == Magic.new("10", "magic_missile")
|
109
|
+
refute Magic.new(1, :arcane) == Magic.new(10, :magic_missile)
|
110
|
+
end
|
111
|
+
|
112
|
+
test "#eql? should be the same if the classes, unit, and amount match" do
|
113
|
+
assert @magic == @magic
|
114
|
+
assert Magic.new(10, :magic_missile) == Magic.new("10", "magic_missile")
|
115
|
+
refute Magic.new(1, :arcane) == Magic.new(10, :magic_missile)
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class Magic < Measured::Measurable
|
2
|
+
|
3
|
+
conversion.set_base :magic_missile,
|
4
|
+
aliases: [:magic_missiles]
|
5
|
+
|
6
|
+
conversion.add :fireball,
|
7
|
+
aliases: [:fire, :fireballs],
|
8
|
+
value: "2/3 magic_missile"
|
9
|
+
|
10
|
+
conversion.add :ice,
|
11
|
+
value: "2 magic_missile"
|
12
|
+
|
13
|
+
conversion.add :arcane,
|
14
|
+
value: "10 magic_missile"
|
15
|
+
|
16
|
+
conversion.add :ultima,
|
17
|
+
value: "10 arcane"
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
class OtherFakeSystem < Measured::Measurable
|
22
|
+
|
23
|
+
conversion.set_base :other_fake_base
|
24
|
+
conversion.add :other_fake1, value: "2 other_fake_base"
|
25
|
+
|
26
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require "measured"
|
2
|
+
require "minitest/autorun"
|
3
|
+
require "mocha/setup"
|
4
|
+
require "pry"
|
5
|
+
|
6
|
+
ActiveSupport.test_order = :random
|
7
|
+
|
8
|
+
require "support/fake_system"
|
9
|
+
|
10
|
+
class ActiveSupport::TestCase
|
11
|
+
|
12
|
+
protected
|
13
|
+
|
14
|
+
def assert_conversion(klass, from, to)
|
15
|
+
from_amount, from_unit = from.split(" ")
|
16
|
+
to_amount, to_unit = to.split(" ")
|
17
|
+
|
18
|
+
assert_equal BigDecimal(to_amount), klass.new(from_amount, from_unit).convert_to(to_unit).value
|
19
|
+
end
|
20
|
+
end
|
data/test/unit_test.rb
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Measured::UnitTest < ActiveSupport::TestCase
|
4
|
+
setup do
|
5
|
+
@unit = Measured::Unit.new(:pie, value: "10 cake")
|
6
|
+
end
|
7
|
+
|
8
|
+
test "#initialize converts the name to a string" do
|
9
|
+
assert_equal "pie", @unit.name
|
10
|
+
end
|
11
|
+
|
12
|
+
test "#initialize converts aliases to strings and makes a list of names which includes the base" do
|
13
|
+
assert_equal ["cake", "pie", "sweets"], Measured::Unit.new(:pie, aliases: ["cake", :sweets]).names
|
14
|
+
end
|
15
|
+
|
16
|
+
test "#initialize parses out the unit and the number part" do
|
17
|
+
assert_equal BigDecimal(10), @unit.conversion_amount
|
18
|
+
assert_equal "cake", @unit.conversion_unit
|
19
|
+
|
20
|
+
unit = Measured::Unit.new(:pie, value: "5.5 sweets")
|
21
|
+
assert_equal BigDecimal("5.5"), unit.conversion_amount
|
22
|
+
assert_equal "sweets", unit.conversion_unit
|
23
|
+
end
|
24
|
+
|
25
|
+
test "#initialize raises if the format of the value is incorrect" do
|
26
|
+
assert_raises Measured::UnitError do
|
27
|
+
Measured::Unit.new(:pie, value: "hello")
|
28
|
+
end
|
29
|
+
|
30
|
+
assert_raises Measured::UnitError do
|
31
|
+
Measured::Unit.new(:pie, value: "pie is delicious")
|
32
|
+
end
|
33
|
+
|
34
|
+
assert_raises Measured::UnitError do
|
35
|
+
Measured::Unit.new(:pie, value: "123456")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
test "#to_s" do
|
40
|
+
assert_equal "pie", Measured::Unit.new(:pie).to_s
|
41
|
+
assert_equal "pie (1/2 sweet)", Measured::Unit.new(:pie, aliases: ["cake"], value: [Rational(1,2), "sweet"]).to_s
|
42
|
+
end
|
43
|
+
|
44
|
+
test "#inspect returns an expected string" do
|
45
|
+
assert_equal "#<Measured::Unit: pie (pie) >", Measured::Unit.new(:pie).inspect
|
46
|
+
assert_equal "#<Measured::Unit: pie (cake, pie) 1/2 sweet>", Measured::Unit.new(:pie, aliases: ["cake"], value: [Rational(1,2), "sweet"]).inspect
|
47
|
+
end
|
48
|
+
|
49
|
+
test "is comparable" do
|
50
|
+
assert Measured::Unit.ancestors.include?(Comparable)
|
51
|
+
end
|
52
|
+
|
53
|
+
test "#<=> delegates down to name for non Unit comparisons" do
|
54
|
+
assert_equal 1, @unit <=> "anything"
|
55
|
+
end
|
56
|
+
|
57
|
+
test "#<=> is equal for same values" do
|
58
|
+
assert_equal 0, @unit <=> Measured::Unit.new(:pie, value: "10 cake")
|
59
|
+
assert_equal 0, @unit <=> Measured::Unit.new("pie", value: "10 cake")
|
60
|
+
assert_equal 0, @unit <=> Measured::Unit.new("pie", value: [10, :cake])
|
61
|
+
end
|
62
|
+
|
63
|
+
test "#<=> is slightly different" do
|
64
|
+
assert_equal 1, @unit <=> Measured::Unit.new(:pies, value: "10 cake")
|
65
|
+
assert_equal 1, @unit <=> Measured::Unit.new("pie", aliases: ["pies"], value: "10 cake")
|
66
|
+
assert_equal 1, @unit <=> Measured::Unit.new(:pie, value: [11, :cake])
|
67
|
+
end
|
68
|
+
|
69
|
+
test "#inverse_conversion_amount returns 1/amount for BigDecimal" do
|
70
|
+
assert_equal BigDecimal(1)/BigDecimal(10), @unit.inverse_conversion_amount
|
71
|
+
end
|
72
|
+
|
73
|
+
test "#inverse_conversion_amount swaps the numerator and denominator for Rational" do
|
74
|
+
unit = Measured::Unit.new(:pie, value: [Rational(3, 7), "cake"])
|
75
|
+
assert_equal Rational(7, 3), unit.inverse_conversion_amount
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,160 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Measured::LengthTest < ActiveSupport::TestCase
|
4
|
+
test ".units_with_aliases should be the expected list of valid units" do
|
5
|
+
assert_equal ["centimeter", "centimeters", "centimetre", "centimetres", "cm", "feet", "foot", "ft", "in", "inch", "inches", "m", "meter", "meters", "metre", "metres", "millimeter", "millimeters", "millimetre", "millimetres", "mm", "yard", "yards", "yd"], Measured::Length.units_with_aliases
|
6
|
+
end
|
7
|
+
|
8
|
+
test ".units should be the list of base units" do
|
9
|
+
assert_equal ["cm", "ft", "in", "m", "mm", "yd"], Measured::Length.units
|
10
|
+
end
|
11
|
+
|
12
|
+
test ".convert_to from cm to cm" do
|
13
|
+
assert_conversion Measured::Length, "2000 cm", "2000 cm"
|
14
|
+
end
|
15
|
+
|
16
|
+
test ".convert_to from cm to ft" do
|
17
|
+
assert_conversion Measured::Length, "2000 cm", "0.656167979E2 ft"
|
18
|
+
end
|
19
|
+
|
20
|
+
test ".convert_to from cm to in" do
|
21
|
+
assert_conversion Measured::Length, "2000 cm", "0.7874015748E3 in"
|
22
|
+
end
|
23
|
+
|
24
|
+
test ".convert_to from cm to m" do
|
25
|
+
assert_conversion Measured::Length, "2000 cm", "20 m"
|
26
|
+
end
|
27
|
+
|
28
|
+
test ".convert_to from cm to mm" do
|
29
|
+
assert_conversion Measured::Length, "2000 cm", "20000 mm"
|
30
|
+
end
|
31
|
+
|
32
|
+
test ".convert_to from cm to yd" do
|
33
|
+
assert_conversion Measured::Length, "2000 cm", "0.2187226596E2 yd"
|
34
|
+
end
|
35
|
+
|
36
|
+
test ".convert_to from ft to cm" do
|
37
|
+
assert_conversion Measured::Length, "2000 ft", "60960 cm"
|
38
|
+
end
|
39
|
+
|
40
|
+
test ".convert_to from ft to ft" do
|
41
|
+
assert_conversion Measured::Length, "2000 ft", "2000 ft"
|
42
|
+
end
|
43
|
+
|
44
|
+
test ".convert_to from ft to in" do
|
45
|
+
skip "returns 0.23999999999904E5"
|
46
|
+
assert_conversion Measured::Length, "2000 ft", "24000 in"
|
47
|
+
end
|
48
|
+
|
49
|
+
test ".convert_to from ft to m" do
|
50
|
+
assert_conversion Measured::Length, "2000 ft", "609.6 m"
|
51
|
+
end
|
52
|
+
|
53
|
+
test ".convert_to from ft to mm" do
|
54
|
+
assert_conversion Measured::Length, "2000 ft", "609600 mm"
|
55
|
+
end
|
56
|
+
|
57
|
+
test ".convert_to from ft to yd" do
|
58
|
+
skip "returns 0.6666666664608E3"
|
59
|
+
assert_conversion Measured::Length, "2000 ft", "0.666666667E3 yd"
|
60
|
+
end
|
61
|
+
|
62
|
+
test ".convert_to from in to cm" do
|
63
|
+
assert_conversion Measured::Length, "2000 in", "5080 cm"
|
64
|
+
end
|
65
|
+
|
66
|
+
test ".convert_to from in to ft" do
|
67
|
+
assert_conversion Measured::Length, "2000 in", "0.166666666666E3 ft"
|
68
|
+
end
|
69
|
+
|
70
|
+
test ".convert_to from in to in" do
|
71
|
+
assert_conversion Measured::Length, "2000 in", "2000 in"
|
72
|
+
end
|
73
|
+
|
74
|
+
test ".convert_to from in to m" do
|
75
|
+
assert_conversion Measured::Length, "2000 in", "50.8 m"
|
76
|
+
end
|
77
|
+
|
78
|
+
test ".convert_to from in to mm" do
|
79
|
+
assert_conversion Measured::Length, "2000 in", "50800 mm"
|
80
|
+
end
|
81
|
+
|
82
|
+
test ".convert_to from in to yd" do
|
83
|
+
assert_conversion Measured::Length, "2000 in", "0.555555555384E2 yd"
|
84
|
+
end
|
85
|
+
|
86
|
+
test ".convert_to from m to cm" do
|
87
|
+
assert_conversion Measured::Length, "2000 m", "200000 cm"
|
88
|
+
end
|
89
|
+
|
90
|
+
test ".convert_to from m to ft" do
|
91
|
+
assert_conversion Measured::Length, "2000 m", "0.656167979E4 ft"
|
92
|
+
end
|
93
|
+
|
94
|
+
test ".convert_to from m to in" do
|
95
|
+
assert_conversion Measured::Length, "2000 m", "0.7874015748E5 in"
|
96
|
+
end
|
97
|
+
|
98
|
+
test ".convert_to from m to m" do
|
99
|
+
assert_conversion Measured::Length, "2000 m", "2000 m"
|
100
|
+
end
|
101
|
+
|
102
|
+
test ".convert_to from m to mm" do
|
103
|
+
assert_conversion Measured::Length, "2000 m", "2000000 mm"
|
104
|
+
end
|
105
|
+
|
106
|
+
test ".convert_to from m to yd" do
|
107
|
+
assert_conversion Measured::Length, "2000 m", "0.2187226596E4 yd"
|
108
|
+
end
|
109
|
+
|
110
|
+
test ".convert_to from mm to cm" do
|
111
|
+
assert_conversion Measured::Length, "2000 mm", "200 cm"
|
112
|
+
end
|
113
|
+
|
114
|
+
test ".convert_to from mm to ft" do
|
115
|
+
assert_conversion Measured::Length, "2000 mm", "0.656167979E1 ft"
|
116
|
+
end
|
117
|
+
|
118
|
+
test ".convert_to from mm to in" do
|
119
|
+
assert_conversion Measured::Length, "2000 mm", "0.7874015748E2 in"
|
120
|
+
end
|
121
|
+
|
122
|
+
test ".convert_to from mm to m" do
|
123
|
+
assert_conversion Measured::Length, "2000 mm", "2 m"
|
124
|
+
end
|
125
|
+
|
126
|
+
test ".convert_to from mm to mm" do
|
127
|
+
assert_conversion Measured::Length, "2000 mm", "2000 mm"
|
128
|
+
end
|
129
|
+
|
130
|
+
test ".convert_to from mm to yd" do
|
131
|
+
assert_conversion Measured::Length, "2000 mm", "0.2187226596E1 yd"
|
132
|
+
end
|
133
|
+
|
134
|
+
test ".convert_to from yd to cm" do
|
135
|
+
assert_conversion Measured::Length, "2000 yd", "0.18288E6 cm"
|
136
|
+
end
|
137
|
+
|
138
|
+
test ".convert_to from yd to ft" do
|
139
|
+
skip "returns 0.5999999999976E4"
|
140
|
+
assert_conversion Measured::Length, "2000 yd", "6000 ft"
|
141
|
+
end
|
142
|
+
|
143
|
+
test ".convert_to from yd to in" do
|
144
|
+
skip "returns 0.71999999999712E5"
|
145
|
+
assert_conversion Measured::Length, "2000 yd", "72000 in"
|
146
|
+
end
|
147
|
+
|
148
|
+
test ".convert_to from yd to m" do
|
149
|
+
assert_conversion Measured::Length, "2000 yd", "1828.8 m"
|
150
|
+
end
|
151
|
+
|
152
|
+
test ".convert_to from yd to mm" do
|
153
|
+
assert_conversion Measured::Length, "2000 yd", "1828800 mm"
|
154
|
+
end
|
155
|
+
|
156
|
+
test ".convert_to from yd to yd" do
|
157
|
+
assert_conversion Measured::Length, "2000 yd", "2000 yd"
|
158
|
+
end
|
159
|
+
|
160
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class Measured::WeightTest < ActiveSupport::TestCase
|
4
|
+
setup do
|
5
|
+
@weight = Measured::Weight.new(1, "g")
|
6
|
+
end
|
7
|
+
|
8
|
+
test ".units_with_aliases should be the expected list of valid units" do
|
9
|
+
assert_equal ["g", "gram", "grams", "kg", "kilogram", "kilograms", "lb", "lbs", "ounce", "ounces", "oz", "pound", "pounds"], Measured::Weight.units_with_aliases
|
10
|
+
end
|
11
|
+
|
12
|
+
test ".units should be the list of base units" do
|
13
|
+
assert_equal ["g", "kg", "lb", "oz"], Measured::Weight.units
|
14
|
+
end
|
15
|
+
|
16
|
+
test ".convert_to from g to g" do
|
17
|
+
assert_conversion Measured::Weight, "2000 g", "2000 g"
|
18
|
+
end
|
19
|
+
|
20
|
+
test ".convert_to from g to kg" do
|
21
|
+
assert_conversion Measured::Weight, "2000 g", "2 kg"
|
22
|
+
end
|
23
|
+
|
24
|
+
test ".convert_to from g to lb" do
|
25
|
+
assert_conversion Measured::Weight, "2000 g", "4.40924524 lb"
|
26
|
+
end
|
27
|
+
|
28
|
+
test ".convert_to from g to oz" do
|
29
|
+
assert_conversion Measured::Weight, "2000 g", "70.54792384 oz"
|
30
|
+
end
|
31
|
+
|
32
|
+
test ".convert_to from kg to g" do
|
33
|
+
assert_conversion Measured::Weight, "2000 kg", "2000000 g"
|
34
|
+
end
|
35
|
+
|
36
|
+
test ".convert_to from kg to kg" do
|
37
|
+
assert_conversion Measured::Weight, "2000 kg", "2000 kg"
|
38
|
+
end
|
39
|
+
|
40
|
+
test ".convert_to from kg to lb" do
|
41
|
+
assert_conversion Measured::Weight, "2000 kg", "4409.24524 lb"
|
42
|
+
end
|
43
|
+
|
44
|
+
test ".convert_to from kg to oz" do
|
45
|
+
assert_conversion Measured::Weight, "2000 kg", "70547.92384 oz"
|
46
|
+
end
|
47
|
+
|
48
|
+
test ".convert_to from lb to g" do
|
49
|
+
assert_conversion Measured::Weight, "2000 lb", "907184.74 g"
|
50
|
+
end
|
51
|
+
|
52
|
+
test ".convert_to from lb to kg" do
|
53
|
+
assert_conversion Measured::Weight, "2000 lb", "907.18474 kg"
|
54
|
+
end
|
55
|
+
|
56
|
+
test ".convert_to from lb to lb" do
|
57
|
+
assert_conversion Measured::Weight, "2000 lb", "2000 lb"
|
58
|
+
end
|
59
|
+
|
60
|
+
test ".convert_to from lb to oz" do
|
61
|
+
assert_conversion Measured::Weight, "2000 lb", "32000 oz"
|
62
|
+
end
|
63
|
+
|
64
|
+
test ".convert_to from oz to g" do
|
65
|
+
assert_conversion Measured::Weight, "2000 oz", "56699.04625 g"
|
66
|
+
end
|
67
|
+
|
68
|
+
test ".convert_to from oz to kg" do
|
69
|
+
assert_conversion Measured::Weight, "2000 oz", "56.69904625 kg"
|
70
|
+
end
|
71
|
+
|
72
|
+
test ".convert_to from oz to lb" do
|
73
|
+
assert_conversion Measured::Weight, "2000 oz", "125 lb"
|
74
|
+
end
|
75
|
+
|
76
|
+
test ".convert_to from oz to oz" do
|
77
|
+
assert_conversion Measured::Weight, "2000 oz", "2000 oz"
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|