code: def test_default_model_type():
      config = {
          INPUT_FEATURES: [category_feature()],
          OUTPUT_FEATURES: [category_feature(output_feature=True)],
      }
  
      merged_config = ModelConfig.from_dict(config).to_dict()
  
      assert merged_config[MODEL_TYPE] == MODEL_ECD
  
file_path: ludwig/tests/ludwig/utils/test_defaults.py
imports: import copy
  import pytest
  from ludwig.constants import CATEGORY, COMBINER, DECODER, DEFAULTS, DEPENDENCIES, DROP_ROW, EARLY_STOP, ENCODER, EXECUTOR, FILL_WITH_MODE, HYPEROPT, INPUT_FEATURES, LOSS, MISSING_VALUE_STRATEGY, MODEL_ECD, MODEL_TYPE, OUTPUT_FEATURES, PREPROCESSING, REDUCE_DEPENDENCIES, REDUCE_INPUT, SCHEDULER, SUM, TIED, TOP_K, TRAINER, TYPE
  from ludwig.schema.model_config import ModelConfig
  from ludwig.schema.trainer import ECDTrainerConfig
  from ludwig.utils.backward_compatibility import upgrade_config_dict_to_latest_version
  from ludwig.utils.misc_utils import merge_dict, set_default_values
  from tests.integration_tests.utils import binary_feature, category_feature, number_feature, sequence_feature, text_feature, vector_feature
label_desc: Use image node_id 3 for calling a global function with example usage: test_default_model_type() without return types