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_create_placement_group_during_gcs_server_restart(
           ray_start_cluster_head):
       cluster = ray_start_cluster_head
  
hunk.labels: keep keep keep replace keep keep 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: export enum ActorEnum {
    ALIVE = "ALIVE",
    PENDING = "PENDING",
    RECONSTRUCTING = "RECONSTRUCTING",
    DEAD = "DEAD",
  }
  
  export type Address = {
    rayletId: string;
    ipAddress: string;
    port: number;
    workerId: string;
  };
  
  export type TaskSpec = {
    actorCreationTaskSpec: {
      actorId: string;
      dynamicWorkerOptions: string[];
      extensionData: string;
      isAsyncio: boolean;
      isDetached: boolean;
      maxActorRestarts: boolean;
      maxConcurrency: number;
      name: string;
    };
    args: {
      data: string;
      metadata: string;
      nestedInlinedIds: string[];
      objectIds: string[];
    }[];
    callerAddress: {
      ipAddress: string;
      port: number;
      rayletId: string;
      workerId: string;
    };
    callerId: string;
    functionDescriptor: {
      javaFunctionDescriptor: {
        className: string;
        functionName: string;
        signature: string;
      };
      pythonFunctionDescriptor: {
        className: string;
        functionName: string;
        signature: string;
      };
    };
    jobId: string;
    language: string;
    maxRetries: number;
    numReturns: string;
    parentCounter: string;
    parentTaskId: string;
    requiredPlacementResources: {
      [key: string]: number;
    };
    requiredResources: {
      [key: string]: number;
    };
    sourceActorId: string;
    taskId: string;
    type: string;
  };
  
  export type Actor = {
    actorId: string;
    children: { [key: string]: Actor };
    taskSpec: TaskSpec;
    ipAddress: string;
    isDirectCall: boolean;
    jobId: string;
    numExecutedTasks: number;
    numLocalObjects: number;
    numObjectIdsInScope: number;
    state: ActorEnum | string; // PENDING, ALIVE, RECONSTRUCTING, DEAD
    taskQueueLength: number;
    usedObjectStoreMemory: number;
    usedResources: { [key: string]: string | number };
    timestamp: number;
    actorTitle: string;
    averageTaskExecutionSpeed: number;
    nodeId: string;
    pid: number;
    ownerAddress: Address;
    address: Address;
    maxReconstructions: string;
    remainingReconstructions: string;
    isDetached: false;
    name: string;
    numRestarts: string;
  };
  