class_docstr: Test to verify PruningSchedule behavior for step parameters.
  
  This is a parameterized test which runs over all PruningSchedule classes
  to ensure they validate parameters such as begin_step, end_step and frequency
  properly and also apply them correctly during execution.
code: def testPrunesOnlyInBeginEndStepRange(self, schedule_type):
      sparsity = self._construct_pruning_schedule(
          schedule_type, 100, 200, 1
      )
  
      # Before begin step
      step_90 = tf.Variable(90)
      step_99 = tf.Variable(99)
      # In range
      step_100 = tf.Variable(100)
      step_110 = tf.Variable(110)
      step_200 = tf.Variable(200)
      # After end step
      step_201 = tf.Variable(201)
      step_210 = tf.Variable(210)
      compat.initialize_variables(self)
  
      self.assertFalse(self.evaluate(sparsity(step_90))[0])
      self.assertFalse(self.evaluate(sparsity(step_99))[0])
  
      self.assertTrue(self.evaluate(sparsity(step_100))[0])
      self.assertTrue(self.evaluate(sparsity(step_110))[0])
      self.assertTrue(self.evaluate(sparsity(step_200))[0])
  
      self.assertFalse(self.evaluate(sparsity(step_201))[0])
      self.assertFalse(self.evaluate(sparsity(step_210))[0])
  
imports: from absl.testing import parameterized
  import tensorflow
  from tensorflow_model_optimization.python.core.keras import compat
  from tensorflow_model_optimization.python.core.quantization.keras import utils
  from tensorflow_model_optimization.python.core.sparsity.keras import pruning_schedule
label_desc: Use image node_id 8 for calling the PruningScheduleTest obj's underlying member method code with example usage: obj.testPrunesOnlyInBeginEndStepRange(schedule_type) without return types