code: def test_double_meter_update_and_reset(self):
      meter = RecallAtKMeter(topk=[1, 2])
  
      # Batchsize = 3, num classes = 3, score is probability of class
      model_outputs = [
          torch.tensor(
              [[0.3, 0.4, 0.3], [0.2, 0.65, 0.15], [0.33, 0.33, 0.34]]
          ),
          torch.tensor(
              [[0.05, 0.4, 0.05], [0.15, 0.65, 0.2], [0.4, 0.2, 0.4]]
          ),
      ]
  
      # One-hot encoding, 1 = positive for class
      # batch-1: sample-1: 1, sample-2: 0, sample-3: 0,1,2
      # batch-2: sample-1: 1, sample-2: 1, sample-3: 1
      targets = [
          torch.tensor([[0, 1, 0], [1, 0, 0], [1, 1, 1]]),
          torch.tensor([[0, 1, 0], [0, 1, 0], [0, 1, 0]]),
      ]
  
      # First batch has top-1 recall of 2/5.0, top-2 recall of 4/5.0
      # Second batch has top-1 recall of 2/3.0, top-2 recall of 2/3.0
      expected_value = {"top_1": 4 / 8.0, "top_2": 6 / 8.0}
  
      self.meter_update_and_reset_test(
          meter, model_outputs, targets, expected_value
      )
  
file_path: ClassyVision/test/meters_recall_meter_test.py
imports: import torch
  from classy_vision import meters
  from classy_vision.meters import RecallAtKMeter
  from test.generic.meter_test_utils import ClassificationMeterTest
label_desc: Use image node_id 3 for calling the TestRecallAtKMeter obj's underlying member method code with example usage: obj.test_double_meter_update_and_reset() without return types