@@ -1782,6 +1782,7 @@ mod test {
1782
1782
pub const _0: Rational64 = Ratio { numer : 0 , denom : 1 } ;
1783
1783
pub const _1: Rational64 = Ratio { numer : 1 , denom : 1 } ;
1784
1784
pub const _2: Rational64 = Ratio { numer : 2 , denom : 1 } ;
1785
+ pub const _3: Rational64 = Ratio { numer : 3 , denom : 1 } ;
1785
1786
pub const _NEG2: Rational64 = Ratio {
1786
1787
numer : -2 ,
1787
1788
denom : 1 ,
@@ -2690,38 +2691,51 @@ mod test {
2690
2691
assert_eq ! ( _1_3. ceil( ) , _1) ;
2691
2692
assert_eq ! ( _1_3. floor( ) , _0) ;
2692
2693
assert_eq ! ( _1_3. round( ) , _0) ;
2694
+ assert_eq ! ( _1_3. round_ties_even( ) , _0) ;
2693
2695
assert_eq ! ( _1_3. trunc( ) , _0) ;
2694
2696
2695
2697
assert_eq ! ( _NEG1_3. ceil( ) , _0) ;
2696
2698
assert_eq ! ( _NEG1_3. floor( ) , -_1) ;
2697
2699
assert_eq ! ( _NEG1_3. round( ) , _0) ;
2700
+ assert_eq ! ( _NEG1_3. round_ties_even( ) , _0) ;
2698
2701
assert_eq ! ( _NEG1_3. trunc( ) , _0) ;
2699
2702
2700
2703
assert_eq ! ( _2_3. ceil( ) , _1) ;
2701
2704
assert_eq ! ( _2_3. floor( ) , _0) ;
2702
2705
assert_eq ! ( _2_3. round( ) , _1) ;
2706
+ assert_eq ! ( _2_3. round_ties_even( ) , _1) ;
2703
2707
assert_eq ! ( _2_3. trunc( ) , _0) ;
2704
2708
2705
2709
assert_eq ! ( _NEG2_3. ceil( ) , _0) ;
2706
2710
assert_eq ! ( _NEG2_3. floor( ) , -_1) ;
2707
2711
assert_eq ! ( _NEG2_3. round( ) , -_1) ;
2712
+ assert_eq ! ( _NEG2_3. round_ties_even( ) , -_1) ;
2708
2713
assert_eq ! ( _NEG2_3. trunc( ) , _0) ;
2709
2714
2710
2715
assert_eq ! ( _1_2. ceil( ) , _1) ;
2711
2716
assert_eq ! ( _1_2. floor( ) , _0) ;
2712
2717
assert_eq ! ( _1_2. round( ) , _1) ;
2718
+ assert_eq ! ( _1_2. round_ties_even( ) , _0) ;
2713
2719
assert_eq ! ( _1_2. trunc( ) , _0) ;
2714
2720
2715
2721
assert_eq ! ( _NEG1_2. ceil( ) , _0) ;
2716
2722
assert_eq ! ( _NEG1_2. floor( ) , -_1) ;
2717
2723
assert_eq ! ( _NEG1_2. round( ) , -_1) ;
2724
+ assert_eq ! ( _NEG1_2. round_ties_even( ) , _0) ;
2718
2725
assert_eq ! ( _NEG1_2. trunc( ) , _0) ;
2719
2726
2720
2727
assert_eq ! ( _1. ceil( ) , _1) ;
2721
2728
assert_eq ! ( _1. floor( ) , _1) ;
2722
2729
assert_eq ! ( _1. round( ) , _1) ;
2730
+ assert_eq ! ( _1. round_ties_even( ) , _1) ;
2723
2731
assert_eq ! ( _1. trunc( ) , _1) ;
2724
2732
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
+
2725
2739
// Overflow checks
2726
2740
2727
2741
let _neg1 = Ratio :: from_integer ( -1 ) ;
@@ -2742,6 +2756,14 @@ mod test {
2742
2756
assert_eq ! ( _large_rat6. round( ) , _neg1) ;
2743
2757
assert_eq ! ( _large_rat7. round( ) , Zero :: zero( ) ) ;
2744
2758
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( ) ) ;
2745
2767
}
2746
2768
2747
2769
#[ test]
0 commit comments