Skip to content

Commit 846219f

Browse files
committed
Add {min,max}_set(_by{_key)?)? functions (8) add quickcheck tests
the {min,max}_set results must contain the result of the corresponding {min,max} variant.
1 parent 08a10da commit 846219f

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

tests/quick.rs

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1693,3 +1693,62 @@ quickcheck! {
16931693
}
16941694
}
16951695

1696+
quickcheck! {
1697+
fn min_set_contains_min(a: Vec<(usize, char)>) -> bool {
1698+
let result_set = a.iter().min_set();
1699+
if let Some(result_element) = a.iter().min() {
1700+
result_set.contains(&result_element)
1701+
} else {
1702+
result_set.is_empty()
1703+
}
1704+
}
1705+
1706+
fn min_set_by_contains_min(a: Vec<(usize, char)>) -> bool {
1707+
let compare = |x: &&(usize, char), y: &&(usize, char)| x.1.cmp(&y.1);
1708+
let result_set = a.iter().min_set_by(compare);
1709+
if let Some(result_element) = a.iter().min_by(compare) {
1710+
result_set.contains(&result_element)
1711+
} else {
1712+
result_set.is_empty()
1713+
}
1714+
}
1715+
1716+
fn min_set_by_key_contains_min(a: Vec<(usize, char)>) -> bool {
1717+
let key = |x: &&(usize, char)| x.1;
1718+
let result_set = a.iter().min_set_by_key(&key);
1719+
if let Some(result_element) = a.iter().min_by_key(&key) {
1720+
result_set.contains(&result_element)
1721+
} else {
1722+
result_set.is_empty()
1723+
}
1724+
}
1725+
1726+
fn max_set_contains_max(a: Vec<(usize, char)>) -> bool {
1727+
let result_set = a.iter().max_set();
1728+
if let Some(result_element) = a.iter().max() {
1729+
result_set.contains(&result_element)
1730+
} else {
1731+
result_set.is_empty()
1732+
}
1733+
}
1734+
1735+
fn max_set_by_contains_max(a: Vec<(usize, char)>) -> bool {
1736+
let compare = |x: &&(usize, char), y: &&(usize, char)| x.1.cmp(&y.1);
1737+
let result_set = a.iter().max_set_by(compare);
1738+
if let Some(result_element) = a.iter().max_by(compare) {
1739+
result_set.contains(&result_element)
1740+
} else {
1741+
result_set.is_empty()
1742+
}
1743+
}
1744+
1745+
fn max_set_by_key_contains_max(a: Vec<(usize, char)>) -> bool {
1746+
let key = |x: &&(usize, char)| x.1;
1747+
let result_set = a.iter().max_set_by_key(&key);
1748+
if let Some(result_element) = a.iter().max_by_key(&key) {
1749+
result_set.contains(&result_element)
1750+
} else {
1751+
result_set.is_empty()
1752+
}
1753+
}
1754+
}

0 commit comments

Comments
 (0)