code: def test_on_sample(self, mix):
      mm = (
          ManifoldMixup()
          .at_depth(None)
          .for_layers(["conv1", "layer1_relu", "layer2_layer1_conv"])
      )
  
      state = {
          torchbearer.MODEL: self.model,
          torchbearer.X: torch.rand(3, 1),
          torchbearer.Y_TRUE: torch.rand(3, 1),
      }
      mm.on_start(state)
  
      mm.on_sample(state)
      self.assertTrue(mix.call_count == 1)
  
      self.assertTrue(torchbearer.MIXUP_PERMUTATION in state)
      self.assertTrue(torchbearer.MIXUP_LAMBDA in state)
  
      state = {
          torchbearer.MODEL: self.model,
          torchbearer.X: torch.rand(3, 1),
          torchbearer.Y_TRUE: torch.rand(3, 1),
      }
      mm.on_sample(state)
      self.assertTrue(mix.call_count == 2)
  
imports: from unittest import TestCase
  from mock import patch, Mock
  from torch import nn
  from torchbearer.callbacks.manifold_mixup import ManifoldMixup
  import torchbearer
  import torch
label_desc: Use image node_id 12 for calling the TestManifoldMixup obj's underlying member method code with example usage: obj.test_on_sample(mix) without return types