code: def test_conv1d_downsample(self):
      stride = 2
      out_len = self.max_len // stride
      out_len_1 = self.len1 // stride
      out_len_2 = self.len2 // stride
      inputs = torch.rand(
          [self.batch_size, self.in_channels, self.max_len]
      )
      lengths = torch.tensor([out_len_1, out_len_2], dtype=torch.int32)
  
      padding = get_down_sample_padding(
          kernel_size=self.kernel_size, stride=stride
      )
      conv = Conv1dNorm(
          in_channels=self.in_channels,
          out_channels=self.out_channels,
          kernel_size=self.kernel_size,
          stride=stride,
          padding=padding,
      )
      out = conv(inputs=inputs, input_len=lengths)
  
      assert out.shape == (self.batch_size, self.out_channels, out_len)
      assert torch.all(out[0, :, :out_len_1] != 0.0)
      assert torch.all(out[0, :, out_len_1:] == 0.0)
      assert torch.all(out[1, :, :out_len_2] != 0.0)
      assert torch.all(out[1, :, out_len_2:] == 0.0)
  
imports: import pytest
  import torch
  from nemo.collections.tts.modules.audio_codec_modules import CodecActivation, Conv1dNorm, ConvTranspose1dNorm, FiniteScalarQuantizer, GroupFiniteScalarQuantizer, get_down_sample_padding
  from nemo.collections.tts.modules.encodec_modules import GroupResidualVectorQuantizer, ResidualVectorQuantizer
label_desc: Use image node_id 3 for calling the TestAudioCodecModules obj's underlying member method code with example usage: obj.test_conv1d_downsample() without return types