Skip to content

Commit

Permalink
Fix SIMD tests
Browse files Browse the repository at this point in the history
Unfortunately, `gen_range` can no longer accept SIMD types (because it
requires `PartialOrd`), therefore we have to call
`UniformSample::sample_single` directly.
  • Loading branch information
vks committed Aug 1, 2020
1 parent 9fa343e commit 021cd0c
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions src/distributions/uniform.rs
Expand Up @@ -1160,7 +1160,7 @@ mod tests {
}

for _ in 0..1000 {
let v: $ty = rng.gen_range(low..high);
let v = <$ty as SampleUniform>::Sampler::sample_single(low, high, &mut rng);
assert!($le(low, v) && $lt(v, high));
}
}
Expand Down Expand Up @@ -1242,7 +1242,8 @@ mod tests {
assert!(low_scalar <= v && v < high_scalar);
let v = rng.sample(my_incl_uniform).extract(lane);
assert!(low_scalar <= v && v <= high_scalar);
let v = rng.gen_range(low..high).extract(lane);
let v = <$ty as SampleUniform>::Sampler
::sample_single(low, high, &mut rng).extract(lane);
assert!(low_scalar <= v && v < high_scalar);
}

Expand All @@ -1253,7 +1254,9 @@ mod tests {

assert_eq!(zero_rng.sample(my_uniform).extract(lane), low_scalar);
assert_eq!(zero_rng.sample(my_incl_uniform).extract(lane), low_scalar);
assert_eq!(zero_rng.gen_range(low..high).extract(lane), low_scalar);
assert_eq!(<$ty as SampleUniform>::Sampler
::sample_single(low, high, &mut zero_rng)
.extract(lane), low_scalar);
assert!(max_rng.sample(my_uniform).extract(lane) < high_scalar);
assert!(max_rng.sample(my_incl_uniform).extract(lane) <= high_scalar);

Expand All @@ -1266,7 +1269,9 @@ mod tests {
(-1i64 << $bits_shifted) as u64,
);
assert!(
lowering_max_rng.gen_range(low..high).extract(lane) < high_scalar
<$ty as SampleUniform>::Sampler
::sample_single(low, high, &mut lowering_max_rng)
.extract(lane) < high_scalar
);
}
}
Expand Down Expand Up @@ -1312,9 +1317,9 @@ mod tests {
fn test_float_assertions() {
use super::SampleUniform;
use std::panic::catch_unwind;
fn range<T: SampleUniform + PartialOrd>(low: T, high: T) {
fn range<T: SampleUniform>(low: T, high: T) {
let mut rng = crate::test::rng(253);
rng.gen_range(low..high);
T::Sampler::sample_single(low, high, &mut rng);
}

macro_rules! t {
Expand Down

0 comments on commit 021cd0c

Please sign in to comment.