use minimal_lexical::number::Number;
#[ test]
fn is_fast_path_test() {
let mut number = Number {
exponent: -4 ,
mantissa: 12345 ,
many_digits: false ,
};
assert_eq!(number.is_fast_path::<f32>(), true );
assert_eq!(number.is_fast_path::<f64>(), true );
number.exponent = -15 ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), true );
number.exponent = -25 ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), false );
number.exponent = 25 ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), true );
number.exponent = 36 ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), true );
number.exponent = 38 ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), false );
number.mantissa = 1 << 25 ;
number.exponent = 0 ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), true );
number.mantissa = 1 << 54 ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), false );
number.mantissa = 1 << 52 ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), true );
number.many_digits = true ;
assert_eq!(number.is_fast_path::<f32>(), false );
assert_eq!(number.is_fast_path::<f64>(), false );
}
#[ test]
fn try_fast_path_test() {
let mut number = Number {
exponent: -4 ,
mantissa: 12345 ,
many_digits: false ,
};
assert_eq!(number.try_fast_path::<f32>(), Some(1 .2345 ));
assert_eq!(number.try_fast_path::<f64>(), Some(1 .2345 ));
number.exponent = -10 ;
assert_eq!(number.try_fast_path::<f32>(), Some(1 .2345 e-6 ));
assert_eq!(number.try_fast_path::<f64>(), Some(1 .2345 e-6 ));
number.exponent = -20 ;
assert_eq!(number.try_fast_path::<f32>(), None);
assert_eq!(number.try_fast_path::<f64>(), Some(1 .2345 e-16 ));
number.exponent = -25 ;
assert_eq!(number.try_fast_path::<f32>(), None);
assert_eq!(number.try_fast_path::<f64>(), None);
number.exponent = 12 ;
assert_eq!(number.try_fast_path::<f32>(), Some(1 .2345 e16));
assert_eq!(number.try_fast_path::<f64>(), Some(1 .2345 e16));
number.exponent = 25 ;
assert_eq!(number.try_fast_path::<f32>(), None);
assert_eq!(number.try_fast_path::<f64>(), Some(1 .2345 e29));
number.exponent = 32 ;
assert_eq!(number.try_fast_path::<f32>(), None);
assert_eq!(number.try_fast_path::<f64>(), Some(1 .2345 e36));
number.exponent = 36 ;
assert_eq!(number.try_fast_path::<f32>(), None);
assert_eq!(number.try_fast_path::<f64>(), None);
}
Messung V0.5 in Prozent C=98 H=98 G=97
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-27)
¤
*© Formatika GbR, Deutschland