]>
Commit | Line | Data |
---|---|---|
2c00a5a8 XL |
1 | use rayon::prelude::*; |
2 | ||
3 | #[test] | |
4 | fn check_intersperse() { | |
5 | let v: Vec<_> = (0..1000).into_par_iter().intersperse(-1).collect(); | |
6 | assert_eq!(v.len(), 1999); | |
7 | for (i, x) in v.into_iter().enumerate() { | |
8 | assert_eq!(x, if i % 2 == 0 { i as i32 / 2 } else { -1 }); | |
9 | } | |
10 | } | |
11 | ||
12 | #[test] | |
13 | fn check_intersperse_again() { | |
532ac7d7 XL |
14 | let v: Vec<_> = (0..1000) |
15 | .into_par_iter() | |
16 | .intersperse(-1) | |
17 | .intersperse(-2) | |
18 | .collect(); | |
2c00a5a8 XL |
19 | assert_eq!(v.len(), 3997); |
20 | for (i, x) in v.into_iter().enumerate() { | |
21 | let y = match i % 4 { | |
22 | 0 => i as i32 / 4, | |
23 | 2 => -1, | |
24 | _ => -2, | |
25 | }; | |
26 | assert_eq!(x, y); | |
27 | } | |
28 | } | |
29 | ||
30 | #[test] | |
31 | fn check_intersperse_unindexed() { | |
32 | let v: Vec<_> = (0..1000).map(|i| i.to_string()).collect(); | |
33 | let s = v.join(","); | |
34 | let s2 = v.join(";"); | |
35 | let par: String = s.par_split(',').intersperse(";").collect(); | |
36 | assert_eq!(par, s2); | |
37 | } | |
38 | ||
39 | #[test] | |
40 | fn check_intersperse_producer() { | |
532ac7d7 XL |
41 | (0..1000) |
42 | .into_par_iter() | |
43 | .intersperse(-1) | |
2c00a5a8 XL |
44 | .zip_eq(0..1999) |
45 | .for_each(|(x, i)| { | |
46 | assert_eq!(x, if i % 2 == 0 { i / 2 } else { -1 }); | |
47 | }); | |
48 | } | |
49 | ||
50 | #[test] | |
51 | fn check_intersperse_rev() { | |
532ac7d7 XL |
52 | (0..1000) |
53 | .into_par_iter() | |
54 | .intersperse(-1) | |
55 | .zip_eq(0..1999) | |
56 | .rev() | |
2c00a5a8 XL |
57 | .for_each(|(x, i)| { |
58 | assert_eq!(x, if i % 2 == 0 { i / 2 } else { -1 }); | |
59 | }); | |
60 | } |