mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-30 02:16:45 +01:00
+0.0 should be positive and -0.0 should be negative.
This commit is contained in:
parent
54ddb553c2
commit
7e064deacf
@ -214,12 +214,12 @@ fn NaN() -> float {
|
||||
}
|
||||
|
||||
/* Function: infinity */
|
||||
fn infinity() -> float {
|
||||
pure fn infinity() -> float {
|
||||
ret 1./0.;
|
||||
}
|
||||
|
||||
/* Function: neg_infinity */
|
||||
fn neg_infinity() -> float {
|
||||
pure fn neg_infinity() -> float {
|
||||
ret -1./0.;
|
||||
}
|
||||
|
||||
@ -257,16 +257,16 @@ pure fn ge(x: float, y: float) -> bool { ret x >= y; }
|
||||
pure fn gt(x: float, y: float) -> bool { ret x > y; }
|
||||
|
||||
/* Predicate: positive */
|
||||
pure fn positive(x: float) -> bool { ret x > 0.; }
|
||||
pure fn positive(x: float) -> bool { ret x > 0. || (1./x) == infinity(); }
|
||||
|
||||
/* Predicate: negative */
|
||||
pure fn negative(x: float) -> bool { ret x < 0.; }
|
||||
pure fn negative(x: float) -> bool { ret x < 0. || (1./x) == neg_infinity(); }
|
||||
|
||||
/* Predicate: nonpositive */
|
||||
pure fn nonpositive(x: float) -> bool { ret x <= 0.; }
|
||||
pure fn nonpositive(x: float) -> bool { ret !positive(x); }
|
||||
|
||||
/* Predicate: nonnegative */
|
||||
pure fn nonnegative(x: float) -> bool { ret x >= 0.; }
|
||||
pure fn nonnegative(x: float) -> bool { ret !negative(x); }
|
||||
|
||||
//
|
||||
// Local Variables:
|
||||
|
@ -15,5 +15,24 @@ fn test_from_str() {
|
||||
assert ( float::from_str("5.") == 5. );
|
||||
assert ( float::from_str(".5") == 0.5 );
|
||||
assert ( float::from_str("0.5") == 0.5 );
|
||||
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_positive() {
|
||||
assert(float::positive(float::infinity()));
|
||||
assert(float::positive(1.));
|
||||
assert(float::positive(0.));
|
||||
assert(!float::positive(-1.));
|
||||
assert(!float::positive(float::neg_infinity()));
|
||||
assert(!float::positive(1./float::neg_infinity()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_negative() {
|
||||
assert(!float::negative(float::infinity()));
|
||||
assert(!float::negative(1.));
|
||||
assert(!float::negative(0.));
|
||||
assert(float::negative(-1.));
|
||||
assert(float::negative(float::neg_infinity()));
|
||||
assert(float::negative(1./float::neg_infinity()));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user