code: def test_pass_through(self, cat_acc):
      mock = Mock()
      cat_acc.return_value = mock
      mock.reset = Mock()
      mock.process = Mock()
      mock.process_final = Mock()
      mock.eval = Mock()
      mock.train = Mock()
  
      metric = DefaultAccuracy()
      metric.reset({torchbearer.CRITERION: None})
      metric.process(1, 2, 3)
      metric.process_final(4, 5, 6)
      metric.eval()
      metric.train()
  
      self.assertEqual(cat_acc.call_count, 1)
      mock.reset.assert_called_once_with({torchbearer.CRITERION: None})
      mock.process.assert_called_once_with(1, 2, 3)
      mock.process_final.assert_called_once_with(4, 5, 6)
      self.assertEqual(mock.eval.call_count, 1)
      self.assertEqual(mock.train.call_count, 1)
  
file_path: torchbearer/tests/metrics/test_default.py
imports: import unittest
  from mock import Mock, patch
  import torch.nn
  import torch.nn.functional
  import torchbearer
  from torchbearer.metrics import DefaultAccuracy
label_desc: Use image node_id 2 for calling the TestDefaultAccuracy obj's underlying member method code with example usage: obj.test_pass_through(cat_acc) without return types