@@ -1782,6 +1782,7 @@ mod test {
17821782 pub const _0: Rational64 = Ratio { numer : 0 , denom : 1 } ;
17831783 pub const _1: Rational64 = Ratio { numer : 1 , denom : 1 } ;
17841784 pub const _2: Rational64 = Ratio { numer : 2 , denom : 1 } ;
1785+ pub const _3: Rational64 = Ratio { numer : 3 , denom : 1 } ;
17851786 pub const _NEG2: Rational64 = Ratio {
17861787 numer : -2 ,
17871788 denom : 1 ,
@@ -2690,38 +2691,51 @@ mod test {
26902691 assert_eq ! ( _1_3. ceil( ) , _1) ;
26912692 assert_eq ! ( _1_3. floor( ) , _0) ;
26922693 assert_eq ! ( _1_3. round( ) , _0) ;
2694+ assert_eq ! ( _1_3. round_ties_even( ) , _0) ;
26932695 assert_eq ! ( _1_3. trunc( ) , _0) ;
26942696
26952697 assert_eq ! ( _NEG1_3. ceil( ) , _0) ;
26962698 assert_eq ! ( _NEG1_3. floor( ) , -_1) ;
26972699 assert_eq ! ( _NEG1_3. round( ) , _0) ;
2700+ assert_eq ! ( _NEG1_3. round_ties_even( ) , _0) ;
26982701 assert_eq ! ( _NEG1_3. trunc( ) , _0) ;
26992702
27002703 assert_eq ! ( _2_3. ceil( ) , _1) ;
27012704 assert_eq ! ( _2_3. floor( ) , _0) ;
27022705 assert_eq ! ( _2_3. round( ) , _1) ;
2706+ assert_eq ! ( _2_3. round_ties_even( ) , _1) ;
27032707 assert_eq ! ( _2_3. trunc( ) , _0) ;
27042708
27052709 assert_eq ! ( _NEG2_3. ceil( ) , _0) ;
27062710 assert_eq ! ( _NEG2_3. floor( ) , -_1) ;
27072711 assert_eq ! ( _NEG2_3. round( ) , -_1) ;
2712+ assert_eq ! ( _NEG2_3. round_ties_even( ) , -_1) ;
27082713 assert_eq ! ( _NEG2_3. trunc( ) , _0) ;
27092714
27102715 assert_eq ! ( _1_2. ceil( ) , _1) ;
27112716 assert_eq ! ( _1_2. floor( ) , _0) ;
27122717 assert_eq ! ( _1_2. round( ) , _1) ;
2718+ assert_eq ! ( _1_2. round_ties_even( ) , _0) ;
27132719 assert_eq ! ( _1_2. trunc( ) , _0) ;
27142720
27152721 assert_eq ! ( _NEG1_2. ceil( ) , _0) ;
27162722 assert_eq ! ( _NEG1_2. floor( ) , -_1) ;
27172723 assert_eq ! ( _NEG1_2. round( ) , -_1) ;
2724+ assert_eq ! ( _NEG1_2. round_ties_even( ) , _0) ;
27182725 assert_eq ! ( _NEG1_2. trunc( ) , _0) ;
27192726
27202727 assert_eq ! ( _1. ceil( ) , _1) ;
27212728 assert_eq ! ( _1. floor( ) , _1) ;
27222729 assert_eq ! ( _1. round( ) , _1) ;
2730+ assert_eq ! ( _1. round_ties_even( ) , _1) ;
27232731 assert_eq ! ( _1. trunc( ) , _1) ;
27242732
2733+ assert_eq ! ( _5_2. ceil( ) , _3) ;
2734+ assert_eq ! ( _5_2. floor( ) , _2) ;
2735+ assert_eq ! ( _5_2. round( ) , _3) ;
2736+ assert_eq ! ( _5_2. round_ties_even( ) , _2) ;
2737+ assert_eq ! ( _5_2. trunc( ) , _2) ;
2738+
27252739 // Overflow checks
27262740
27272741 let _neg1 = Ratio :: from_integer ( -1 ) ;
@@ -2742,6 +2756,14 @@ mod test {
27422756 assert_eq ! ( _large_rat6. round( ) , _neg1) ;
27432757 assert_eq ! ( _large_rat7. round( ) , Zero :: zero( ) ) ;
27442758 assert_eq ! ( _large_rat8. round( ) , Zero :: zero( ) ) ;
2759+ assert_eq ! ( _large_rat1. round_ties_even( ) , One :: one( ) ) ;
2760+ assert_eq ! ( _large_rat2. round_ties_even( ) , One :: one( ) ) ;
2761+ assert_eq ! ( _large_rat3. round_ties_even( ) , One :: one( ) ) ;
2762+ assert_eq ! ( _large_rat4. round_ties_even( ) , One :: one( ) ) ;
2763+ assert_eq ! ( _large_rat5. round_ties_even( ) , _neg1) ;
2764+ assert_eq ! ( _large_rat6. round_ties_even( ) , _neg1) ;
2765+ assert_eq ! ( _large_rat7. round_ties_even( ) , Zero :: zero( ) ) ;
2766+ assert_eq ! ( _large_rat8. round_ties_even( ) , Zero :: zero( ) ) ;
27452767 }
27462768
27472769 #[ test]
0 commit comments