Skip to main content

colon/
union.rs

1extern crate test;
2
3use std::cmp::PartialEq;
4
5pub fn union<T: Clone + PartialEq>(v1: Vec<T>, v2: Vec<T>) -> Vec<T> {
6  let mut o = v1.clone();
7
8  o.extend(v2);
9  o.dedup();
10  o
11}
12
13#[cfg(test)]
14mod tests {
15  use super::*;
16  use test::Bencher;
17
18  #[test]
19  fn it_works() {
20    // test with 10 items
21    let v1 = vec![1, 2, 3, 4, 5];
22    let v2 = vec![6, 7, 8, 9, 10];
23
24    assert_eq!(union(v1, v2).len(), 10);
25  }
26
27  #[bench]
28  fn bench_union(b: &mut Bencher) {
29    // benchmark with 10 items
30    let v1 = vec![1, 2, 3, 4, 5];
31    let v2 = vec![6, 7, 8, 9, 10];
32    b.iter(|| union(v1.clone(), v2.clone()));
33  }
34}