Skip to content

Commit

Permalink
Separate f128 % operation to deal with missing fmodl symbol
Browse files Browse the repository at this point in the history
  • Loading branch information
raoulstrackx committed Nov 7, 2024
1 parent 8022523 commit 79d2063
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions std/src/f128/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
#![cfg(reliable_f128)]

use crate::f128::consts;
use crate::num::{FpCategory as Fp, *};
use crate::num::FpCategory as Fp;
#[cfg(reliable_f128_math)]
use crate::ops::Rem;
use crate::ops::{Add, Div, Mul, Sub};

// Note these tolerances make sense around zero, but not for more extreme exponents.

Expand Down Expand Up @@ -53,7 +56,22 @@ macro_rules! assert_f128_biteq {

#[test]
fn test_num_f128() {
test_num(10f128, 2f128);
// FIXME(f16_f128): replace with a `test_num` call once the required `fmodl`/`fmodf128`
// function is available on all platforms.
let ten = 10f128;
let two = 2f128;
assert_eq!(ten.add(two), ten + two);
assert_eq!(ten.sub(two), ten - two);
assert_eq!(ten.mul(two), ten * two);
assert_eq!(ten.div(two), ten / two);
}

#[test]
#[cfg(reliable_f128_math)]
fn test_num_f128_rem() {
let ten = 10f128;
let two = 2f128;
assert_eq!(ten.rem(two), ten % two);
}

#[test]
Expand Down

0 comments on commit 79d2063

Please sign in to comment.