// option. This file may not be copied, modified, or distributed
// except according to those terms.
-extern mod std;
+use std::num::Float;
pub fn main() {
- let nan = float::NaN;
- assert!((float::is_NaN(nan)));
+ let nan: f64 = Float::nan();
+ assert!((nan).is_nan());
- let inf = float::infinity;
- assert!((-inf == float::neg_infinity));
+ let inf: f64 = Float::infinity();
+ let neg_inf: f64 = Float::neg_infinity();
+ assert_eq!(-inf, neg_inf);
- assert!(( nan != nan));
- assert!(( nan != -nan));
- assert!((-nan != -nan));
- assert!((-nan != nan));
+ 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!( nan != 1.);
+ assert!( nan != 0.);
+ assert!( nan != inf);
+ assert!( nan != -inf);
- assert!(( 1. != nan));
- assert!(( 0. != nan));
- assert!(( inf != nan));
- assert!((-inf != nan));
+ 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 == 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 > 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!(!(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!(!( 0. < nan));
+ assert!(!( 1. < nan));
+ assert!(!( -1. < nan));
+ assert!(!( inf < nan));
+ assert!(!(-inf < nan));
+ assert!(!(-nan < nan));
- assert!((float::is_NaN(nan + inf)));
- assert!((float::is_NaN(nan + -inf)));
- assert!((float::is_NaN(nan + 0.)));
- assert!((float::is_NaN(nan + 1.)));
- assert!((float::is_NaN(nan * 1.)));
- assert!((float::is_NaN(nan / 1.)));
- assert!((float::is_NaN(nan / 0.)));
- assert!((float::is_NaN(0. / 0.)));
- assert!((float::is_NaN(-inf + inf)));
- assert!((float::is_NaN(inf - inf)));
+ 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!((!float::is_NaN(-1.)));
- assert!((!float::is_NaN(0.)));
- assert!((!float::is_NaN(0.1)));
- assert!((!float::is_NaN(1.)));
- assert!((!float::is_NaN(inf)));
- assert!((!float::is_NaN(-inf)));
- assert!((!float::is_NaN(1./-inf)));
+ 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());
}