assert_almost_eq!(estimate_scaling_factor(1, -1074), -323);
assert_almost_eq!(estimate_scaling_factor(0x1fffffffffffff, 971), 309);
- #[cfg(not(miri))] // Miri is too slow
- let iter = -1074..972;
- #[cfg(miri)]
- let iter = (-1074..972).step_by(37);
+ // Miri is too slow
+ let step = if cfg!(miri) { 37 } else { 1 };
- for i in iter {
+ for i in (-1074..972).step_by(step) {
let expected = super::ldexp_f64(1.0, i).log10().ceil();
assert_almost_eq!(estimate_scaling_factor(1, i as i16), expected as i16);
}
#[test]
fn shortest_random_equivalence_test() {
use core::num::flt2dec::strategy::dragon::format_shortest as fallback;
- #[cfg(not(miri))] // Miri is too slow
- const N: usize = 10_000;
- #[cfg(miri)]
- const N: usize = 10;
+ // Miri is too slow
+ let n = if cfg!(miri) { 10 } else { 10_000 };
- f64_random_equivalence_test(format_shortest_opt, fallback, MAX_SIG_DIGITS, N);
- f32_random_equivalence_test(format_shortest_opt, fallback, MAX_SIG_DIGITS, N);
+ f64_random_equivalence_test(format_shortest_opt, fallback, MAX_SIG_DIGITS, n);
+ f32_random_equivalence_test(format_shortest_opt, fallback, MAX_SIG_DIGITS, n);
}
#[test]
#[test]
fn exact_f32_random_equivalence_test() {
use core::num::flt2dec::strategy::dragon::format_exact as fallback;
- #[cfg(not(miri))] // Miri is too slow
- const N: usize = 1_000;
- #[cfg(miri)]
- const N: usize = 3;
+ // Miri is too slow
+ let n = if cfg!(miri) { 3 } else { 1_000 };
for k in 1..21 {
f32_random_equivalence_test(
|d, buf| format_exact_opt(d, buf, i16::MIN),
|d, buf| fallback(d, buf, i16::MIN),
k,
- N,
+ n,
);
}
}
#[test]
fn exact_f64_random_equivalence_test() {
use core::num::flt2dec::strategy::dragon::format_exact as fallback;
- #[cfg(not(miri))] // Miri is too slow
- const N: usize = 1_000;
- #[cfg(miri)]
- const N: usize = 3;
+ // Miri is too slow
+ let n = if cfg!(miri) { 3 } else { 1_000 };
for k in 1..21 {
f64_random_equivalence_test(
|d, buf| format_exact_opt(d, buf, i16::MIN),
|d, buf| fallback(d, buf, i16::MIN),
k,
- N,
+ n,
);
}
}
use core::slice::heapsort;
use rand::{rngs::StdRng, seq::SliceRandom, Rng, SeedableRng};
- #[cfg(not(miri))] // Miri is too slow
- let large_range = 500..510;
- #[cfg(not(miri))] // Miri is too slow
- let rounds = 100;
-
- #[cfg(miri)]
- let large_range = 0..0; // empty range
- #[cfg(miri)]
- let rounds = 1;
+ // Miri is too slow
+ let large_range = if cfg!(miri) { 0..0 } else { 500..510 };
+ let rounds = if cfg!(miri) { 1 } else { 100 };
let mut v = [0; 600];
let mut tmp = [0; 600];