2011-10-28 00:01:30 -05:00
|
|
|
use std;
|
2011-12-13 18:25:51 -06:00
|
|
|
import float;
|
2011-10-28 00:01:30 -05:00
|
|
|
|
2011-12-07 15:02:38 -06:00
|
|
|
fn main() {
|
|
|
|
let nan = float::NaN;
|
2012-01-05 07:46:14 -06:00
|
|
|
assert(float::is_NaN(nan));
|
2011-10-28 00:01:30 -05:00
|
|
|
|
2011-12-07 15:02:38 -06:00
|
|
|
let inf = float::infinity;
|
|
|
|
assert(-inf == float::neg_infinity);
|
2011-10-28 00:01:30 -05:00
|
|
|
|
2011-12-07 15:02:38 -06:00
|
|
|
assert( nan != nan);
|
|
|
|
assert( nan != -nan);
|
|
|
|
assert(-nan != -nan);
|
|
|
|
assert(-nan != nan);
|
2011-10-28 00:01:30 -05:00
|
|
|
|
2011-12-07 15:02:38 -06:00
|
|
|
assert( nan != 1.);
|
|
|
|
assert( nan != 0.);
|
|
|
|
assert( nan != inf);
|
|
|
|
assert( nan != -inf);
|
2011-10-28 00:01:30 -05:00
|
|
|
|
2011-12-07 15:02:38 -06:00
|
|
|
assert( 1. != nan);
|
|
|
|
assert( 0. != nan);
|
|
|
|
assert( inf != nan);
|
|
|
|
assert(-inf != nan);
|
2011-10-28 00:01:30 -05:00
|
|
|
|
2011-12-07 15:02:38 -06:00
|
|
|
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));
|
2011-10-28 00:01:30 -05:00
|
|
|
|
2011-12-07 15:02:38 -06:00
|
|
|
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(!( 0. < nan));
|
|
|
|
assert(!( 1. < nan));
|
|
|
|
assert(!( -1. < nan));
|
|
|
|
assert(!( inf < nan));
|
|
|
|
assert(!(-inf < nan));
|
|
|
|
assert(!(-nan < nan));
|
|
|
|
|
2012-01-05 07:46:14 -06:00
|
|
|
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));
|
2011-12-07 15:02:38 -06:00
|
|
|
|
2012-01-05 07:46:14 -06:00
|
|
|
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));
|
2011-12-07 15:02:38 -06:00
|
|
|
}
|