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 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 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}