code: def test_contradicting_signals() -> None:
      """Test that the solver will return the deepest common ancestor if it finds conflicting signals."""
      signals = [
          InferenceSignal(
              column=column,
              type_node=InferenceSignalType.ID.FOREIGN,
              reason="FOREIGN",
              confidence=InferenceSignalConfidence.HIGH,
              only_applies_to_parent=False,
          ),
          InferenceSignal(
              column=column,
              type_node=InferenceSignalType.ID.PRIMARY,
              reason="PRIMARY",
              confidence=InferenceSignalConfidence.HIGH,
              only_applies_to_parent=False,
          ),
      ]
  
      result = solver.solve_column(column, signals)
  
      assert result.type_node == InferenceSignalType.ID.UNKNOWN
  
file_path: metricflow/metricflow/test/inference/solver/test_weighted_tree.py
imports: from __future__ import annotations
  from metricflow.dataflow.sql_column import SqlColumn
  from metricflow.inference.models import InferenceSignal, InferenceSignalConfidence, InferenceSignalType
  from metricflow.inference.solver.weighted_tree import WeightedTypeTreeInferenceSolver
label_desc: Use image node_id 5 for calling a global function with example usage: test_contradicting_signals() without return types