From 801fbcf974f5998aa1ed05156b6bfe78f4c91c26 Mon Sep 17 00:00:00 2001 From: Kasper Date: Tue, 14 Jan 2020 17:25:05 +0100 Subject: [PATCH] Fixed adding/subtracting with temperatures of the same type --- src/units.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/units.rs b/src/units.rs index 4b76f2e..10e8b27 100644 --- a/src/units.rs +++ b/src/units.rs @@ -267,7 +267,9 @@ pub fn convert_to_lowest(left: Number, right: Number) -> Result<(Number, Number) } pub fn add(left: Number, right: Number) -> Result { - if left.unit.category() == right.unit.category() && left.unit.category() != Temperature { + if left.unit == right.unit { + Ok(Number::new(left.value + right.value, left.unit)) + } else if left.unit.category() == right.unit.category() && left.unit.category() != Temperature { let (left, right) = convert_to_lowest(left, right)?; Ok(Number::new(left.value + right.value, left.unit)) } else { @@ -276,7 +278,9 @@ pub fn add(left: Number, right: Number) -> Result { } pub fn subtract(left: Number, right: Number) -> Result { - if left.unit.category() == right.unit.category() && left.unit.category() != Temperature { + if left.unit == right.unit { + Ok(Number::new(left.value - right.value, left.unit)) + } else if left.unit.category() == right.unit.category() && left.unit.category() != Temperature { let (left, right) = convert_to_lowest(left, right)?; Ok(Number::new(left.value - right.value, left.unit)) } else {