Skip to content

Commit

Permalink
Fixed float next_up/down 32-bit x87 float NaN roundtrip test case.
Browse files Browse the repository at this point in the history
  • Loading branch information
orlp committed Oct 30, 2021
1 parent f202a0b commit 6f543ee
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
24 changes: 12 additions & 12 deletions library/std/src/f32/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -296,12 +296,12 @@ fn test_next_up() {
let smallest_normal = f32::from_bits(0x0080_0000);

// Check that NaNs roundtrip.
let nan0 = f32::NAN.to_bits();
let nan1 = f32::NAN.to_bits() ^ 0x002a_aaaa;
let nan2 = f32::NAN.to_bits() ^ 0x0055_5555;
assert_eq!(f32::from_bits(nan0).next_up().to_bits(), nan0);
assert_eq!(f32::from_bits(nan1).next_up().to_bits(), nan1);
assert_eq!(f32::from_bits(nan2).next_up().to_bits(), nan2);
let nan0 = f32::NAN;
let nan1 = f32::from_bits(f32::NAN.to_bits() ^ 0x002a_aaaa);
let nan2 = f32::from_bits(f32::NAN.to_bits() ^ 0x0055_5555);
assert_eq!(nan0.next_up().to_bits(), nan0.to_bits());
assert_eq!(nan1.next_up().to_bits(), nan1.to_bits());
assert_eq!(nan2.next_up().to_bits(), nan2.to_bits());

assert_eq!(f32::NEG_INFINITY.next_up(), f32::MIN);
assert_eq!(f32::MIN.next_up(), -max_down);
Expand All @@ -327,12 +327,12 @@ fn test_next_down() {
let smallest_normal = f32::from_bits(0x0080_0000);

// Check that NaNs roundtrip.
let nan0 = f32::NAN.to_bits();
let nan1 = f32::NAN.to_bits() ^ 0x002a_aaaa;
let nan2 = f32::NAN.to_bits() ^ 0x0055_5555;
assert_eq!(f32::from_bits(nan0).next_down().to_bits(), nan0);
assert_eq!(f32::from_bits(nan1).next_down().to_bits(), nan1);
assert_eq!(f32::from_bits(nan2).next_down().to_bits(), nan2);
let nan0 = f32::NAN;
let nan1 = f32::from_bits(f32::NAN.to_bits() ^ 0x002a_aaaa);
let nan2 = f32::from_bits(f32::NAN.to_bits() ^ 0x0055_5555);
assert_eq!(nan0.next_down().to_bits(), nan0.to_bits());
assert_eq!(nan1.next_down().to_bits(), nan1.to_bits());
assert_eq!(nan2.next_down().to_bits(), nan2.to_bits());

assert_eq!(f32::NEG_INFINITY.next_down(), f32::NEG_INFINITY);
assert_eq!(f32::MIN.next_down(), f32::NEG_INFINITY);
Expand Down
24 changes: 12 additions & 12 deletions library/std/src/f64/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -298,12 +298,12 @@ fn test_next_up() {
let smallest_normal = f64::from_bits(0x0010_0000_0000_0000);

// Check that NaNs roundtrip.
let nan0 = f64::NAN.to_bits();
let nan1 = f64::NAN.to_bits() ^ 0x000a_aaaa_aaaa_aaaa;
let nan2 = f64::NAN.to_bits() ^ 0x0005_5555_5555_5555;
assert_eq!(f64::from_bits(nan0).next_up().to_bits(), nan0);
assert_eq!(f64::from_bits(nan1).next_up().to_bits(), nan1);
assert_eq!(f64::from_bits(nan2).next_up().to_bits(), nan2);
let nan0 = f64::NAN;
let nan1 = f64::from_bits(f64::NAN.to_bits() ^ 0x000a_aaaa_aaaa_aaaa);
let nan2 = f64::from_bits(f64::NAN.to_bits() ^ 0x0005_5555_5555_5555);
assert_eq!(nan0.next_up().to_bits(), nan0.to_bits());
assert_eq!(nan1.next_up().to_bits(), nan1.to_bits());
assert_eq!(nan2.next_up().to_bits(), nan2.to_bits());

assert_eq!(f64::NEG_INFINITY.next_up(), f64::MIN);
assert_eq!(f64::MIN.next_up(), -max_down);
Expand All @@ -329,12 +329,12 @@ fn test_next_down() {
let smallest_normal = f64::from_bits(0x0010_0000_0000_0000);

// Check that NaNs roundtrip.
let nan0 = f64::NAN.to_bits();
let nan1 = f64::NAN.to_bits() ^ 0x000a_aaaa_aaaa_aaaa;
let nan2 = f64::NAN.to_bits() ^ 0x0005_5555_5555_5555;
assert_eq!(f64::from_bits(nan0).next_down().to_bits(), nan0);
assert_eq!(f64::from_bits(nan1).next_down().to_bits(), nan1);
assert_eq!(f64::from_bits(nan2).next_down().to_bits(), nan2);
let nan0 = f64::NAN;
let nan1 = f64::from_bits(f64::NAN.to_bits() ^ 0x000a_aaaa_aaaa_aaaa);
let nan2 = f64::from_bits(f64::NAN.to_bits() ^ 0x0005_5555_5555_5555);
assert_eq!(nan0.next_down().to_bits(), nan0.to_bits());
assert_eq!(nan1.next_down().to_bits(), nan1.to_bits());
assert_eq!(nan2.next_down().to_bits(), nan2.to_bits());

assert_eq!(f64::NEG_INFINITY.next_down(), f64::NEG_INFINITY);
assert_eq!(f64::MIN.next_down(), f64::NEG_INFINITY);
Expand Down

0 comments on commit 6f543ee

Please sign in to comment.