code: def test_scheduler_update_interval(self):
      config = self._get_valid_mixed_config()
  
      # Check default
      scheduler = CompositeParamScheduler.from_config(config)
      self.assertEqual(scheduler.update_interval, UpdateInterval.STEP)
  
      # Check step
      step_config = copy.deepcopy(config)
      step_config["update_interval"] = "step"
      scheduler = build_param_scheduler(step_config)
      self.assertEqual(scheduler.update_interval, UpdateInterval.STEP)
  
      # Check epoch
      epoch_config = copy.deepcopy(config)
      epoch_config["update_interval"] = "epoch"
      scheduler = build_param_scheduler(epoch_config)
      self.assertEqual(scheduler.update_interval, UpdateInterval.EPOCH)
  
file_path: ClassyVision/test/optim_param_scheduler_composite_test.py
imports: import copy
  import unittest
  from classy_vision.optim.param_scheduler import build_param_scheduler
  from classy_vision.optim.param_scheduler.composite_scheduler import CompositeParamScheduler, IntervalScaling, UpdateInterval
label_desc: Use image node_id 8 for calling the TestCompositeScheduler obj's underlying member method code with example usage: obj.test_scheduler_update_interval() without return types