@@ -747,19 +747,19 @@ macro_rules! test_float {
747
747
$fassert!( ( -0.0 as $fty) . min( 9.0 ) , -0.0 ) ;
748
748
$fassert!( ( -0.0 as $fty) . min( 9.0 ) . is_sign_negative( ) ) ;
749
749
$fassert!( ( -0.0 as $fty) . min( -9.0 ) , -9.0 ) ;
750
- $fassert!( ( <$fty>:: INFINITY as $fty ) . min( 9.0 ) , 9.0 ) ;
750
+ $fassert!( <$fty>:: INFINITY . min( 9.0 ) , 9.0 ) ;
751
751
$fassert!( ( 9.0 as $fty) . min( <$fty>:: INFINITY ) , 9.0 ) ;
752
- $fassert!( ( <$fty>:: INFINITY as $fty ) . min( -9.0 ) , -9.0 ) ;
752
+ $fassert!( <$fty>:: INFINITY . min( -9.0 ) , -9.0 ) ;
753
753
$fassert!( ( -9.0 as $fty) . min( <$fty>:: INFINITY ) , -9.0 ) ;
754
- $fassert!( ( <$fty>:: NEG_INFINITY as $fty ) . min( 9.0 ) , <$fty>:: NEG_INFINITY ) ;
754
+ $fassert!( <$fty>:: NEG_INFINITY . min( 9.0 ) , <$fty>:: NEG_INFINITY ) ;
755
755
$fassert!( ( 9.0 as $fty) . min( <$fty>:: NEG_INFINITY ) , <$fty>:: NEG_INFINITY ) ;
756
- $fassert!( ( <$fty>:: NEG_INFINITY as $fty ) . min( -9.0 ) , <$fty>:: NEG_INFINITY ) ;
756
+ $fassert!( <$fty>:: NEG_INFINITY . min( -9.0 ) , <$fty>:: NEG_INFINITY ) ;
757
757
$fassert!( ( -9.0 as $fty) . min( <$fty>:: NEG_INFINITY ) , <$fty>:: NEG_INFINITY ) ;
758
- $fassert!( ( <$fty>:: NAN as $fty ) . min( 9.0 ) , 9.0 ) ;
759
- $fassert!( ( <$fty>:: NAN as $fty ) . min( -9.0 ) , -9.0 ) ;
758
+ $fassert!( <$fty>:: NAN . min( 9.0 ) , 9.0 ) ;
759
+ $fassert!( <$fty>:: NAN . min( -9.0 ) , -9.0 ) ;
760
760
$fassert!( ( 9.0 as $fty) . min( <$fty>:: NAN ) , 9.0 ) ;
761
761
$fassert!( ( -9.0 as $fty) . min( <$fty>:: NAN ) , -9.0 ) ;
762
- $fassert!( ( <$fty>:: NAN as $fty ) . min( <$fty>:: NAN ) . is_nan( ) ) ;
762
+ $fassert!( <$fty>:: NAN . min( <$fty>:: NAN ) . is_nan( ) ) ;
763
763
}
764
764
#[ test]
765
765
fn max( ) {
@@ -777,19 +777,19 @@ macro_rules! test_float {
777
777
$fassert!( ( 0.0 as $fty) . max( -9.0 ) . is_sign_positive( ) ) ;
778
778
$fassert!( ( -0.0 as $fty) . max( -9.0 ) , -0.0 ) ;
779
779
$fassert!( ( -0.0 as $fty) . max( -9.0 ) . is_sign_negative( ) ) ;
780
- $fassert!( ( <$fty>:: INFINITY as $fty ) . max( 9.0 ) , <$fty>:: INFINITY ) ;
780
+ $fassert!( <$fty>:: INFINITY . max( 9.0 ) , <$fty>:: INFINITY ) ;
781
781
$fassert!( ( 9.0 as $fty) . max( <$fty>:: INFINITY ) , <$fty>:: INFINITY ) ;
782
- $fassert!( ( <$fty>:: INFINITY as $fty ) . max( -9.0 ) , <$fty>:: INFINITY ) ;
782
+ $fassert!( <$fty>:: INFINITY . max( -9.0 ) , <$fty>:: INFINITY ) ;
783
783
$fassert!( ( -9.0 as $fty) . max( <$fty>:: INFINITY ) , <$fty>:: INFINITY ) ;
784
- $fassert!( ( <$fty>:: NEG_INFINITY as $fty ) . max( 9.0 ) , 9.0 ) ;
784
+ $fassert!( <$fty>:: NEG_INFINITY . max( 9.0 ) , 9.0 ) ;
785
785
$fassert!( ( 9.0 as $fty) . max( <$fty>:: NEG_INFINITY ) , 9.0 ) ;
786
- $fassert!( ( <$fty>:: NEG_INFINITY as $fty ) . max( -9.0 ) , -9.0 ) ;
786
+ $fassert!( <$fty>:: NEG_INFINITY . max( -9.0 ) , -9.0 ) ;
787
787
$fassert!( ( -9.0 as $fty) . max( <$fty>:: NEG_INFINITY ) , -9.0 ) ;
788
- $fassert!( ( <$fty>:: NAN as $fty ) . max( 9.0 ) , 9.0 ) ;
789
- $fassert!( ( <$fty>:: NAN as $fty ) . max( -9.0 ) , -9.0 ) ;
788
+ $fassert!( <$fty>:: NAN . max( 9.0 ) , 9.0 ) ;
789
+ $fassert!( <$fty>:: NAN . max( -9.0 ) , -9.0 ) ;
790
790
$fassert!( ( 9.0 as $fty) . max( <$fty>:: NAN ) , 9.0 ) ;
791
791
$fassert!( ( -9.0 as $fty) . max( <$fty>:: NAN ) , -9.0 ) ;
792
- $fassert!( ( <$fty>:: NAN as $fty ) . max( <$fty>:: NAN ) . is_nan( ) ) ;
792
+ $fassert!( <$fty>:: NAN . max( <$fty>:: NAN ) . is_nan( ) ) ;
793
793
}
794
794
#[ test]
795
795
fn minimum( ) {
@@ -806,19 +806,19 @@ macro_rules! test_float {
806
806
$fassert!( ( -0.0 as $fty) . minimum( 9.0 ) , -0.0 ) ;
807
807
$fassert!( ( -0.0 as $fty) . minimum( 9.0 ) . is_sign_negative( ) ) ;
808
808
$fassert!( ( -0.0 as $fty) . minimum( -9.0 ) , -9.0 ) ;
809
- $fassert!( ( <$fty>:: INFINITY as $fty ) . minimum( 9.0 ) , 9.0 ) ;
809
+ $fassert!( <$fty>:: INFINITY . minimum( 9.0 ) , 9.0 ) ;
810
810
$fassert!( ( 9.0 as $fty) . minimum( <$fty>:: INFINITY ) , 9.0 ) ;
811
- $fassert!( ( <$fty>:: INFINITY as $fty ) . minimum( -9.0 ) , -9.0 ) ;
811
+ $fassert!( <$fty>:: INFINITY . minimum( -9.0 ) , -9.0 ) ;
812
812
$fassert!( ( -9.0 as $fty) . minimum( <$fty>:: INFINITY ) , -9.0 ) ;
813
- $fassert!( ( <$fty>:: NEG_INFINITY as $fty ) . minimum( 9.0 ) , <$fty>:: NEG_INFINITY ) ;
813
+ $fassert!( <$fty>:: NEG_INFINITY . minimum( 9.0 ) , <$fty>:: NEG_INFINITY ) ;
814
814
$fassert!( ( 9.0 as $fty) . minimum( <$fty>:: NEG_INFINITY ) , <$fty>:: NEG_INFINITY ) ;
815
- $fassert!( ( <$fty>:: NEG_INFINITY as $fty ) . minimum( -9.0 ) , <$fty>:: NEG_INFINITY ) ;
815
+ $fassert!( <$fty>:: NEG_INFINITY . minimum( -9.0 ) , <$fty>:: NEG_INFINITY ) ;
816
816
$fassert!( ( -9.0 as $fty) . minimum( <$fty>:: NEG_INFINITY ) , <$fty>:: NEG_INFINITY ) ;
817
- $fassert!( ( <$fty>:: NAN as $fty ) . minimum( 9.0 ) . is_nan( ) ) ;
818
- $fassert!( ( <$fty>:: NAN as $fty ) . minimum( -9.0 ) . is_nan( ) ) ;
817
+ $fassert!( <$fty>:: NAN . minimum( 9.0 ) . is_nan( ) ) ;
818
+ $fassert!( <$fty>:: NAN . minimum( -9.0 ) . is_nan( ) ) ;
819
819
$fassert!( ( 9.0 as $fty) . minimum( <$fty>:: NAN ) . is_nan( ) ) ;
820
820
$fassert!( ( -9.0 as $fty) . minimum( <$fty>:: NAN ) . is_nan( ) ) ;
821
- $fassert!( ( <$fty>:: NAN as $fty ) . minimum( <$fty>:: NAN ) . is_nan( ) ) ;
821
+ $fassert!( <$fty>:: NAN . minimum( <$fty>:: NAN ) . is_nan( ) ) ;
822
822
}
823
823
#[ test]
824
824
fn maximum( ) {
@@ -838,19 +838,19 @@ macro_rules! test_float {
838
838
$fassert!( ( 0.0 as $fty) . maximum( -9.0 ) . is_sign_positive( ) ) ;
839
839
$fassert!( ( -0.0 as $fty) . maximum( -9.0 ) , -0.0 ) ;
840
840
$fassert!( ( -0.0 as $fty) . maximum( -9.0 ) . is_sign_negative( ) ) ;
841
- $fassert!( ( <$fty>:: INFINITY as $fty ) . maximum( 9.0 ) , <$fty>:: INFINITY ) ;
841
+ $fassert!( <$fty>:: INFINITY . maximum( 9.0 ) , <$fty>:: INFINITY ) ;
842
842
$fassert!( ( 9.0 as $fty) . maximum( <$fty>:: INFINITY ) , <$fty>:: INFINITY ) ;
843
- $fassert!( ( <$fty>:: INFINITY as $fty ) . maximum( -9.0 ) , <$fty>:: INFINITY ) ;
843
+ $fassert!( <$fty>:: INFINITY . maximum( -9.0 ) , <$fty>:: INFINITY ) ;
844
844
$fassert!( ( -9.0 as $fty) . maximum( <$fty>:: INFINITY ) , <$fty>:: INFINITY ) ;
845
- $fassert!( ( <$fty>:: NEG_INFINITY as $fty ) . maximum( 9.0 ) , 9.0 ) ;
845
+ $fassert!( <$fty>:: NEG_INFINITY . maximum( 9.0 ) , 9.0 ) ;
846
846
$fassert!( ( 9.0 as $fty) . maximum( <$fty>:: NEG_INFINITY ) , 9.0 ) ;
847
- $fassert!( ( <$fty>:: NEG_INFINITY as $fty ) . maximum( -9.0 ) , -9.0 ) ;
847
+ $fassert!( <$fty>:: NEG_INFINITY . maximum( -9.0 ) , -9.0 ) ;
848
848
$fassert!( ( -9.0 as $fty) . maximum( <$fty>:: NEG_INFINITY ) , -9.0 ) ;
849
- $fassert!( ( <$fty>:: NAN as $fty ) . maximum( 9.0 ) . is_nan( ) ) ;
850
- $fassert!( ( <$fty>:: NAN as $fty ) . maximum( -9.0 ) . is_nan( ) ) ;
849
+ $fassert!( <$fty>:: NAN . maximum( 9.0 ) . is_nan( ) ) ;
850
+ $fassert!( <$fty>:: NAN . maximum( -9.0 ) . is_nan( ) ) ;
851
851
$fassert!( ( 9.0 as $fty) . maximum( <$fty>:: NAN ) . is_nan( ) ) ;
852
852
$fassert!( ( -9.0 as $fty) . maximum( <$fty>:: NAN ) . is_nan( ) ) ;
853
- $fassert!( ( <$fty>:: NAN as $fty ) . maximum( <$fty>:: NAN ) . is_nan( ) ) ;
853
+ $fassert!( <$fty>:: NAN . maximum( <$fty>:: NAN ) . is_nan( ) ) ;
854
854
}
855
855
#[ test]
856
856
fn midpoint( ) {
@@ -863,20 +863,17 @@ macro_rules! test_float {
863
863
$fassert!( ( 0.0 as $fty) . midpoint( 0.0 ) , 0.0 ) ;
864
864
$fassert!( ( -0.0 as $fty) . midpoint( -0.0 ) , -0.0 ) ;
865
865
$fassert!( ( -5.0 as $fty) . midpoint( 5.0 ) , 0.0 ) ;
866
- $fassert!( ( <$fty>:: MAX as $fty) . midpoint( <$fty>:: MIN ) , 0.0 ) ;
867
- $fassert!( ( <$fty>:: MIN as $fty) . midpoint( <$fty>:: MAX ) , -0.0 ) ;
868
- $fassert!( ( <$fty>:: MAX as $fty) . midpoint( <$fty>:: MIN_POSITIVE ) , <$fty>:: MAX / 2. ) ;
869
- $fassert!( ( -<$fty>:: MAX as $fty) . midpoint( <$fty>:: MIN_POSITIVE ) , -<$fty>:: MAX / 2. ) ;
870
- $fassert!( ( <$fty>:: MAX as $fty) . midpoint( -<$fty>:: MIN_POSITIVE ) , <$fty>:: MAX / 2. ) ;
871
- $fassert!(
872
- ( -<$fty>:: MAX as $fty) . midpoint( -<$fty>:: MIN_POSITIVE ) ,
873
- -<$fty>:: MAX / 2.
874
- ) ;
866
+ $fassert!( <$fty>:: MAX . midpoint( <$fty>:: MIN ) , 0.0 ) ;
867
+ $fassert!( <$fty>:: MIN . midpoint( <$fty>:: MAX ) , -0.0 ) ;
868
+ $fassert!( <$fty>:: MAX . midpoint( <$fty>:: MIN_POSITIVE ) , <$fty>:: MAX / 2. ) ;
869
+ $fassert!( ( -<$fty>:: MAX ) . midpoint( <$fty>:: MIN_POSITIVE ) , -<$fty>:: MAX / 2. ) ;
870
+ $fassert!( <$fty>:: MAX . midpoint( -<$fty>:: MIN_POSITIVE ) , <$fty>:: MAX / 2. ) ;
871
+ $fassert!( ( -<$fty>:: MAX ) . midpoint( -<$fty>:: MIN_POSITIVE ) , -<$fty>:: MAX / 2. ) ;
875
872
$fassert!( ( <$fty>:: MIN_POSITIVE ) . midpoint( <$fty>:: MAX ) , <$fty>:: MAX / 2. ) ;
876
873
$fassert!( ( <$fty>:: MIN_POSITIVE ) . midpoint( -<$fty>:: MAX ) , -<$fty>:: MAX / 2. ) ;
877
874
$fassert!( ( -<$fty>:: MIN_POSITIVE ) . midpoint( <$fty>:: MAX ) , <$fty>:: MAX / 2. ) ;
878
875
$fassert!( ( -<$fty>:: MIN_POSITIVE ) . midpoint( -<$fty>:: MAX ) , -<$fty>:: MAX / 2. ) ;
879
- $fassert!( ( <$fty>:: MAX as $fty ) . midpoint( <$fty>:: MAX ) , <$fty>:: MAX ) ;
876
+ $fassert!( <$fty>:: MAX . midpoint( <$fty>:: MAX ) , <$fty>:: MAX ) ;
880
877
$fassert!(
881
878
( <$fty>:: MIN_POSITIVE ) . midpoint( <$fty>:: MIN_POSITIVE ) ,
882
879
<$fty>:: MIN_POSITIVE
@@ -885,16 +882,16 @@ macro_rules! test_float {
885
882
( -<$fty>:: MIN_POSITIVE ) . midpoint( -<$fty>:: MIN_POSITIVE ) ,
886
883
-<$fty>:: MIN_POSITIVE
887
884
) ;
888
- $fassert!( ( <$fty>:: MAX as $fty ) . midpoint( 5.0 ) , <$fty>:: MAX / 2.0 + 2.5 ) ;
889
- $fassert!( ( <$fty>:: MAX as $fty ) . midpoint( -5.0 ) , <$fty>:: MAX / 2.0 - 2.5 ) ;
890
- $fassert!( ( <$fty>:: INFINITY as $fty ) . midpoint( <$fty>:: INFINITY ) , <$fty>:: INFINITY ) ;
885
+ $fassert!( <$fty>:: MAX . midpoint( 5.0 ) , <$fty>:: MAX / 2.0 + 2.5 ) ;
886
+ $fassert!( <$fty>:: MAX . midpoint( -5.0 ) , <$fty>:: MAX / 2.0 - 2.5 ) ;
887
+ $fassert!( <$fty>:: INFINITY . midpoint( <$fty>:: INFINITY ) , <$fty>:: INFINITY ) ;
891
888
$fassert!(
892
- ( <$fty>:: NEG_INFINITY as $fty ) . midpoint( <$fty>:: NEG_INFINITY ) ,
889
+ <$fty>:: NEG_INFINITY . midpoint( <$fty>:: NEG_INFINITY ) ,
893
890
<$fty>:: NEG_INFINITY
894
891
) ;
895
- $fassert!( ( <$fty>:: NAN as $fty ) . midpoint( 1.0 ) . is_nan( ) ) ;
892
+ $fassert!( <$fty>:: NAN . midpoint( 1.0 ) . is_nan( ) ) ;
896
893
$fassert!( ( 1.0 as $fty) . midpoint( <$fty>:: NAN ) . is_nan( ) ) ;
897
- $fassert!( ( <$fty>:: NAN as $fty ) . midpoint( <$fty>:: NAN ) . is_nan( ) ) ;
894
+ $fassert!( <$fty>:: NAN . midpoint( <$fty>:: NAN ) . is_nan( ) ) ;
898
895
899
896
// test if large differences in magnitude are still correctly computed.
900
897
// NOTE: that because of how small x and y are, x + y can never overflow
@@ -903,7 +900,7 @@ macro_rules! test_float {
903
900
// be safely doubled, while j is significantly smaller.
904
901
for i in <$fty>:: MAX_EXP . saturating_sub( 64 ) ..<$fty>:: MAX_EXP {
905
902
for j in 0 ..64u8 {
906
- let large = <$fty> :: from ( 2.0f32 ) . powi( i) ;
903
+ let large = ( 2.0 as $fty ) . powi( i) ;
907
904
// a much smaller number, such that there is no chance of overflow to test
908
905
// potential double rounding in midpoint's implementation.
909
906
let small = ( 2.0 as $fty) . powi( <$fty>:: MAX_EXP - 1 )
@@ -918,6 +915,20 @@ macro_rules! test_float {
918
915
}
919
916
}
920
917
#[ test]
918
+ fn abs( ) {
919
+ $fassert!( ( -1.0 as $fty) . abs( ) , 1.0 ) ;
920
+ $fassert!( ( 1.0 as $fty) . abs( ) , 1.0 ) ;
921
+ $fassert!( <$fty>:: NEG_INFINITY . abs( ) , <$fty>:: INFINITY ) ;
922
+ $fassert!( <$fty>:: INFINITY . abs( ) , <$fty>:: INFINITY ) ;
923
+ }
924
+ #[ test]
925
+ fn copysign( ) {
926
+ $fassert!( ( 1.0 as $fty) . copysign( -2.0 ) , -1.0 ) ;
927
+ $fassert!( ( -1.0 as $fty) . copysign( 2.0 ) , 1.0 ) ;
928
+ $fassert!( <$fty>:: INFINITY . copysign( -0.0 ) , <$fty>:: NEG_INFINITY ) ;
929
+ $fassert!( <$fty>:: NEG_INFINITY . copysign( 0.0 ) , <$fty>:: INFINITY ) ;
930
+ }
931
+ #[ test]
921
932
fn rem_euclid( ) {
922
933
// FIXME: Use $fassert when rem_euclid becomes const
923
934
assert!( <$fty>:: INFINITY . rem_euclid( ( 42.0 as $fty) ) . is_nan( ) ) ;
0 commit comments