hunk.code_window: @pytest.mark.parametrize(
       "ray_start_cluster_head", [
           generate_system_config_map(
               num_heartbeats_timeout=20, ping_gcs_rpc_server_max_retries=60)
       ],
       indirect=True)
   def test_placement_group_wait_api(ray_start_cluster_head):
  
hunk.labels: keep keep keep keep keep replace keep keep keep
hunk.after_edit:             num_heartbeats_timeout=2, ping_gcs_rpc_server_max_retries=60)
  
hunk.file_path: python/ray/tests/test_placement_group.py
hunk.type: replace
file: package io.ray.test;
  
  import io.ray.runtime.config.RayConfig;
  import io.ray.runtime.config.RunMode;
  import java.util.List;
  import org.testng.IAlterSuiteListener;
  import org.testng.xml.XmlGroups;
  import org.testng.xml.XmlRun;
  import org.testng.xml.XmlSuite;
  
  public class RayAlterSuiteListener implements IAlterSuiteListener {
  
    @Override
    public void alter(List<XmlSuite> suites) {
      XmlSuite suite = suites.get(0);
      String excludedGroup =
          RayConfig.create().runMode == RunMode.SINGLE_PROCESS ? "cluster" : "singleProcess";
      XmlGroups groups = new XmlGroups();
      XmlRun run = new XmlRun();
      run.onExclude(excludedGroup);
      groups.setRun(run);
      suite.setGroups(groups);
    }
  }
  