]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/float-nan.rs
rustdoc: Replace no-pretty-expanded with pretty-expanded
[rust.git] / src / test / run-pass / float-nan.rs
1 // Copyright 2012 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 // pretty-expanded FIXME #23616
12
13 #![feature(std_misc)]
14
15 use std::num::Float;
16
17 pub fn main() {
18   let nan: f64 = Float::nan();
19   assert!((nan).is_nan());
20
21   let inf: f64 = Float::infinity();
22   let neg_inf: f64 = Float::neg_infinity();
23   assert_eq!(-inf, neg_inf);
24
25   assert!( nan !=  nan);
26   assert!( nan != -nan);
27   assert!(-nan != -nan);
28   assert!(-nan !=  nan);
29
30   assert!( nan !=   1.);
31   assert!( nan !=   0.);
32   assert!( nan !=  inf);
33   assert!( nan != -inf);
34
35   assert!(  1. !=  nan);
36   assert!(  0. !=  nan);
37   assert!( inf !=  nan);
38   assert!(-inf !=  nan);
39
40   assert!(!( nan == nan));
41   assert!(!( nan == -nan));
42   assert!(!( nan == 1.));
43   assert!(!( nan == 0.));
44   assert!(!( nan == inf));
45   assert!(!( nan == -inf));
46   assert!(!(  1. == nan));
47   assert!(!(  0. == nan));
48   assert!(!( inf == nan));
49   assert!(!(-inf == nan));
50   assert!(!(-nan == nan));
51   assert!(!(-nan == -nan));
52
53   assert!(!( nan >  nan));
54   assert!(!( nan > -nan));
55   assert!(!( nan >   0.));
56   assert!(!( nan >  inf));
57   assert!(!( nan > -inf));
58   assert!(!(  0. >  nan));
59   assert!(!( inf >  nan));
60   assert!(!(-inf >  nan));
61   assert!(!(-nan >  nan));
62
63   assert!(!(nan <   0.));
64   assert!(!(nan <   1.));
65   assert!(!(nan <  -1.));
66   assert!(!(nan <  inf));
67   assert!(!(nan < -inf));
68   assert!(!(nan <  nan));
69   assert!(!(nan < -nan));
70
71   assert!(!(  0. < nan));
72   assert!(!(  1. < nan));
73   assert!(!( -1. < nan));
74   assert!(!( inf < nan));
75   assert!(!(-inf < nan));
76   assert!(!(-nan < nan));
77
78   assert!((nan + inf).is_nan());
79   assert!((nan + -inf).is_nan());
80   assert!((nan + 0.).is_nan());
81   assert!((nan + 1.).is_nan());
82   assert!((nan * 1.).is_nan());
83   assert!((nan / 1.).is_nan());
84   assert!((nan / 0.).is_nan());
85   assert!((0.0/0.0f64).is_nan());
86   assert!((-inf + inf).is_nan());
87   assert!((inf - inf).is_nan());
88
89   assert!(!(-1.0f64).is_nan());
90   assert!(!(0.0f64).is_nan());
91   assert!(!(0.1f64).is_nan());
92   assert!(!(1.0f64).is_nan());
93   assert!(!(inf).is_nan());
94   assert!(!(-inf).is_nan());
95   assert!(!(1./-inf).is_nan());
96 }