code: def test_fast_eval_recall(self):
      # create dummy data
      fake_json_file = osp.join(self.tmp_dir.name, "fake_data.json")
      self._create_dummy_lvis_json(fake_json_file)
      dummy_pred = self._create_dummy_results()
  
      # test default proposal nums
      lvis_metric = LVISMetric(
          ann_file=fake_json_file, metric="proposal_fast"
      )
      lvis_metric.dataset_meta = dict(
          classes=["aerosol_can", "air_conditioner"]
      )
      lvis_metric.process(
          {},
          [
              dict(
                  pred_instances=dummy_pred,
                  img_id=0,
                  ori_shape=(640, 640),
              )
          ],
      )
      eval_results = lvis_metric.evaluate(size=1)
      target = {
          "lvis/AR@100": 1.0,
          "lvis/AR@300": 1.0,
          "lvis/AR@1000": 1.0,
      }
      self.assertDictEqual(eval_results, target)
  
      # test manually set proposal nums
      lvis_metric = LVISMetric(
          ann_file=fake_json_file,
          metric="proposal_fast",
          proposal_nums=(2, 4),
      )
      lvis_metric.dataset_meta = dict(
          classes=["aerosol_can", "air_conditioner"]
      )
      lvis_metric.process(
          {},
          [
              dict(
                  pred_instances=dummy_pred,
                  img_id=0,
                  ori_shape=(640, 640),
              )
          ],
      )
      eval_results = lvis_metric.evaluate(size=1)
      target = {"lvis/AR@2": 0.5, "lvis/AR@4": 1.0}
      self.assertDictEqual(eval_results, target)
  
imports: import os.path
  import tempfile
  import unittest
  import numpy
  import pycocotools.mask
  import torch
  from mmdet.evaluation.metrics import LVISMetric
  from mmengine.fileio import dump
label_desc: Use image node_id 9 for calling the TestLVISMetric obj's underlying member method code with example usage: obj.test_fast_eval_recall() without return types