code: def test_proc_col_checksum_consistency_same_preprocessing_different_types():
      """Tests that proc_col is different if preprocessing and names are the same but types are different."""
      config = {
          "input_features": [
              # Same name, different types, same preprocessing
              {
                  "name": "num1",
                  "type": "number",
                  "preprocessing": {
                      "missing_value_strategy": "fill_with_mode"
                  },
              },
              {
                  "name": "num2",
                  "type": "category",
                  "preprocessing": {
                      "missing_value_strategy": "fill_with_mode"
                  },
              },
          ],
          "output_features": [
              {
                  "name": "num3",
                  "type": "number",
                  "preprocessing": {
                      "missing_value_strategy": "fill_with_mode"
                  },
              }
          ],
      }
      config = ModelConfig.from_dict(config)
  
      assert (
          config.input_features[0].proc_column
          != config.input_features[1].proc_column
      )
  
file_path: ludwig/tests/ludwig/data/test_cache_util.py
imports: import copy
  import uuid
  from typing import List
  from unittest import mock
  import pytest
  from ludwig.constants import INPUT_FEATURES, OUTPUT_FEATURES
  from ludwig.data.cache.util import calculate_checksum
  from ludwig.schema.model_types.base import ModelConfig
  from ludwig.types import FeatureConfigDict, ModelConfigDict
  from ludwig.utils.misc_utils import merge_dict
label_desc: Use image node_id 4 for calling a global function with example usage: test_proc_col_checksum_consistency_same_preprocessing_different_types() without return types