code: def run_smoke_test(
      self, ext, sample_rate, num_channels, *, dtype="float32"
  ):
      duration = 1
      num_frames = sample_rate * duration
      path = self.get_temp_path(f"test.{ext}")
      original = get_wav_data(
          dtype, num_channels, normalize=False, num_frames=num_frames
      )
  
      get_save_func()(path, original, sample_rate)
      info = get_info_func()(path)
      assert info.sample_rate == sample_rate
      assert info.num_channels == num_channels
  
      loaded, sr = get_load_func()(path, normalize=False)
      assert sr == sample_rate
      assert loaded.shape[0] == num_channels
  
file_path: audio/test/torchaudio_unittest/backend/dispatcher/smoke_test.py
imports: import io
  from torchaudio._backend.utils import get_info_func, get_load_func, get_save_func
  from torchaudio_unittest.common_utils import get_wav_data, PytorchTestCase, skipIfNoFFmpeg, TempDirMixin
label_desc: Use image node_id 1 for calling the SmokeTest obj's underlying member method code with example usage: obj.run_smoke_test(ext, sample_rate, num_channels) without return types