Refactoring

This commit is contained in:
Fabian Schmidt 2024-11-22 14:17:04 +01:00
parent b44908429a
commit 1f96d76c74

View File

@ -427,37 +427,34 @@ impl Ord for Number {
} else if self.sign == Sign::Positif && other.sign == Sign::Negatif { } else if self.sign == Sign::Positif && other.sign == Sign::Negatif {
return Ordering::Greater; return Ordering::Greater;
} }
if self.digits.len() < other.digits.len() { match self.digits.len().cmp(&other.digits.len()) {
if self.sign == Sign::Positif { Ordering::Less => match self.sign {
return Ordering::Less; Sign::Positif => Ordering::Less,
} else if self.sign == Sign::Negatif { Sign::Negatif => Ordering::Greater,
return Ordering::Greater; },
} Ordering::Greater => match self.sign {
} else if self.digits.len() > other.digits.len() { Sign::Positif => Ordering::Greater,
if self.sign == Sign::Positif { Sign::Negatif => Ordering::Less,
return Ordering::Greater; },
} else if self.sign == Sign::Negatif { Ordering::Equal => {
return Ordering::Less;
}
}
for pair in zip(&self.digits, &other.digits) { for pair in zip(&self.digits, &other.digits) {
if pair.0 < pair.1 { return match pair.0.cmp(pair.1) {
if self.sign == Sign::Positif { Ordering::Less => match self.sign {
return Ordering::Less; Sign::Positif => Ordering::Less,
} else if self.sign == Sign::Negatif { Sign::Negatif => Ordering::Greater,
return Ordering::Greater; },
} Ordering::Greater => match self.sign {
} else if pair.0 > pair.1 { Sign::Positif => Ordering::Greater,
if self.sign == Sign::Positif { Sign::Negatif => Ordering::Less,
return Ordering::Greater; },
} else if self.sign == Sign::Negatif { Ordering::Equal => continue,
return Ordering::Less; };
}
}
} }
Ordering::Equal Ordering::Equal
} }
} }
}
}
#[cfg(test)] #[cfg(test)]
mod number_tests { mod number_tests {