code: def test_global_defaults_with_encoder_dependencies():
      input_features = [text_feature(name="title", reduce_output="sum")]
      output_features = [
          category_feature(
              name="article", embedding_size=3, output_feature=True
          )
      ]
      del input_features[0][ENCODER]
  
      config = {
          INPUT_FEATURES: input_features,
          OUTPUT_FEATURES: output_features,
          DEFAULTS: {
              TEXT: {
                  ENCODER: {TYPE: "bert"},
              }
          },
      }
  
      # Config should populate with the additional required fields for bert
      updated_config = ModelConfig.from_dict(config).to_dict()
  
      assert updated_config[INPUT_FEATURES][0][ENCODER][TYPE] == "bert"
      assert (
          updated_config[INPUT_FEATURES][0][ENCODER][
              "pretrained_model_name_or_path"
          ]
          == "bert-base-uncased"
      )
  
file_path: ludwig/tests/integration_tests/test_config_global_defaults.py
imports: import logging
  from typing import Dict, Tuple
  from ludwig.constants import BATCH_SIZE, CATEGORY, COMBINER, DECODER, DEFAULTS, ENCODER, EPOCHS, FILL_WITH_CONST, INPUT_FEATURES, LOSS, OUTPUT_FEATURES, PREPROCESSING, TEXT, TRAINER, TYPE
  from ludwig.schema.model_config import ModelConfig
  from tests.integration_tests.utils import category_feature, generate_data, run_experiment, text_feature
label_desc: Use image node_id 3 for calling a global function with example usage: test_global_defaults_with_encoder_dependencies() without return types