code: def test_compute_grouped_elementary_effects():
      model_inputs = np.array(
          [
              [
                  0.39,
                  -0.39,
                  -1.64,
                  0.39,
                  -0.39,
                  -0.39,
                  0.39,
                  0.39,
                  -1.64,
                  -0.39,
                  0.39,
                  -1.64,
                  1.64,
                  1.64,
                  1.64,
              ],
              [
                  -1.64,
                  1.64,
                  0.39,
                  -1.64,
                  1.64,
                  1.64,
                  -1.64,
                  -1.64,
                  -1.64,
                  1.64,
                  0.39,
                  -1.64,
                  1.64,
                  1.64,
                  1.64,
              ],
              [
                  -1.64,
                  1.64,
                  0.39,
                  -1.64,
                  1.64,
                  1.64,
                  -1.64,
                  -1.64,
                  0.39,
                  1.64,
                  -1.64,
                  0.39,
                  -0.39,
                  -0.39,
                  -0.39,
              ],
          ]
      )
  
      model_results = np.array([13.85, -10.11, 1.12])
  
      problem = {
          "names": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
          ],
          "bounds": [[]],
          "groups": (
              np.array(
                  [
                      [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1],
                      [1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0],
                  ]
              ),
              ["gp1", "gp2"],
          ),
          "num_vars": 15,
      }
      ee = _compute_elementary_effects(
          model_inputs, model_results, 3, 2.0 / 3
      )
      mu_star = np.average(np.abs(ee), axis=1)
      actual = _compute_grouped_metric(mu_star, problem["groups"][0].T)
      desired = np.array([16.86, 35.95])
      assert_allclose(actual, desired, atol=1e-1)
  
file_path: SALib/tests/test_analyze_morris.py
imports: from pytest import raises, fixture
  import numpy
  from numpy.testing import assert_allclose, assert_equal
  from SALib.analyze.morris import analyze, _compute_mu_star_confidence, _compute_elementary_effects, _reorganize_output_matrix, _compute_grouped_metric, _compute_grouped_sigma, _check_if_array_of_floats
label_desc: Use image node_id 8 for calling a global function with example usage: test_compute_grouped_elementary_effects() without return types