code: def test_split_vm_2_gpu_cards_map():
      # Test a valid case 1
      vm_2_gpu_cards_map = {
          "frozen-vm-1": [
              GPUCard("0000:3b:00.0", "training-0"),
              GPUCard("0000:3b:00.1", "training-1"),
              GPUCard("0000:3b:00.2", "training-2"),
          ],
          "frozen-vm-2": [
              GPUCard("0000:3b:00.3", "training-3"),
              GPUCard("0000:3b:00.4", "training-4"),
          ],
          "frozen-vm-3": [GPUCard("0000:3b:00.5", "training-5")],
      }
      requested_gpu_num = 1
      expected_result = [
          {"frozen-vm-1": [GPUCard("0000:3b:00.0", "training-0")]},
          {"frozen-vm-1": [GPUCard("0000:3b:00.1", "training-1")]},
          {"frozen-vm-1": [GPUCard("0000:3b:00.2", "training-2")]},
          {"frozen-vm-2": [GPUCard("0000:3b:00.3", "training-3")]},
          {"frozen-vm-2": [GPUCard("0000:3b:00.4", "training-4")]},
          {"frozen-vm-3": [GPUCard("0000:3b:00.5", "training-5")]},
      ]
  
      result = split_vm_2_gpu_cards_map(
          vm_2_gpu_cards_map, requested_gpu_num
      )
      assert result == expected_result
  
      # Test a valid case 2
      requested_gpu_num = 2
      expected_result = [
          {
              "frozen-vm-1": [
                  GPUCard("0000:3b:00.0", "training-0"),
                  GPUCard("0000:3b:00.1", "training-1"),
              ]
          },
          {
              "frozen-vm-2": [
                  GPUCard("0000:3b:00.3", "training-3"),
                  GPUCard("0000:3b:00.4", "training-4"),
              ]
          },
      ]
      result = split_vm_2_gpu_cards_map(
          vm_2_gpu_cards_map, requested_gpu_num
      )
      assert result == expected_result
  
imports: import copy
  import time
  import pytest
  import threading
  from unittest.mock import MagicMock, patch
  from ray.autoscaler._private.vsphere.node_provider import VsphereNodeProvider
  from ray.autoscaler._private.vsphere.config import update_vsphere_configs, validate_frozen_vm_configs
  from ray.autoscaler._private.vsphere.gpu_utils import split_vm_2_gpu_cards_map, GPUCard, set_gpu_placeholder
  from ray.autoscaler._private.vsphere.utils import singleton_client
label_desc: Use image node_id 10 for calling a global function with example usage: test_split_vm_2_gpu_cards_map() without return types