code: def check_over_configs(self, time_step=0, **config):
      kwargs = dict(self.forward_default_kwargs)
  
      num_inference_steps = kwargs.pop("num_inference_steps", None)
  
      for scheduler_class in self.scheduler_classes:
          # TODO(Suraj) - delete the following two lines once DDPM, DDIM, and PNDM have timesteps casted to float by default
          if scheduler_class in (
              EulerAncestralDiscreteScheduler,
              EulerDiscreteScheduler,
              LMSDiscreteScheduler,
          ):
              time_step = float(time_step)
  
          scheduler_config = self.get_scheduler_config(**config)
          scheduler = scheduler_class(**scheduler_config)
  
          if scheduler_class == CMStochasticIterativeScheduler:
              # Get valid timestep based on sigma_max, which should always be in timestep schedule.
              scaled_sigma_max = scheduler.sigma_to_t(
                  scheduler.config.sigma_max
              )
              time_step = scaled_sigma_max
  
          if scheduler_class == VQDiffusionScheduler:
              num_vec_classes = scheduler_config["num_vec_classes"]
              sample = self.dummy_sample(num_vec_classes)
              model = self.dummy_model(num_vec_classes)
              residual = model(sample, time_step)
          else:
              sample = self.dummy_sample
              residual = 0.1 * sample
  
          with tempfile.TemporaryDirectory() as tmpdirname:
              scheduler.save_config(tmpdirname)
              new_scheduler = scheduler_class.from_pretrained(
                  tmpdirname
              )
  
          if num_inference_steps is not None and hasattr(
              scheduler, "set_timesteps"
          ):
              scheduler.set_timesteps(num_inference_steps)
              new_scheduler.set_timesteps(num_inference_steps)
          elif num_inference_steps is not None and not hasattr(
              scheduler, "set_timesteps"
          ):
              kwargs["num_inference_steps"] = num_inference_steps
  
          # Make sure `scale_model_input` is invoked to prevent a warning
          if scheduler_class == CMStochasticIterativeScheduler:
              # Get valid timestep based on sigma_max, which should always be in timestep schedule.
              _ = scheduler.scale_model_input(sample, scaled_sigma_max)
              _ = new_scheduler.scale_model_input(
                  sample, scaled_sigma_max
              )
          elif scheduler_class != VQDiffusionScheduler:
              _ = scheduler.scale_model_input(sample, 0)
              _ = new_scheduler.scale_model_input(sample, 0)
  
          # Set the seed before step() as some schedulers are stochastic like EulerAncestralDiscreteScheduler, EulerDiscreteScheduler
          if "generator" in set(
              inspect.signature(scheduler.step).parameters.keys()
          ):
              kwargs["generator"] = torch.manual_seed(0)
          output = scheduler.step(
              residual, time_step, sample, **kwargs
          ).prev_sample
  
          if "generator" in set(
              inspect.signature(scheduler.step).parameters.keys()
          ):
              kwargs["generator"] = torch.manual_seed(0)
          new_output = new_scheduler.step(
              residual, time_step, sample, **kwargs
          ).prev_sample
  
          assert (
              torch.sum(torch.abs(output - new_output)) < 1e-5
          ), "Scheduler outputs are not identical"
  
imports: import inspect
  import json
  import os
  import tempfile
  import unittest
  import uuid
  from typing import Dict, List, Tuple
  import numpy
  import torch
  from huggingface_hub import delete_repo
  import diffusers
  from diffusers import CMStochasticIterativeScheduler, DDIMScheduler, DEISMultistepScheduler, DiffusionPipeline, EulerAncestralDiscreteScheduler, EulerDiscreteScheduler, IPNDMScheduler, LMSDiscreteScheduler, UniPCMultistepScheduler, VQDiffusionScheduler, logging
  from diffusers.configuration_utils import ConfigMixin, register_to_config
  from diffusers.schedulers.scheduling_utils import SchedulerMixin
  from diffusers.utils.testing_utils import CaptureLogger, torch_device
  from ..others.test_utils import TOKEN, USER, is_staging_test
label_desc: Use image node_id 6 for calling the SchedulerCommonTest obj's underlying member method code with example usage: obj.check_over_configs(time_step) without return types