code: def test_assign_with_no_valid_bboxes(self):
      assigner = SimOTAAssigner(
          center_radius=2.5,
          candidate_topk=1,
          iou_weight=3.0,
          cls_weight=1.0,
      )
      pred_instances = InstanceData(
          bboxes=torch.Tensor(
              [[123, 123, 143, 143], [114, 151, 161, 171]]
          ),
          scores=torch.FloatTensor([[0.2], [0.8]]),
          priors=torch.Tensor([[30, 30, 8, 8], [55, 55, 8, 8]]),
      )
      gt_instances = InstanceData(
          bboxes=torch.Tensor([[0, 0, 1, 1]]),
          labels=torch.LongTensor([0]),
      )
      assign_result = assigner.assign(
          pred_instances=pred_instances, gt_instances=gt_instances
      )
  
      expected_gt_inds = torch.LongTensor([0, 0])
      assert_allclose(assign_result.gt_inds, expected_gt_inds)
  
file_path: mmdetection/tests/test_models/test_task_modules/test_assigners/test_simota_assigner.py
imports: from unittest import TestCase
  import torch
  from mmengine.structures import InstanceData
  from mmengine.testing import assert_allclose
  from mmdet.models.task_modules.assigners import SimOTAAssigner
label_desc: Use image node_id 2 for calling the TestSimOTAAssigner obj's underlying member method code with example usage: obj.test_assign_with_no_valid_bboxes() without return types