code: def test_track(self):
      tracker = ShapenetPartTracker(MockDataset())
      model = MockModel()
      tracker.track(model)
      metrics = tracker.get_metrics(verbose=True)
      for k in ["train_Cmiou", "train_Imiou"]:
          self.assertAlmostEqual(metrics[k], 100, 5)
  
      model.iter += 1
      tracker.track(model)
      metrics = tracker.get_metrics(verbose=True)
      for k in ["train_Cmiou", "train_Imiou"]:
          self.assertAlmostEqual(metrics[k], 100, 5)
  
      model.iter += 1
      tracker.track(model)
      metrics = tracker.get_metrics(verbose=True)
      self.assertAlmostEqual(metrics["train_Imiou"], 4 * 100 / 5)
      self.assertAlmostEqual(
          metrics["train_Cmiou"], (100 + 200 / 3.0) / 2.0
      )
  
file_path: torch-points3d/test/test_shapenetparttracker.py
imports: import unittest
  import numpy
  import os
  import sys
  from torch_points3d.metrics.shapenet_part_tracker import ShapenetPartTracker
label_desc: Use image node_id 1 for calling the TestSegmentationTracker obj's underlying member method code with example usage: obj.test_track() without return types