code: def test_regression_sobol_groups():
      problem = {
          "num_vars": 3,
          "names": ["x1", "x2", "x3"],
          "bounds": [[-np.pi, np.pi]] * 3,
          "groups": ["G1", "G2", "G1"],
      }
      param_values = saltelli.sample(
          problem, 10000, calc_second_order=True
      )
  
      Y = Ishigami.evaluate(param_values)
      Si = sobol.analyze(
          problem,
          Y,
          calc_second_order=True,
          parallel=True,
          conf_level=0.95,
          print_to_console=False,
      )
  
      assert_allclose(Si["S1"], [0.55, 0.44], atol=5e-2, rtol=1e-1)
      assert_allclose(Si["ST"], [0.55, 0.44], atol=5e-2, rtol=1e-1)
      assert_allclose(Si["S2"][0][1], [0.00], atol=5e-2, rtol=1e-1)
  
imports: from pytest import fixture, mark
  import numpy
  from numpy.testing import assert_allclose
  from SALib.analyze import delta, dgsm, fast, rbd_fast, sobol, morris, hdmr
  from SALib.sample import fast_sampler, finite_diff, latin, saltelli
  from SALib.sample.morris import sample
  from SALib.test_functions import Ishigami
  from SALib.test_functions import linear_model_1
  from SALib.test_functions import linear_model_2
  from SALib.util import read_param_file
label_desc: Use image node_id 4 for calling a global function with example usage: test_regression_sobol_groups() without return types