You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: module_group_graph.rs
    path of file: ./repos/farm/crates/plugin_partial_bundling/tests
    
    the code of the file until where you have to start completion: use std::collections::HashSet;

use farmfe_plugin_partial_bundling::module_group_graph_from_entries;
use farmfe_testing_helpers::{
  construct_test_module_graph_complex, construct_test_module_group_graph_complex,
};

#[test]
fn module_group_graph() {
  let mut module_graph = construct_test_module_graph_complex();
  let module_group_graph =
    module_group_graph_from_entries(&vec!["A".into(), "B".into()], &mut module_graph);

  assert_eq!(
    module_group_graph,
    construct_test_module_group_graph_complex()
  );
  // test module A, B, C, D, E, F, G, H
  let module_a = module_graph.module(&"A".into()).unwrap();
  assert_eq!(
    module_a.module_groups,
    HashSet::from(["A".into(), "F".into()])
  );
  let module_b = module_graph.module(&"B".into()).unwrap();
  assert_eq!(module_b.module_groups, HashSet::from(["B".into()]));
  let module_c = module_graph.module(&"C".into()).unwrap();
  assert_eq!(
    module_c.module_groups,
    HashSet::from(["A".into(), "F".into()])
  );
  let module_d = module_graph.module(&"D".into()).unwrap();
  assert_eq!(
    module_d.module_groups,
    HashSet::from(["B".into(), "D".into()])
  );
  let module_e = module_graph.module(&"E".into()).unwrap();
  assert_eq!(module_e.module_
    
fn module_group_graph() {
  let mut module_graph = construct_test_module_graph_complex();
  let module_group_graph =
    module_group_graph_from_entries(&vec!["A".into(), "B".into()], &mut module_graph);

  assert_eq!(
    module_group_graph,
    construct_test_module_group_graph_complex()
  );
  // test module A, B, C, D, E, F, G, H
  let module_a = module_graph.module(&"A".into()).unwrap();
  assert_eq!(
    module_a.module_groups,
    HashSet::from(["A".into(), "F".into()])
  );
  let module_b = module_graph.module(&"B".into()).unwrap();
  assert_eq!(module_b.module_groups, HashSet::from(["B".into()]));
  let module_c = module_graph.module(&"C".into()).unwrap();
  assert_eq!(
    module_c.module_groups,
    HashSet::from(["A".into(), "F".into()])
  );
  let module_d = module_graph.module(&"D".into()).unwrap();
  assert_eq!(
    module_d.module_groups,
    HashSet::from(["B".into(), "D".into()])
  );
  let module_e = module_graph.module(&"E".into()).unwrap();
  assert_eq!(module_e.module_groups, HashSet::from(["B".into()]));
  let module_f = module_graph.module(&"F".into()).unwrap();
  assert_eq!(module_f.module_groups, HashSet::from(["F".into()]));
  let module_g = module_graph.module(&"G".into()).unwrap();
  assert_eq!(module_g.module_groups, HashSet::from(["G".into()]));
  let module_h = module_graph.module(&"H".into()).unwrap();
  assert_eq!(
    module_h.module_groups,
    HashSet::from(["G".into(), "F".into(), "B".into(), "D".into()])
  );
}