@@ -4,7 +4,8 @@ use core::num::dec2flt::float::RawFloat;
44fn test_f32_integer_decode ( ) {
55 assert_eq ! ( 3.14159265359f32 . integer_decode( ) , ( 13176795 , -22 , 1 ) ) ;
66 assert_eq ! ( ( -8573.5918555f32 ) . integer_decode( ) , ( 8779358 , -10 , -1 ) ) ;
7- assert_eq ! ( 2f32 . powf( 100.0 ) . integer_decode( ) , ( 8388608 , 77 , 1 ) ) ;
7+ // Set 2^100 directly instead of using powf, because it doesn't guarentee precision
8+ assert_eq ! ( 1.2676506e30_f32 . integer_decode( ) , ( 8388608 , 77 , 1 ) ) ;
89 assert_eq ! ( 0f32 . integer_decode( ) , ( 0 , -150 , 1 ) ) ;
910 assert_eq ! ( ( -0f32 ) . integer_decode( ) , ( 0 , -150 , -1 ) ) ;
1011 assert_eq ! ( f32 :: INFINITY . integer_decode( ) , ( 8388608 , 105 , 1 ) ) ;
@@ -20,7 +21,8 @@ fn test_f32_integer_decode() {
2021fn test_f64_integer_decode ( ) {
2122 assert_eq ! ( 3.14159265359f64 . integer_decode( ) , ( 7074237752028906 , -51 , 1 ) ) ;
2223 assert_eq ! ( ( -8573.5918555f64 ) . integer_decode( ) , ( 4713381968463931 , -39 , -1 ) ) ;
23- assert_eq ! ( 2f64 . powf( 100.0 ) . integer_decode( ) , ( 4503599627370496 , 48 , 1 ) ) ;
24+ // Set 2^100 directly instead of using powf, because it doesn't guarentee precision
25+ assert_eq ! ( 1.2676506002282294e30_f64 . integer_decode( ) , ( 4503599627370496 , 48 , 1 ) ) ;
2426 assert_eq ! ( 0f64 . integer_decode( ) , ( 0 , -1075 , 1 ) ) ;
2527 assert_eq ! ( ( -0f64 ) . integer_decode( ) , ( 0 , -1075 , -1 ) ) ;
2628 assert_eq ! ( f64 :: INFINITY . integer_decode( ) , ( 4503599627370496 , 972 , 1 ) ) ;
0 commit comments