code: def test_tampering(self) -> None:
      im = IterationManager(
          num_epochs=2, edge_paths=["A", "B", "C"], num_edge_chunks=4
      )
      it = iter(im)
      self.assertEqual(next(it), (0, 0, 0))
      im.iteration_idx = (0 * 3 + 1) * 4 + 1
      # When calling next it gets incremented.
      self.assertEqual(next(it), (0, 1, 2))
      im.edge_paths = ["foo", "bar"]
      im.num_edge_chunks = 2
      self.assertEqual(next(it), (1, 1, 1))
      im.iteration_idx = 100
      with self.assertRaises(StopIteration):
          next(it)
  
file_path: PyTorch-BigGraph/test/test_train.py
imports: from itertools import product
  from unittest import main, TestCase
  from torchbiggraph.train_cpu import IterationManager
label_desc: Use image node_id 3 for calling the TestIterationManager obj's underlying member method code with example usage: obj.test_tampering() without return types