]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/float-nan.rs
test: "import" -> "use"
[rust.git] / src / test / run-pass / float-nan.rs
1 use std;
2
3 fn main() {
4   let nan = float::NaN;
5   assert(float::is_NaN(nan));
6
7   let inf = float::infinity;
8   assert(-inf == float::neg_infinity);
9
10   assert( nan !=  nan);
11   assert( nan != -nan);
12   assert(-nan != -nan);
13   assert(-nan !=  nan);
14
15   assert( nan !=   1.);
16   assert( nan !=   0.);
17   assert( nan !=  inf);
18   assert( nan != -inf);
19
20   assert(  1. !=  nan);
21   assert(  0. !=  nan);
22   assert( inf !=  nan);
23   assert(-inf !=  nan);
24
25   assert(!( nan ==  nan));
26   assert(!( nan == -nan));
27   assert(!( nan ==   1.));
28   assert(!( nan ==   0.));
29   assert(!( nan ==  inf));
30   assert(!( nan == -inf));
31   assert(!(  1. ==  nan));
32   assert(!(  0. ==  nan));
33   assert(!( inf ==  nan));
34   assert(!(-inf ==  nan));
35   assert(!(-nan ==  nan));
36   assert(!(-nan == -nan));
37
38   assert(!( nan >  nan));
39   assert(!( nan > -nan));
40   assert(!( nan >   0.));
41   assert(!( nan >  inf));
42   assert(!( nan > -inf));
43   assert(!(  0. >  nan));
44   assert(!( inf >  nan));
45   assert(!(-inf >  nan));
46   assert(!(-nan >  nan));
47
48   assert(!(nan <   0.));
49   assert(!(nan <   1.));
50   assert(!(nan <  -1.));
51   assert(!(nan <  inf));
52   assert(!(nan < -inf));
53   assert(!(nan <  nan));
54   assert(!(nan < -nan));
55
56   assert(!(  0. < nan));
57   assert(!(  1. < nan));
58   assert(!( -1. < nan));
59   assert(!( inf < nan));
60   assert(!(-inf < nan));
61   assert(!(-nan < nan));
62
63   assert(float::is_NaN(nan + inf));
64   assert(float::is_NaN(nan + -inf));
65   assert(float::is_NaN(nan + 0.));
66   assert(float::is_NaN(nan + 1.));
67   assert(float::is_NaN(nan * 1.));
68   assert(float::is_NaN(nan / 1.));
69   assert(float::is_NaN(nan / 0.));
70   assert(float::is_NaN(0. / 0.));
71   assert(float::is_NaN(-inf + inf));
72   assert(float::is_NaN(inf - inf));
73
74   assert(!float::is_NaN(-1.));
75   assert(!float::is_NaN(0.));
76   assert(!float::is_NaN(0.1));
77   assert(!float::is_NaN(1.));
78   assert(!float::is_NaN(inf));
79   assert(!float::is_NaN(-inf));
80   assert(!float::is_NaN(1./-inf));
81 }