code: def test_gbm_encoders():
      config = {
          "input_features": [
              {"name": "feature_1", "type": "category"},
              {"name": "Sex", "type": "category"},
          ],
          "output_features": [
              {"name": "Survived", "type": "category"},
          ],
          "defaults": {
              "binary": {
                  "encoder": {
                      "type": "passthrough",
                  },
                  "preprocessing": {
                      "missing_value_strategy": "fill_with_false",
                  },
              },
              "category": {
                  "encoder": {
                      "type": "onehot",
                  },
                  "preprocessing": {
                      "missing_value_strategy": "fill_with_const",
                      "most_common": 10000,
                  },
              },
              "number": {
                  "encoder": {
                      "type": "passthrough",
                  },
                  "preprocessing": {
                      "missing_value_strategy": "fill_with_const",
                  },
              },
          },
          "model_type": "gbm",
      }
  
      config_obj = ModelConfig.from_dict(config).to_dict()
  
      for feature_type in config_obj.get("defaults"):
          assert "encoder" in config_obj["defaults"][feature_type]
  
imports: import os
  from tempfile import TemporaryDirectory
  from typing import Any, Dict, Optional, Union
  import pytest
  import yaml
  from ludwig.constants import ACTIVE, BASE_MODEL, CLIP, COLUMN, COMBINER, DECODER, DEFAULT_VALIDATION_METRIC, DEFAULTS, DEPENDENCIES, ENCODER, HYPEROPT, INPUT_FEATURES, INPUT_SIZE, LOSS, MODEL_ECD, MODEL_GBM, MODEL_LLM, MODEL_TYPE, NAME, NUM_CLASSES, OPTIMIZER, OUTPUT_FEATURES, PREPROCESSING, PROC_COLUMN, REDUCE_DEPENDENCIES, REDUCE_INPUT, TIED, TRAINER, TYPE
  from ludwig.error import ConfigValidationError
  from ludwig.schema.decoders.base import ClassifierConfig
  from ludwig.schema.encoders.text_encoders import BERTConfig
  from ludwig.schema.features.augmentation.image import RandomBlurConfig, RandomRotateConfig
  from ludwig.schema.features.image_feature import AUGMENTATION_DEFAULT_OPERATIONS
  from ludwig.schema.features.number_feature import NumberOutputFeatureConfig
  from ludwig.schema.features.text_feature import TextOutputFeatureConfig
  from ludwig.schema.llms.quantization import QuantizationConfig
  from ludwig.schema.model_config import ModelConfig
  from ludwig.schema.utils import BaseMarshmallowConfig, convert_submodules
label_desc: Use image node_id 22 for calling a global function with example usage: test_gbm_encoders() without return types