code: def test_device_by_pci_bus_id(self):
      d1 = cuda.Device()
      d2 = cuda.Device.from_pci_bus_id(d1.pci_bus_id)
      assert d1 == d2
      d3 = cuda.Device(d2)
      assert d2 == d3
  
      with pytest.raises(cuda.runtime.CUDARuntimeError) as excinfo:
          cuda.Device.from_pci_bus_id("fake:id")
          assert excinfo == "cudaErrorInvalidValue: invalid argument"
  
      with pytest.raises(cuda.runtime.CUDARuntimeError) as excinfo:
          cuda.Device.from_pci_bus_id("FFFF:FF:FF.F")
          assert (
              excinfo
              == "cudaErrorInvalidDevice: invalid device ordinal"
          )
  
imports: import re
  import threading
  import unittest
  import pytest
  import cupy
  from cupy import cuda
  from cupy import testing
label_desc: Use image node_id 2 for calling the TestDevicePCIBusId obj's underlying member method code with example usage: obj.test_device_by_pci_bus_id() without return types