code: def test_nbeats_forecaster_fit_pred_eva(self):
      train_data, _, test_data = create_data()
      forecaster = NBeatsForecaster(
          past_seq_len=24,
          future_seq_len=5,
          stack_types=("generic", "generic"),
          nb_blocks_per_stack=3,
          hidden_layer_units=256,
          metrics=["mae"],
          lr=0.01,
      )
      forecaster.fit((train_data[0], train_data[1]), epochs=2)
      # inference
      nbeats_pred = forecaster.predict(test_data[0], acceleration=False)
      assert nbeats_pred.shape == test_data[1].shape
      eva = forecaster.evaluate(test_data, acceleration=False)
      assert eva[0].shape == test_data[1].shape[1:]
  
imports: import os
  import tempfile
  import numpy
  from unittest import TestCase
  import pytest
  from bigdl.chronos.utils import LazyImport
  from ..None import op_torch, op_distributed, op_inference, op_automl
label_desc: Use image node_id 3 for calling the TestChronosNBeatsForecaster obj's underlying member method code with example usage: obj.test_nbeats_forecaster_fit_pred_eva() without return types