use std::sync::atomic::{AtomicUsize, Ordering};
use super::*;
-use prelude::*;
+use crate::prelude::*;
use rayon_core::*;
use rand::distributions::Standard;
assert!(counter.load(Ordering::SeqCst) < 2048); // should not have visited every single one
}
+#[test]
+fn check_step_by() {
+ let a: Vec<i32> = (0..1024).step_by(2).collect();
+ let b: Vec<i32> = (0..1024).into_par_iter().step_by(2).collect();
+
+ assert_eq!(a, b);
+}
+
+#[test]
+fn check_step_by_unaligned() {
+ let a: Vec<i32> = (0..1029).step_by(10).collect();
+ let b: Vec<i32> = (0..1029).into_par_iter().step_by(10).collect();
+
+ assert_eq!(a, b)
+}
+
+#[test]
+fn check_step_by_rev() {
+ let a: Vec<i32> = (0..1024).step_by(2).rev().collect();
+ let b: Vec<i32> = (0..1024).into_par_iter().step_by(2).rev().collect();
+
+ assert_eq!(a, b);
+}
+
#[test]
fn check_enumerate() {
let a: Vec<usize> = (0..1024).rev().collect();
#[test]
fn check_cmp_rng_to_seq() {
let mut rng = seeded_rng();
+ let rng = &mut rng;
let a: Vec<i32> = rng.sample_iter(&Standard).take(1024).collect();
let b: Vec<i32> = rng.sample_iter(&Standard).take(1024).collect();
for i in 0..a.len() {
#[test]
fn check_partial_cmp_rng_to_seq() {
let mut rng = seeded_rng();
+ let rng = &mut rng;
let a: Vec<i32> = rng.sample_iter(&Standard).take(1024).collect();
let b: Vec<i32> = rng.sample_iter(&Standard).take(1024).collect();
for i in 0..a.len() {
#[test]
fn min_max() {
- let mut rng = seeded_rng();
+ let rng = seeded_rng();
let a: Vec<i32> = rng.sample_iter(&Standard).take(1024).collect();
for i in 0..=a.len() {
let slice = &a[..i];
#[test]
fn min_max_by() {
- let mut rng = seeded_rng();
+ let rng = seeded_rng();
// Make sure there are duplicate keys, for testing sort stability
let r: Vec<i32> = rng.sample_iter(&Standard).take(512).collect();
let a: Vec<(i32, u16)> = r.iter().chain(&r).cloned().zip(0..).collect();
#[test]
fn min_max_by_key() {
- let mut rng = seeded_rng();
+ let rng = seeded_rng();
// Make sure there are duplicate keys, for testing sort stability
let r: Vec<i32> = rng.sample_iter(&Standard).take(512).collect();
let a: Vec<(i32, u16)> = r.iter().chain(&r).cloned().zip(0..).collect();
#[test]
fn check_either() {
- type I = ::vec::IntoIter<i32>;
+ type I = crate::vec::IntoIter<i32>;
type E = Either<I, I>;
let v: Vec<i32> = (0..1024).collect();