Unit conversion
This commit is contained in:
parent
5f955564fb
commit
517bf35705
@ -119,6 +119,10 @@ module UnitConversion
|
|||||||
rational_val = converted.to_r.rationalize(0.001)
|
rational_val = converted.to_r.rationalize(0.001)
|
||||||
if rational_val.denominator == 1
|
if rational_val.denominator == 1
|
||||||
rational_val.to_i.to_s
|
rational_val.to_i.to_s
|
||||||
|
elsif rational_val.denominator < rational_val.numerator.abs
|
||||||
|
whole = rational_val.floor
|
||||||
|
fraction = rational_val - whole
|
||||||
|
"#{whole} #{fraction}"
|
||||||
else
|
else
|
||||||
rational_val.to_s
|
rational_val.to_s
|
||||||
end
|
end
|
||||||
|
@ -38,6 +38,8 @@ RSpec.describe UnitConversion do
|
|||||||
expect(UnitConversion.convert('8', '1', 'tablespoon', 'cup')).to eq '1/2'
|
expect(UnitConversion.convert('8', '1', 'tablespoon', 'cup')).to eq '1/2'
|
||||||
expect(UnitConversion.convert('1', '1', 'tablespoon', 'cup')).to eq '1/16'
|
expect(UnitConversion.convert('1', '1', 'tablespoon', 'cup')).to eq '1/16'
|
||||||
expect(UnitConversion.convert('2.0', '1', 'tablespoon', 'cup')).to eq '0.125'
|
expect(UnitConversion.convert('2.0', '1', 'tablespoon', 'cup')).to eq '0.125'
|
||||||
|
expect(UnitConversion.convert('2/3', '1', 'tablespoon', 'teaspoons')).to eq '2'
|
||||||
|
expect(UnitConversion.convert('2', '4', 'teaspoons', 'tablespoons')).to eq '2 2 /3'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'scales odd units without conversion' do
|
it 'scales odd units without conversion' do
|
||||||
|
Loading…
Reference in New Issue
Block a user