//@ run-pass pub fn main() { let nan: f64 = f64::NAN; assert!((nan).is_nan()); let inf: f64 = f64::INFINITY; let neg_inf: f64 = -f64::INFINITY; assert_eq!(-inf, neg_inf); assert!( nan != nan); assert!( nan != -nan); assert!(-nan != -nan); assert!(-nan != nan); assert!( nan != 1.); assert!( nan != 0.); assert!( nan != inf); assert!( nan != -inf); assert!( 1. != nan); assert!( 0. != nan); assert!( inf != nan); assert!(-inf != nan); assert!(!( nan == nan)); assert!(!( nan == -nan)); assert!(!( nan == 1.)); assert!(!( nan == 0.)); assert!(!( nan == inf)); assert!(!( nan == -inf)); assert!(!( 1. == nan)); assert!(!( 0. == nan)); assert!(!( inf == nan)); assert!(!(-inf == nan)); assert!(!(-nan == nan)); assert!(!(-nan == -nan)); assert!(!( nan > nan)); assert!(!( nan > -nan)); assert!(!( nan > 0.)); assert!(!( nan > inf)); assert!(!( nan > -inf)); assert!(!( 0. > nan)); assert!(!( inf > nan)); assert!(!(-inf > nan)); assert!(!(-nan > nan)); assert!(!(nan < 0.)); assert!(!(nan < 1.)); assert!(!(nan < -1.)); assert!(!(nan < inf)); assert!(!(nan < -inf)); assert!(!(nan < nan)); assert!(!(nan < -nan)); assert!(!( 0. < nan)); assert!(!( 1. < nan)); assert!(!( -1. < nan)); assert!(!( inf < nan)); assert!(!(-inf < nan)); assert!(!(-nan < nan)); assert!((nan + inf).is_nan()); assert!((nan + -inf).is_nan()); assert!((nan + 0.).is_nan()); assert!((nan + 1.).is_nan()); assert!((nan * 1.).is_nan()); assert!((nan / 1.).is_nan()); assert!((nan / 0.).is_nan()); assert!((0.0/0.0f64).is_nan()); assert!((-inf + inf).is_nan()); assert!((inf - inf).is_nan()); assert!(!(-1.0f64).is_nan()); assert!(!(0.0f64).is_nan()); assert!(!(0.1f64).is_nan()); assert!(!(1.0f64).is_nan()); assert!(!(inf).is_nan()); assert!(!(-inf).is_nan()); assert!(!(1./-inf).is_nan()); }