class_docstr: Tests all time-step dependent Schedule classes.
code: def test_constant_schedule(self):
      value = 2.3
      ts = [100, 0, 10, 2, 3, 4, 99, 56, 10000, 23, 234, 56]
  
      config = {"value": value}
  
      for fw in framework_iterator(
          frameworks=["tf2", "tf", "torch", None]
      ):
          constant = from_config(ConstantSchedule, config, framework=fw)
          for t in ts:
              out = constant(t)
              check(out, value)
  
          ts_as_tensors = self._get_framework_tensors(ts, fw)
          for t in ts_as_tensors:
              out = constant(t)
              assert fw != "tf" or isinstance(out, tf.Tensor)
              check(out, value, decimals=4)
  
file_path: ray/rllib/utils/schedules/tests/test_schedules.py
imports: import unittest
  from ray.rllib.utils.schedules import ConstantSchedule, LinearSchedule, ExponentialSchedule, PiecewiseSchedule
  from ray.rllib.utils import check, framework_iterator, try_import_tf, try_import_torch
  from ray.rllib.utils.from_config import from_config
label_desc: Use image node_id 1 for calling the TestSchedules obj's underlying member method code with example usage: obj.test_constant_schedule() without return types