code: def test_init(self, cfg_file):
      model = get_detector_cfg(cfg_file)
      # backbone convert to ResNet18
      model.detector.backbone.depth = 18
      model.detector.neck.in_channels = [64, 128, 256, 512]
      model.detector.backbone.init_cfg = None
  
      model = MODELS.build(model)
      self.assertTrue(model.teacher.backbone)
      self.assertTrue(model.teacher.neck)
      self.assertTrue(model.teacher.rpn_head)
      self.assertTrue(model.teacher.roi_head)
      self.assertTrue(model.student.backbone)
      self.assertTrue(model.student.neck)
      self.assertTrue(model.student.rpn_head)
      self.assertTrue(model.student.roi_head)
  
imports: from unittest import TestCase
  from mmengine.registry import MODELS
  from parameterized import parameterized
  from mmdet.testing import get_detector_cfg
  from mmdet.utils import register_all_modules
label_desc: Use image node_id 1 for calling the TestSemiBase obj's underlying member method code with example usage: obj.test_init(cfg_file) without return types