code: def test_init(self):
      # Shared2FCBBoxHead
      bbox_head = Shared2FCBBoxHead(
          in_channels=1, fc_out_channels=1, num_classes=4
      )
      self.assertTrue(bbox_head.fc_cls)
      self.assertTrue(bbox_head.fc_reg)
      self.assertEqual(len(bbox_head.shared_fcs), 2)
  
      # Shared4Conv1FCBBoxHead
      bbox_head = Shared4Conv1FCBBoxHead(
          in_channels=1, fc_out_channels=1, num_classes=4
      )
      self.assertTrue(bbox_head.fc_cls)
      self.assertTrue(bbox_head.fc_reg)
      self.assertEqual(len(bbox_head.shared_convs), 4)
      self.assertEqual(len(bbox_head.shared_fcs), 1)
  
file_path: mmdetection/tests/test_models/test_roi_heads/test_bbox_heads/test_bbox_head.py
imports: from unittest import TestCase
  import torch
  from mmengine.config import ConfigDict
  from mmengine.structures import InstanceData
  from mmdet.models.roi_heads.bbox_heads import BBoxHead, Shared2FCBBoxHead, Shared4Conv1FCBBoxHead
  from mmdet.models.task_modules.samplers import SamplingResult
label_desc: Use image node_id 1 for calling the TestBboxHead obj's underlying member method code with example usage: obj.test_init() without return types