code: def test_synthesize_dataset_cli(tmpdir, csv_filename):
      """Test synthesize_data cli."""
      # test depends on default setting of --dataset_size
      # if this parameter is specified, _run_ludwig fails when
      # attempting to build the cli parameter structure
      _run_ludwig(
          "synthesize_dataset",
          output_path=os.path.join(tmpdir, csv_filename),
          features="'[ \
                  {name: text, type: text}, \
                  {name: category, type: category}, \
                  {name: number, type: number}, \
                  {name: binary, type: binary}, \
                  {name: set, type: set}, \
                  {name: bag, type: bag}, \
                  {name: sequence, type: sequence}, \
                  {name: timeseries, type: timeseries}, \
                  {name: date, type: date}, \
                  {name: h3, type: h3}, \
                  {name: vector, type: vector}, \
                  {name: audio, type: audio}, \
                  {name: image, type: image} \
              ]'",
      )
  
imports: import json
  import os
  import os.path
  import pathlib
  import shutil
  import subprocess
  from typing import List, Set
  import pytest
  import yaml
  from ludwig.constants import BATCH_SIZE, COMBINER, EVAL_BATCH_SIZE, INPUT_FEATURES, NAME, OUTPUT_FEATURES, PREPROCESSING, TRAINER
  from ludwig.types import FeatureConfigDict
  from ludwig.utils.data_utils import load_yaml
  from tests.integration_tests.utils import category_feature, generate_data, number_feature, sequence_feature
label_desc: Use image node_id 18 for calling a global function with example usage: test_synthesize_dataset_cli(tmpdir, csv_filename) without return types