code: def test_si_sdr_loss(self):
      loss_fn = SISDRLoss()
      sdr_fn = ScaleInvariantSignalDistortionRatio(zero_mean=True)
  
      num_samples = 1000
      torch.manual_seed(100)
      target = torch.rand([1, num_samples])
      predicted = torch.rand([1, num_samples])
      target_len = torch.tensor([num_samples, num_samples])
  
      torch_si_sdr = sdr_fn(preds=predicted, target=target)
      loss = loss_fn(
          audio_real=target, audio_gen=predicted, audio_len=target_len
      )
      si_sdr = -loss
  
      torch.testing.assert_close(actual=si_sdr, expected=torch_si_sdr)
  
file_path: NeMo/tests/collections/tts/losses/test_audio_codec_loss.py
imports: import pytest
  import torch
  from torchmetrics import ScaleInvariantSignalDistortionRatio
  from nemo.collections.tts.losses.audio_codec_loss import MaskedMAELoss, MaskedMSELoss, SISDRLoss
  from nemo.collections.tts.parts.utils.helpers import mask_sequence_tensor
label_desc: Use image node_id 3 for calling the TestAudioCodecLoss obj's underlying member method code with example usage: obj.test_si_sdr_loss() without return types