use multi_bimap::HashMultiBimap;
use std::collections::HashSet;
fn main() {
let mut authorship: HashMultiBimap<&str, &str> = HashMultiBimap::new();
authorship.insert(
"Stefan Banach",
"Sur les opérations dans les ensembles abstraits",
);
authorship.insert("Stefan Banach", "Théorie des opérations linéaires");
authorship.insert(
"Stefan Banach",
"Sur le principe de la condensation des singularités",
);
authorship.insert(
"Hugo Steinhaus",
"Sur le principe de la condensation des singularités",
);
assert_eq!(
authorship.get_by_left("Stefan Banach"),
Some(&HashSet::from([
"Sur les opérations dans les ensembles abstraits",
"Théorie des opérations linéaires",
"Sur le principe de la condensation des singularités",
])),
);
assert_eq!(
authorship.get_by_right("Sur le principe de la condensation des singularités"),
Some(&HashSet::from(["Stefan Banach", "Hugo Steinhaus"])),
);
assert_eq!(
authorship.remove(
&"Hugo Steinhaus",
&"Sur le principe de la condensation des singularités",
),
Some((
"Hugo Steinhaus",
"Sur le principe de la condensation des singularités",
)),
);
assert_eq!(
authorship.get_by_right("Sur le principe de la condensation des singularités"),
Some(&HashSet::from(["Stefan Banach"])),
);
assert_eq!(authorship.get_by_left("Hugo Steinhaus"), None);
authorship.insert(
"Hugo Steinhaus",
"Sur le principe de la condensation des singularités",
);
assert_eq!(
authorship.get_by_right("Sur le principe de la condensation des singularités"),
Some(&HashSet::from(["Stefan Banach", "Hugo Steinhaus"])),
);
assert_eq!(
authorship.get_by_left("Hugo Steinhaus"),
Some(&HashSet::from([
"Sur le principe de la condensation des singularités",
])),
);
}
#[test]
fn test() {
main();
}