code: def test_tied_macro_level(
      tied_use_case: TiedUseCase, csv_filename: str
  ):
      input_features = [
          number_feature(),  # Other feature
          tied_use_case.input_feature(),  # first feature to be tied
          tied_use_case.input_feature(),  # second feature to be tied
          category_feature(),  # other feature
      ]
      # tie second feature to first feature
      input_features[2]["tied"] = input_features[1]["name"]
  
      # setup output feature
      output_features = [
          tied_use_case.output_feature(output_feature=True)
      ]
  
      # Generate test data and run full_experiment
      rel_path = generate_data(
          input_features, output_features, csv_filename
      )
      run_experiment(input_features, output_features, dataset=rel_path)
  
imports: from collections import namedtuple
  import pytest
  from ludwig.models.base import BaseModel
  from ludwig.schema.model_config import ModelConfig
  from tests.integration_tests.utils import category_feature, generate_data, number_feature, run_experiment, sequence_feature, text_feature
label_desc: Use image node_id 2 for calling a global function with example usage: test_tied_macro_level(tied_use_case, csv_filename) without return types