code: def test_hpo_without_bagging_no_resources_per_trial(
      mock_system_resources_ctx_mgr, executor_cls
  ):
      hyperparameter_tune_kwargs = {
          "scheduler": "local",
          "searcher": "random",
          "num_trials": 4,
      }
      executor = _initialize_executor(
          executor_cls, hyperparameter_tune_kwargs
      )
      total_resources = {"num_cpus": 8, "num_gpus": 1}
      with mock_system_resources_ctx_mgr(
          num_cpus=total_resources["num_cpus"],
          num_gpus=total_resources["num_gpus"],
      ):
          # Test valid resources per fold and resources per trial
          model = DummyModel(
              minimum_resources={"num_cpus": 1, "num_gpus": 0.1},
          )
          model.initialize()
          executor.register_resources(
              model, X=dummy_x, **total_resources
          )
          if executor_cls == RayHpoExecutor:
              # 4 trials in parallel, each using 1 cpu and 0.25 gpus(the maximum possible)
              assert executor.hyperparameter_tune_kwargs[
                  "resources_per_trial"
              ] == {"num_cpus": 2, "num_gpus": 0.25}
          elif executor_cls == CustomHpoExecutor:
              # custom backend use all resources for one trial
              assert executor.hyperparameter_tune_kwargs[
                  "resources_per_trial"
              ] == {"num_cpus": 8, "num_gpus": 1}
  
imports: import pandas
  import pytest
  from autogluon.core.hpo.executors import CustomHpoExecutor, RayHpoExecutor
  from autogluon.core.models.ensemble.bagged_ensemble_model import BaggedEnsembleModel
  from autogluon.tabular.models import AbstractModel
label_desc: Use image node_id 13 for calling a global function with example usage: test_hpo_without_bagging_no_resources_per_trial(mock_system_resources_ctx_mgr, executor_cls) without return types