code: def setUp(self):
      bboxes = [
          generate_random_bbox(5, (256, 324), 24, 120)
          for _ in range(10)
      ]
      areas = [
          [np.array([(bb[2] - bb[0]) * bb[3] - bb[0]]) for bb in bbox]
          for bbox in bboxes
      ]
      labels = 2 * np.ones((10, 5), dtype=np.int32)
      crowdeds = np.zeros((10, 5))
      self.dataset = TupleDataset(
          np.random.uniform(size=(10, 3, 32, 48)),
          bboxes,
          labels,
          areas,
          crowdeds,
      )
      self.link = _DetectionStubLink(bboxes, labels)
      self.iterator = SerialIterator(
          self.dataset, 5, repeat=False, shuffle=False
      )
      self.evaluator = DetectionCOCOEvaluator(
          self.iterator, self.link, label_names=("cls0", "cls1", "cls2")
      )
      self.expected_ap = 1
  
imports: import numpy
  import unittest
  import chainer
  from chainer.datasets import TupleDataset
  from chainer.iterators import SerialIterator
  from chainer import testing
  from chainercv.extensions import DetectionCOCOEvaluator
  from chainercv.utils import generate_random_bbox
  from chainercv.utils.testing import attr
  from chainermn import create_communicator
label_desc: Use image node_id 1 for calling the TestDetectionCOCOEvaluator obj's underlying member method code with example usage: obj.setUp() without return types