code: def test_irfft(self):
      inputs_val = np.random.random((1, N, N)).astype(
          pytensor.config.floatX
      )
      inputs = pytensor.shared(inputs_val)
  
      rfft = fft.rfft(inputs)
      f_rfft = pytensor.function([], rfft)
      res_fft = f_rfft()
  
      m = rfft.type()
      irfft = fft.irfft(m)
      f_irfft = pytensor.function([m], irfft)
      res_irfft = f_irfft(res_fft)
  
      utt.assert_allclose(inputs_val, np.asarray(res_irfft))
  
      inputs_val = np.random.random((1, N, N, 2)).astype(
          pytensor.config.floatX
      )
      inputs = pytensor.shared(inputs_val)
  
      irfft = fft.irfft(inputs)
      f_irfft = pytensor.function([], irfft)
      res_irfft = f_irfft()
      inputs_ref = inputs_val[..., 0] + inputs_val[..., 1] * 1j
  
      irfft_ref = np.fft.irfftn(inputs_ref, axes=(1, 2))
  
      utt.assert_allclose(irfft_ref, res_irfft, atol=1e-4, rtol=1e-4)
  
file_path: pytensor/tests/tensor/test_fft.py
imports: import numpy
  import pytest
  import pytensor
  from pytensor.tensor import fft
  from pytensor.tensor.type import matrix
  from tests import unittest_tools
label_desc: Use image node_id 4 for calling the TestFFT obj's underlying member method code with example usage: obj.test_irfft() without return types