Skip to content

Commit

Permalink
Add {min,max}_set(_by{_key)?)? functions (8) add quickcheck tests
Browse files Browse the repository at this point in the history
the {min,max}_set results must contain the result of the corresponding
{min,max} variant.
  • Loading branch information
phimuemue committed May 21, 2022
1 parent 08a10da commit 846219f
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions tests/quick.rs
Expand Up @@ -1693,3 +1693,62 @@ quickcheck! {
}
}

quickcheck! {
fn min_set_contains_min(a: Vec<(usize, char)>) -> bool {
let result_set = a.iter().min_set();
if let Some(result_element) = a.iter().min() {
result_set.contains(&result_element)
} else {
result_set.is_empty()
}
}

fn min_set_by_contains_min(a: Vec<(usize, char)>) -> bool {
let compare = |x: &&(usize, char), y: &&(usize, char)| x.1.cmp(&y.1);
let result_set = a.iter().min_set_by(compare);
if let Some(result_element) = a.iter().min_by(compare) {
result_set.contains(&result_element)
} else {
result_set.is_empty()
}
}

fn min_set_by_key_contains_min(a: Vec<(usize, char)>) -> bool {
let key = |x: &&(usize, char)| x.1;
let result_set = a.iter().min_set_by_key(&key);
if let Some(result_element) = a.iter().min_by_key(&key) {
result_set.contains(&result_element)
} else {
result_set.is_empty()
}
}

fn max_set_contains_max(a: Vec<(usize, char)>) -> bool {
let result_set = a.iter().max_set();
if let Some(result_element) = a.iter().max() {
result_set.contains(&result_element)
} else {
result_set.is_empty()
}
}

fn max_set_by_contains_max(a: Vec<(usize, char)>) -> bool {
let compare = |x: &&(usize, char), y: &&(usize, char)| x.1.cmp(&y.1);
let result_set = a.iter().max_set_by(compare);
if let Some(result_element) = a.iter().max_by(compare) {
result_set.contains(&result_element)
} else {
result_set.is_empty()
}
}

fn max_set_by_key_contains_max(a: Vec<(usize, char)>) -> bool {
let key = |x: &&(usize, char)| x.1;
let result_set = a.iter().max_set_by_key(&key);
if let Some(result_element) = a.iter().max_by_key(&key) {
result_set.contains(&result_element)
} else {
result_set.is_empty()
}
}
}

0 comments on commit 846219f

Please sign in to comment.