code: def test_roll(window: float) -> None:
      torch.manual_seed(0)
      opts = get_config()
      setattr(opts, "audio_augmentation.roll.window", window)
      transform = Roll(opts)
  
      C, N = 2, 20
  
      audio = torch.arange(C * N).view(C, N)
      x = {"samples": {"audio": audio.clone()}}
  
      output = transform(x)["samples"]["audio"]
      # The first parameter won't change (unless we are unlucky and the "roll"
      # parameter is 0). That's why we fix the seed above.
      assert output[0, 0] != audio[0, 0]
      # Make sure the first channel is just a shifted version of the original audio.
      assert torch.all(
          (output[0] - output[0, 0]) % output.shape[1] == audio[0]
      )
  
      # Make sure the second channel has the same shift as the first.
      assert torch.all(
          (output[0] - output[0, 0]) == (output[1] - (output[1, 0]))
      )
  
file_path: ml-cvnets/tests/transforms/test_audio.py
imports: import copy
  import os
  import shutil
  import tempfile
  import pytest
  import scipy.io.wavfile
  import torch
  from data.transforms.audio import AudioResample, Gain, LambdaAudio, MFCCs, Noise, Roll, SetFixedLength, StandardizeChannels
  from tests.configs import get_config
label_desc: Use image node_id 4 for calling a global function with example usage: test_roll(window) without return types