code: def test_calculate_checksum(
      input_features: List[FeatureConfigDict],
      diff: List[FeatureConfigDict],
      expected: bool,
  ):
      config = _gen_config(input_features)
  
      diff_features = [
          merge_dict(f, df) for f, df in zip(input_features, diff)
      ]
      diff_config = _gen_config(diff_features)
  
      mock_dataset = mock.Mock()
      mock_dataset.checksum = uuid.uuid4().hex
  
      assert (
          calculate_checksum(
              mock_dataset, ModelConfig.from_dict(config).to_dict()
          )
          == calculate_checksum(
              mock_dataset, ModelConfig.from_dict(diff_config).to_dict()
          )
      ) == expected
  
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 2 for calling a global function with example usage: test_calculate_checksum(input_features, diff, expected) without return types