File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff 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]
You can’t perform that action at this time.
0 commit comments