code: def test_single_proc(self):
      setup(0, 1)
      _loss_fn = ContrastiveLoss()
      _miner_fn = PairMarginMiner()
      loss_fn = distributed.DistributedLossWrapper(loss=_loss_fn)
      miner_fn = distributed.DistributedMinerWrapper(miner=_miner_fn)
  
      emb = torch.randn(32, 128, device=TEST_DEVICE)
      labels = torch.randint(0, 3, size=(32,))
      pairs = miner_fn(emb, labels)
      loss = loss_fn(emb, labels, indices_tuple=pairs)
      cleanup()
  
      self.assertEqual(
          loss, _loss_fn(emb, indices_tuple=_miner_fn(emb, labels))
      )
  
imports: import logging
  import os
  import unittest
  import torch
  import torch.distributed
  import torch.multiprocessing
  import torch.optim
  from torch.nn.parallel import DistributedDataParallel
  from pytorch_metric_learning.losses import ContrastiveLoss, CrossBatchMemory
  from pytorch_metric_learning.miners import PairMarginMiner
  from pytorch_metric_learning.utils import distributed
  from ..None import TEST_DEVICE, TEST_DTYPES
label_desc: Use image node_id 6 for calling the TestDistributedLossWrapper obj's underlying member method code with example usage: obj.test_single_proc() without return types