code: def test_fit_eval(self):
      past_seq_len = 6
      future_seq_len = 2
      input_dim = 5
      output_dim = 4
      x_train = np.random.rand(100, past_seq_len, input_dim)
      y_train = np.random.rand(100, future_seq_len, output_dim)
      x_test = np.random.rand(100, past_seq_len, input_dim)
      y_test = np.random.rand(100, future_seq_len, output_dim)
      model = LSTMSeq2Seq(
          check_optional_config=False, future_seq_len=future_seq_len
      )
      model_config = {
          "batch_size": 32,
          "epochs": 1,
          "latent_dim": 128,
          "dropout": 0.2,
      }
      model.fit_eval((x_train, y_train), **model_config)
      y_pred = model.predict(x_test)
      rmse, smape = model.evaluate(
          x=x_test, y=y_test, metric=["rmse", "smape"]
      )
      assert rmse.shape == smape.shape
      assert rmse.shape == (future_seq_len, output_dim)
  
      assert model.past_seq_len == past_seq_len
      assert model.future_seq_len == future_seq_len
      assert model.feature_num == input_dim
      assert model.target_col_num == output_dim
      assert y_pred.shape == y_test.shape
  
imports: import os
  import shutil
  import tempfile
  import pytest
  from test.zoo.pipeline.utils.test_utils import ZooTestCase
  from zoo.chronos.model.Seq2Seq import LSTMSeq2Seq
  from zoo.chronos.autots.deprecated.feature.time_sequence import TimeSequenceFeatureTransformer
  from numpy.testing import assert_array_almost_equal
  import pandas
  import numpy
label_desc: Use image node_id 4 for calling the TestSeq2Seq obj's underlying member method code with example usage: obj.test_fit_eval() without return types