code: def test_group_name():
      mocked_ebm_term_list = ["Ft1", "Ft2", "Ft3", "Ft4", "Ft1 & Ft2"]
  
      assert "Ft3" == _get_group_name(["Ft3"], mocked_ebm_term_list)
  
      term_names = ["Ft1", "Ft3", "Ft1 & Ft2"]
      assert "Ft1, Ft3, Ft1 & Ft2" == _get_group_name(
          term_names, mocked_ebm_term_list
      )
  
      # Ft2, Ft4, Ft1 & Ft2
      term_indices = [1, 3, 4]
      assert "Ft2, Ft4, Ft1 & Ft2" == _get_group_name(
          term_indices, mocked_ebm_term_list
      )
  
      out_of_bound_indices = [-1, 5]
      with pytest.raises(ValueError):
          _get_group_name(out_of_bound_indices, mocked_ebm_term_list)
  
file_path: interpret/python/interpret-core/tests/glassbox/ebm/research/test_group_importance.py
imports: import pytest
  import warnings
  from sklearn.exceptions import NotFittedError
  from interpret.glassbox import ExplainableBoostingRegressor, ExplainableBoostingClassifier
  from ....tutils import synthetic_multiclass, synthetic_classification, synthetic_regression
  from interpret.glassbox._ebm._research._group_importance import _get_group_name
  from interpret.glassbox._ebm._research import compute_group_importance, append_group_importance, get_group_and_individual_importances, get_individual_importances, get_importance_per_top_groups
label_desc: Use image node_id 1 for calling a global function with example usage: test_group_name() without return types