Fixed adding/subtracting with temperatures of the same type

This commit is contained in:
Kasper 2020-01-14 17:25:05 +01:00
parent 81b987e14f
commit 801fbcf974

View File

@ -267,7 +267,9 @@ pub fn convert_to_lowest(left: Number, right: Number) -> Result<(Number, Number)
}
pub fn add(left: Number, right: Number) -> Result<Number, String> {
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<Number, String> {
}
pub fn subtract(left: Number, right: Number) -> Result<Number, String> {
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 {