code: def test_comparator_fc_layer_config(
      num_fc_layers: Optional[int],
      fc_layers: Optional[Dict[str, Any]],
      expect_success: bool,
  ):
      config = {
          "input_features": [
              {"name": "in1", "type": "category"},
              {"name": "in2", "type": "category"},
          ],
          "output_features": [
              {"name": "out1", "type": "binary"},
          ],
          "combiner": {
              "type": "comparator",
              "entity_1": ["in1"],
              "entity_2": ["in2"],
          },
      }
  
      if num_fc_layers is not None:
          config["combiner"]["num_fc_layers"] = num_fc_layers
  
      if fc_layers is not None:
          config["combiner"]["fc_layers"] = fc_layers
  
      with pytest.raises(
          ConfigValidationError
      ) if not expect_success else contextlib.nullcontext():
          ModelConfig.from_dict(config)
  
imports: import contextlib
  from typing import Any, Dict, List, Optional
  import pytest
  import yaml
  from ludwig.constants import COMBINER, TYPE
  from ludwig.error import ConfigValidationError
  from ludwig.schema.model_types.base import ModelConfig
  from tests.integration_tests.utils import binary_feature, text_feature
label_desc: Use image node_id 7 for calling a global function with example usage: test_comparator_fc_layer_config(num_fc_layers, fc_layers, expect_success) without return types