@@ -173,7 +173,7 @@ impl Float for f32 {
173173 #[ inline]
174174 fn exp ( self ) -> f32 { num:: Float :: exp ( self ) }
175175 #[ inline]
176- fn exp2 ( self ) -> f32 { num:: Float :: exp ( self ) }
176+ fn exp2 ( self ) -> f32 { num:: Float :: exp2 ( self ) }
177177 #[ inline]
178178 fn ln ( self ) -> f32 { num:: Float :: ln ( self ) }
179179 #[ inline]
@@ -554,6 +554,33 @@ mod tests {
554554 assert_approx_eq ! ( ( -1.7f32 ) . fract( ) , -0.7f32 ) ;
555555 }
556556
557+ #[ test]
558+ fn test_exp ( ) {
559+ assert_eq ! ( 1.0 , 0.0f32 . exp( ) ) ;
560+ assert_approx_eq ! ( 2.718282 , 1.0f32 . exp( ) ) ;
561+ assert_approx_eq ! ( 148.413162 , 5.0f32 . exp( ) ) ;
562+
563+ let inf: f32 = Float :: infinity ( ) ;
564+ let neg_inf: f32 = Float :: neg_infinity ( ) ;
565+ let nan: f32 = Float :: nan ( ) ;
566+ assert_eq ! ( inf, inf. exp( ) ) ;
567+ assert_eq ! ( 0.0 , neg_inf. exp( ) ) ;
568+ assert ! ( nan. exp( ) . is_nan( ) ) ;
569+ }
570+
571+ #[ test]
572+ fn test_exp2 ( ) {
573+ assert_eq ! ( 32.0 , 5.0f32 . exp2( ) ) ;
574+ assert_eq ! ( 1.0 , 0.0f32 . exp2( ) ) ;
575+
576+ let inf: f32 = Float :: infinity ( ) ;
577+ let neg_inf: f32 = Float :: neg_infinity ( ) ;
578+ let nan: f32 = Float :: nan ( ) ;
579+ assert_eq ! ( inf, inf. exp2( ) ) ;
580+ assert_eq ! ( 0.0 , neg_inf. exp2( ) ) ;
581+ assert ! ( nan. exp2( ) . is_nan( ) ) ;
582+ }
583+
557584 #[ test]
558585 fn test_asinh ( ) {
559586 assert_eq ! ( 0.0f32 . asinh( ) , 0.0f32 ) ;
0 commit comments