code: def test_stft_istft_identity(
      ctx, window_size, stride, fft_size, window_type, center, pad_mode
  ):
      backend = ctx.backend[0].split(":")[0]
      if backend == "cuda":
          pytest.skip(
              "CUDA Convolution N-D is only supported in CUDNN extension"
          )
  
      x_shape = create_stft_input_shape(window_size)
      x = np.random.randn(*x_shape)
  
      # Skip for NOLA condition violation
      length = x_shape[1]
      if is_nola_violation(
          window_type, window_size, stride, fft_size, length, center
      ):
          pytest.skip("NOLA condition violation.")
          return
  
      x = nn.Variable.from_numpy_array(x)
      with nn.context_scope(ctx):
          yr, yi = F.stft(
              x,
              window_size,
              stride,
              fft_size,
              window_type,
              center,
              pad_mode,
          )
          z = F.istft(
              yr,
              yi,
              window_size,
              stride,
              fft_size,
              window_type,
              center,
              pad_mode="constant",
          )
      z.forward()
  
      assert np.allclose(x.d, z.d, atol=1e-5, rtol=1e-5)
  
file_path: nnabla/python/test/function/test_istft.py
imports: from operator import is_
  import pytest
  import numpy
  import nnabla
  import nnabla.functions
  import scipy.signal
  import librosa
  from nbla_test_utils import list_context
  from test_stft import create_stft_input_shape, create_window_func, is_nola_violation, ref_stft
label_desc: Use image node_id 5 for calling a global function with example usage: test_stft_istft_identity(ctx, window_size, stride, fft_size, window_type, center, pad_mode) without return types