code: def testInterpolation(self):
      scheduler = ScheduledHyperParamSetter(
          ObjAttrParam(self._param_obj, ParamObject.PARAM_NAME),
          [(30, 0.3), (40, 0.4), (50, 0.5)],
          interp="linear",
          step_based=True,
      )
      history = self._create_trainer_with_scheduler(
          scheduler, 10, 50, starting_epoch=20
      )
      self.assertEqual(min(history.keys()), 30)
      self.assertEqual(history[30], 0.3)
      self.assertEqual(history[40], 0.4)
      self.assertEqual(history[45], 0.45)
  
imports: import unittest
  from ..compat import tfv1
  from ..utils import logger
  from ..train.trainers import NoOpTrainer
  from ..input_source import DummyConstantInput
  from .param import ScheduledHyperParamSetter, ObjAttrParam
label_desc: Use image node_id 4 for calling the ScheduledHyperParamSetterTest obj's underlying member method code with example usage: obj.testInterpolation() without return types