code: def test_hfft(self):
      x = random(14) + 1j * random(14)
      x_herm = np.concatenate((random(1), x, random(1)))
      x = np.concatenate((x_herm, x[::-1].conj()))
      assert_allclose(np.fft.fft(x), np.fft.hfft(x_herm), atol=1e-6)
      assert_allclose(
          np.fft.hfft(x_herm),
          np.fft.hfft(x_herm, norm="backward"),
          atol=1e-6,
      )
      assert_allclose(
          np.fft.hfft(x_herm) / np.sqrt(30),
          np.fft.hfft(x_herm, norm="ortho"),
          atol=1e-6,
      )
      assert_allclose(
          np.fft.hfft(x_herm) / 30.0,
          np.fft.hfft(x_herm, norm="forward"),
          atol=1e-6,
      )
  
imports: import numpy
  import pytest
  from numpy.random import random
  from numpy.testing import assert_array_equal, assert_raises, assert_allclose, IS_WASM
  import threading
  import queue
label_desc: Use image node_id 14 for calling the TestFFT1D obj's underlying member method code with example usage: obj.test_hfft() without return types