code: def test_invalid_config(self):
      # Invalid num epochs
      config = self._get_valid_decay_config()
  
      bad_config = copy.deepcopy(config)
      # Invalid Base lr
      del bad_config["start_value"]
      with self.assertRaises((AssertionError, TypeError)):
          CosineParamScheduler.from_config(bad_config)
  
      # Invalid end_value
      bad_config["start_value"] = config["start_value"]
      del bad_config["end_value"]
      with self.assertRaises((AssertionError, TypeError)):
          CosineParamScheduler.from_config(bad_config)
  
file_path: ClassyVision/test/optim_param_scheduler_cosine_test.py
imports: import copy
  import unittest
  from classy_vision.optim.param_scheduler import build_param_scheduler, CosineParamScheduler
label_desc: Use image node_id 3 for calling the TestCosineScheduler obj's underlying member method code with example usage: obj.test_invalid_config() without return types