#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::time::Duration; fn main() { let res = Duration::try_from_secs_f32(0.0); assert_eq!(res, Ok(Duration::new(0, 0))); let res = Duration::try_from_secs_f32(1e-20); assert_eq!(res, Ok(Duration::new(0, 0))); let res = Duration::try_from_secs_f32(4.2e-7); assert_eq!(res, Ok(Duration::new(0, 420))); let res = Duration::try_from_secs_f32(2.7); assert_eq!(res, Ok(Duration::new(2, 700_000_048))); let res = Duration::try_from_secs_f32(3e10); assert_eq!(res, Ok(Duration::new(30_000_001_024, 0))); let res = Duration::try_from_secs_f32(f32::from_bits(1)); assert_eq!(res, Ok(Duration::new(0, 0))); let res = Duration::try_from_secs_f32(-5.0); assert!(res.is_err()); let res = Duration::try_from_secs_f32(f32::NAN); assert!(res.is_err()); let res = Duration::try_from_secs_f32(2e19); assert!(res.is_err()); let res = Duration::try_from_secs_f32(0.999e-9); assert_eq!(res, Ok(Duration::new(0, 1))); let val = f32::from_bits(0x3A80_0000); let res = Duration::try_from_secs_f32(val); assert_eq!(res, Ok(Duration::new(0, 976_562))); let val = f32::from_bits(0x3B40_0000); let res = Duration::try_from_secs_f32(val); assert_eq!(res, Ok(Duration::new(0, 2_929_688))); let val = f32::from_bits(0x3F802000); let res = Duration::try_from_secs_f32(val); assert_eq!(res, Ok(Duration::new(1, 976_562))); let val = f32::from_bits(0x3F806000); let res = Duration::try_from_secs_f32(val); assert_eq!(res, Ok(Duration::new(1, 2_929_688))); }