Skip to content

Commit aab0c70

Browse files
bors[bot]cuviper
andauthored
Merge #75
75: Fix CheckedDiv with zeros r=cuviper a=cuviper Co-authored-by: Josh Stone <cuviper@gmail.com>
2 parents 957e232 + 33bbb54 commit aab0c70

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/lib.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,9 @@ where
773773
{
774774
#[inline]
775775
fn checked_div(&self, rhs: &Ratio<T>) -> Option<Ratio<T>> {
776+
if rhs.is_zero() {
777+
return None;
778+
}
776779
let gcd_ac = self.numer.gcd(&rhs.numer);
777780
let gcd_bd = self.denom.gcd(&rhs.denom);
778781
let denom = (self.denom.clone() / gcd_bd.clone())
@@ -1942,6 +1945,14 @@ mod test {
19421945
assert_eq!(small.checked_div(&big), None);
19431946
assert_eq!(_1.checked_div(&_0), None);
19441947
}
1948+
1949+
#[test]
1950+
fn test_checked_zeros() {
1951+
assert_eq!(_0.checked_add(&_0), Some(_0));
1952+
assert_eq!(_0.checked_sub(&_0), Some(_0));
1953+
assert_eq!(_0.checked_mul(&_0), Some(_0));
1954+
assert_eq!(_0.checked_div(&_0), None);
1955+
}
19451956
}
19461957

19471958
#[test]

0 commit comments

Comments
 (0)