#[test] fn it_converts_floats_from_value() { let _cleanup = unsafe { magnus::embed::init() }; let val = magnus::eval::("1.0").unwrap(); let res = val.try_convert::(); assert_eq!(res.unwrap(), 1.0); let val = magnus::eval::("1").unwrap(); let res = val.try_convert::(); assert_eq!(res.unwrap(), 1.0); let val = magnus::eval::("1/2r").unwrap(); let res = val.try_convert::(); assert_eq!(res.unwrap(), 0.5); let val = magnus::eval::("18446744073709551615").unwrap(); let res = val.try_convert::(); assert_eq!(res.unwrap(), 18446744073709552000.0); let val = magnus::eval::(r#""1.0""#).unwrap(); let res = val.try_convert::(); assert!(res.is_err()); let val = magnus::eval::("Object.new").unwrap(); let res = val.try_convert::(); assert!(res.is_err()); let val = magnus::eval::("nil").unwrap(); let res = val.try_convert::(); assert!(res.is_err()); let val = magnus::eval::("Float::INFINITY").unwrap(); let res = val.try_convert::(); assert_eq!(res.unwrap(), f64::INFINITY); let val = magnus::eval::("Float::NAN").unwrap(); let res = val.try_convert::(); assert!(res.unwrap().is_nan()); }