code: def test_sequence_generator(
      enc_encoder, enc_cell_type, dec_cell_type, csv_filename
  ):
      # Define input and output features
      input_features = [
          sequence_feature(
              encoder={
                  "type": enc_encoder,
                  "min_len": 5,
                  "max_len": 10,
                  "cell_type": enc_cell_type,
              }
          )
      ]
      output_features = [
          sequence_feature(
              decoder={
                  "type": "generator",
                  "min_len": 5,
                  "max_len": 10,
                  "cell_type": dec_cell_type,
              }
          )
      ]
  
      # Generate test data
      rel_path = generate_data(
          input_features, output_features, csv_filename
      )
  
      # run the experiment
      run_experiment(input_features, output_features, dataset=rel_path)
  
file_path: ludwig/tests/integration_tests/test_sequence_features.py
imports: import contextlib
  import copy
  from io import StringIO
  import pandas
  import pytest
  import torch
  from ludwig.api import LudwigModel
  from ludwig.constants import DECODER, ENCODER_OUTPUT_STATE, LOGITS
  from ludwig.data.dataset_synthesizer import build_synthetic_dataset
  from ludwig.data.preprocessing import preprocess_for_training
  from ludwig.features.feature_registries import update_config_with_metadata
  from tests.integration_tests.utils import generate_data, run_experiment, sequence_feature
label_desc: Use image node_id 4 for calling a global function with example usage: test_sequence_generator(enc_encoder, enc_cell_type, dec_cell_type, csv_filename) without return types