Skip to content

Commit 7548a0d

Browse files
committed
Restore accidentally overwritten test
1 parent 3d0610b commit 7548a0d

File tree

1 file changed

+74
-18
lines changed

1 file changed

+74
-18
lines changed

src/test/run-pass/float-nan.rs

Lines changed: 74 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,82 @@
11
use std;
2+
import std::float;
23

3-
import std::ctypes::*;
4+
fn main() {
5+
let nan = float::NaN;
6+
assert(float::isNaN(nan));
47

5-
fn foo_float() -> m_float { ret 0.0 as m_float; }
6-
fn bar_float() -> float { be foo_float() as float; }
8+
let inf = float::infinity;
9+
assert(-inf == float::neg_infinity);
710

8-
fn foo_int() -> m_int { ret 0 as m_int; }
9-
fn bar_int() -> int { be foo_int() as int; }
11+
assert( nan != nan);
12+
assert( nan != -nan);
13+
assert(-nan != -nan);
14+
assert(-nan != nan);
1015

11-
fn foo_uint() -> m_uint { ret 0u as m_uint; }
12-
fn bar_uint() -> uint { be foo_uint() as uint; }
16+
assert( nan != 1.);
17+
assert( nan != 0.);
18+
assert( nan != inf);
19+
assert( nan != -inf);
1320

14-
fn foo_long() -> long { ret 0 as long; }
15-
fn bar_long() -> int { be foo_long() as int; }
21+
assert( 1. != nan);
22+
assert( 0. != nan);
23+
assert( inf != nan);
24+
assert(-inf != nan);
1625

17-
fn foo_ulong() -> ulong { ret 0u as ulong; }
18-
fn bar_ulong() -> uint { be foo_uint() as uint; }
26+
assert(!( nan == nan));
27+
assert(!( nan == -nan));
28+
assert(!( nan == 1.));
29+
assert(!( nan == 0.));
30+
assert(!( nan == inf));
31+
assert(!( nan == -inf));
32+
assert(!( 1. == nan));
33+
assert(!( 0. == nan));
34+
assert(!( inf == nan));
35+
assert(!(-inf == nan));
36+
assert(!(-nan == nan));
37+
assert(!(-nan == -nan));
1938

20-
fn main() {
21-
assert bar_float() == 0.0;
22-
assert bar_int() == 0;
23-
assert bar_uint() == 0u;
24-
assert bar_long() == 0;
25-
assert bar_ulong() == 0u;
26-
}
39+
assert(!( nan > nan));
40+
assert(!( nan > -nan));
41+
assert(!( nan > 0.));
42+
assert(!( nan > inf));
43+
assert(!( nan > -inf));
44+
assert(!( 0. > nan));
45+
assert(!( inf > nan));
46+
assert(!(-inf > nan));
47+
assert(!(-nan > nan));
48+
49+
assert(!(nan < 0.));
50+
assert(!(nan < 1.));
51+
assert(!(nan < -1.));
52+
assert(!(nan < inf));
53+
assert(!(nan < -inf));
54+
assert(!(nan < nan));
55+
assert(!(nan < -nan));
56+
57+
assert(!( 0. < nan));
58+
assert(!( 1. < nan));
59+
assert(!( -1. < nan));
60+
assert(!( inf < nan));
61+
assert(!(-inf < nan));
62+
assert(!(-nan < nan));
63+
64+
assert(float::isNaN(nan + inf));
65+
assert(float::isNaN(nan + -inf));
66+
assert(float::isNaN(nan + 0.));
67+
assert(float::isNaN(nan + 1.));
68+
assert(float::isNaN(nan * 1.));
69+
assert(float::isNaN(nan / 1.));
70+
assert(float::isNaN(nan / 0.));
71+
assert(float::isNaN(0. / 0.));
72+
assert(float::isNaN(-inf + inf));
73+
assert(float::isNaN(inf - inf));
74+
75+
assert(!float::isNaN(-1.));
76+
assert(!float::isNaN(0.));
77+
assert(!float::isNaN(0.1));
78+
assert(!float::isNaN(1.));
79+
assert(!float::isNaN(inf));
80+
assert(!float::isNaN(-inf));
81+
assert(!float::isNaN(1./-inf));
82+
}

0 commit comments

Comments
 (0)