@@ -747,19 +747,19 @@ macro_rules! test_float {
747747 $fassert!( ( -0.0 as $fty) . min( 9.0 ) , -0.0 ) ;
748748 $fassert!( ( -0.0 as $fty) . min( 9.0 ) . is_sign_negative( ) ) ;
749749 $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 ) ;
751751 $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 ) ;
753753 $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 ) ;
755755 $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 ) ;
757757 $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 ) ;
760760 $fassert!( ( 9.0 as $fty) . min( <$fty>:: NAN ) , 9.0 ) ;
761761 $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( ) ) ;
763763 }
764764 #[ test]
765765 fn max( ) {
@@ -777,19 +777,19 @@ macro_rules! test_float {
777777 $fassert!( ( 0.0 as $fty) . max( -9.0 ) . is_sign_positive( ) ) ;
778778 $fassert!( ( -0.0 as $fty) . max( -9.0 ) , -0.0 ) ;
779779 $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 ) ;
781781 $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 ) ;
783783 $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 ) ;
785785 $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 ) ;
787787 $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 ) ;
790790 $fassert!( ( 9.0 as $fty) . max( <$fty>:: NAN ) , 9.0 ) ;
791791 $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( ) ) ;
793793 }
794794 #[ test]
795795 fn minimum( ) {
@@ -806,19 +806,19 @@ macro_rules! test_float {
806806 $fassert!( ( -0.0 as $fty) . minimum( 9.0 ) , -0.0 ) ;
807807 $fassert!( ( -0.0 as $fty) . minimum( 9.0 ) . is_sign_negative( ) ) ;
808808 $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 ) ;
810810 $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 ) ;
812812 $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 ) ;
814814 $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 ) ;
816816 $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( ) ) ;
819819 $fassert!( ( 9.0 as $fty) . minimum( <$fty>:: NAN ) . is_nan( ) ) ;
820820 $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( ) ) ;
822822 }
823823 #[ test]
824824 fn maximum( ) {
@@ -838,19 +838,19 @@ macro_rules! test_float {
838838 $fassert!( ( 0.0 as $fty) . maximum( -9.0 ) . is_sign_positive( ) ) ;
839839 $fassert!( ( -0.0 as $fty) . maximum( -9.0 ) , -0.0 ) ;
840840 $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 ) ;
842842 $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 ) ;
844844 $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 ) ;
846846 $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 ) ;
848848 $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( ) ) ;
851851 $fassert!( ( 9.0 as $fty) . maximum( <$fty>:: NAN ) . is_nan( ) ) ;
852852 $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( ) ) ;
854854 }
855855 #[ test]
856856 fn midpoint( ) {
@@ -863,20 +863,17 @@ macro_rules! test_float {
863863 $fassert!( ( 0.0 as $fty) . midpoint( 0.0 ) , 0.0 ) ;
864864 $fassert!( ( -0.0 as $fty) . midpoint( -0.0 ) , -0.0 ) ;
865865 $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. ) ;
875872 $fassert!( ( <$fty>:: MIN_POSITIVE ) . midpoint( <$fty>:: MAX ) , <$fty>:: MAX / 2. ) ;
876873 $fassert!( ( <$fty>:: MIN_POSITIVE ) . midpoint( -<$fty>:: MAX ) , -<$fty>:: MAX / 2. ) ;
877874 $fassert!( ( -<$fty>:: MIN_POSITIVE ) . midpoint( <$fty>:: MAX ) , <$fty>:: MAX / 2. ) ;
878875 $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 ) ;
880877 $fassert!(
881878 ( <$fty>:: MIN_POSITIVE ) . midpoint( <$fty>:: MIN_POSITIVE ) ,
882879 <$fty>:: MIN_POSITIVE
@@ -885,16 +882,16 @@ macro_rules! test_float {
885882 ( -<$fty>:: MIN_POSITIVE ) . midpoint( -<$fty>:: MIN_POSITIVE ) ,
886883 -<$fty>:: MIN_POSITIVE
887884 ) ;
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 ) ;
891888 $fassert!(
892- ( <$fty>:: NEG_INFINITY as $fty ) . midpoint( <$fty>:: NEG_INFINITY ) ,
889+ <$fty>:: NEG_INFINITY . midpoint( <$fty>:: NEG_INFINITY ) ,
893890 <$fty>:: NEG_INFINITY
894891 ) ;
895- $fassert!( ( <$fty>:: NAN as $fty ) . midpoint( 1.0 ) . is_nan( ) ) ;
892+ $fassert!( <$fty>:: NAN . midpoint( 1.0 ) . is_nan( ) ) ;
896893 $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( ) ) ;
898895
899896 // test if large differences in magnitude are still correctly computed.
900897 // NOTE: that because of how small x and y are, x + y can never overflow
@@ -903,7 +900,7 @@ macro_rules! test_float {
903900 // be safely doubled, while j is significantly smaller.
904901 for i in <$fty>:: MAX_EXP . saturating_sub( 64 ) ..<$fty>:: MAX_EXP {
905902 for j in 0 ..64u8 {
906- let large = <$fty> :: from ( 2.0f32 ) . powi( i) ;
903+ let large = ( 2.0 as $fty ) . powi( i) ;
907904 // a much smaller number, such that there is no chance of overflow to test
908905 // potential double rounding in midpoint's implementation.
909906 let small = ( 2.0 as $fty) . powi( <$fty>:: MAX_EXP - 1 )
@@ -918,6 +915,20 @@ macro_rules! test_float {
918915 }
919916 }
920917 #[ 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]
921932 fn rem_euclid( ) {
922933 // FIXME: Use $fassert when rem_euclid becomes const
923934 assert!( <$fty>:: INFINITY . rem_euclid( ( 42.0 as $fty) ) . is_nan( ) ) ;
0 commit comments