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.
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.
13 use core::num::Float::{
14 NaN, infinity, neg_infinity
18 let nan = NaN::<float>();
19 assert!((nan).is_NaN());
21 let inf = infinity::<float>();
22 assert_eq!(-inf, neg_infinity::<float>());
25 assert!( nan != -nan);
26 assert!(-nan != -nan);
32 assert!( nan != -inf);
39 assert!(!( nan == nan));
40 assert!(!( nan == -nan));
41 assert!(!( nan == 1.));
42 assert!(!( nan == 0.));
43 assert!(!( nan == inf));
44 assert!(!( nan == -inf));
45 assert!(!( 1. == nan));
46 assert!(!( 0. == nan));
47 assert!(!( inf == nan));
48 assert!(!(-inf == nan));
49 assert!(!(-nan == nan));
50 assert!(!(-nan == -nan));
52 assert!(!( nan > nan));
53 assert!(!( nan > -nan));
54 assert!(!( nan > 0.));
55 assert!(!( nan > inf));
56 assert!(!( nan > -inf));
57 assert!(!( 0. > nan));
58 assert!(!( inf > nan));
59 assert!(!(-inf > nan));
60 assert!(!(-nan > nan));
64 assert!(!(nan < -1.));
65 assert!(!(nan < inf));
66 assert!(!(nan < -inf));
67 assert!(!(nan < nan));
68 assert!(!(nan < -nan));
70 assert!(!( 0. < nan));
71 assert!(!( 1. < nan));
72 assert!(!( -1. < nan));
73 assert!(!( inf < nan));
74 assert!(!(-inf < nan));
75 assert!(!(-nan < nan));
77 assert!((nan + inf).is_NaN());
78 assert!((nan + -inf).is_NaN());
79 assert!((nan + 0.).is_NaN());
80 assert!((nan + 1.).is_NaN());
81 assert!((nan * 1.).is_NaN());
82 assert!((nan / 1.).is_NaN());
83 assert!((nan / 0.).is_NaN());
84 assert!((0f/0f).is_NaN());
85 assert!((-inf + inf).is_NaN());
86 assert!((inf - inf).is_NaN());
88 assert!(!(-1f).is_NaN());
89 assert!(!(0f).is_NaN());
90 assert!(!(0.1f).is_NaN());
91 assert!(!(1f).is_NaN());
92 assert!(!(inf).is_NaN());
93 assert!(!(-inf).is_NaN());
94 assert!(!(1./-inf).is_NaN());