code: def test_cam_wrapper(self):
      model = MagicMock()
      wrapper = imaging.inside_cnns._CAMWrapper((3, 10, 10), model)
  
      self.assertTrue(wrapper.input_image.requires_grad)
      self.assertTrue(
          wrapper.input_image.shape == torch.Size([3, 10, 10])
      )
      wrapper("", "state")
      self.assertTrue(model.call_count == 1)
      self.assertTrue(
          model.call_args[0][0].shape == torch.Size([1, 3, 10, 10])
      )
      self.assertTrue(model.call_args[0][1] == "state")
      model.reset_mock()
  
      model.side_effect = lambda x: x
      wrapper("", "state")
      self.assertTrue(model.call_count == 2)
      self.assertTrue(model.call)
      self.assertTrue(
          model.call_args[0][0].shape == torch.Size([1, 3, 10, 10])
      )
  
file_path: torchbearer/tests/callbacks/imaging/test_inside_cnns.py
imports: from unittest import TestCase
  from mock import MagicMock, patch, ANY
  import torch
  import torchbearer
  import torchbearer.callbacks.imaging
label_desc: Use image node_id 5 for calling the TestClassAppearanceModel obj's underlying member method code with example usage: obj.test_cam_wrapper() without return types