code: def testInstanceResources(self):
      # AWS instances
      cpus, gpus = get_test_resources_from_cluster_compute(
          {
              "head_node_type": {
                  "instance_type": "m5.4xlarge"
              },  # 16 CPUs, 0 GPUs
              "worker_node_types": [
                  {
                      "instance_type": "m5.8xlarge",  # 32 CPUS, 0 GPUs
                      "max_workers": 4,
                  },
                  {
                      "instance_type": "g3.8xlarge",  # 32 CPUs, 2 GPUs
                      "min_workers": 8,
                  },
              ],
          }
      )
      self.assertEqual(cpus, 16 + 32 * 4 + 32 * 8)
      self.assertEqual(gpus, 2 * 8)
  
      cpus, gpus = get_test_resources_from_cluster_compute(
          {
              "head_node_type": {
                  "instance_type": "n1-standard-16"  # 16 CPUs, 0 GPUs
              },
              "worker_node_types": [
                  {
                      "instance_type": "random-str-xxx-32",  # 32 CPUS, 0 GPUs
                      "max_workers": 4,
                  },
                  {
                      "instance_type": "a2-highgpu-2g",  # 24 CPUs, 2 GPUs
                      "min_workers": 8,
                  },
              ],
          }
      )
      self.assertEqual(cpus, 16 + 32 * 4 + 24 * 8)
      self.assertEqual(gpus, 2 * 8)
  
imports: import os
  import sys
  import tempfile
  import unittest
  from typing import Dict, Callable
  from unittest.mock import patch
  import yaml
  from github import Repository
  from ray_release.buildkite.concurrency import get_test_resources_from_cluster_compute, get_concurrency_group
  from ray_release.buildkite.filter import filter_tests, group_tests
  from ray_release.buildkite.settings import split_ray_repo_str, get_default_settings, update_settings_from_environment, Frequency, update_settings_from_buildkite, Priority, get_test_attr_regex_filters
  from ray_release.buildkite.step import get_step, RELEASE_QUEUE_DEFAULT, RELEASE_QUEUE_CLIENT, DOCKER_PLUGIN_KEY
  from ray_release.test import Test
  from ray_release.exception import ReleaseTestConfigError
  from ray_release.wheels import DEFAULT_BRANCH
label_desc: Use image node_id 10 for calling the BuildkiteSettingsTest obj's underlying member method code with example usage: obj.testInstanceResources() without return types