code: def run_validations(
      causal_graph: DirectedGraph,
      data: pd.DataFrame,
      methods: Optional[
          Union[Callable, Tuple[Callable, ...], List[Callable]]
      ] = partial(
          validate_lmc,
          independence_test=kernel_based,
          conditional_independence_test=kernel_based,
      ),
  ) -> Dict[str, Dict]:
      """
      Validate a given causal graph using observational data and some given methods. If methods are provided, they must
      be wrapped in a partial object, with their respective parameters. E.g., if one wants to test the local
      Markov conditions and the pairwise dependencies (unconditional faithfulness), then call
          run_validations(G, data, methods=(
              partial(validate_lmc, independence_test=..., conditional_independence_test=...),
              partial(validate_pd, independence_test=...),
              )
          )
  
      :param causal_graph: A directed acyclic graph (DAG).
      :param data: Observations of variables in the DAG.
      :param methods: Method functions wrapped in wrap_partial. E.g.
                      wrap_partial(validate_lmc, data=data, independence_test=..., conditional_independence_test=...).
                      If no methods are provided we run validate_lmc with optional keyword arguments provided to
                      run_validations.
      :return: Validation summary as dict.
      """
  
      if not isinstance(methods, (tuple, list)):
          methods = (methods,)
  
      validation_summary = dict()
  
      for m in methods:
          if "data" in getfullargspec(m).args:
              m = partial(m, data=data)
          m_summary = m(causal_graph=causal_graph)
          m_name = m_summary.pop(FalsifyConst.METHOD)
          validation_summary[m_name] = m_summary
  
      return validation_summary
  
imports: import warnings
  from dataclasses import dataclass, field
  from enum import Enum, auto
  from functools import partial
  from inspect import getfullargspec
  from itertools import permutations
  from typing import Any, Callable, Dict, FrozenSet, List, Optional, Set, Tuple, Union
  import matplotlib.colors
  import matplotlib.pyplot
  import networkx
  import numpy
  import pandas
  from joblib import Parallel, delayed
  from tqdm import tqdm
  import dowhy.gcm.config
  from dowhy.gcm.independence_test import kernel_based
  from dowhy.gcm.util import plot
  from dowhy.gcm.util.general import set_random_seed
  from dowhy.graph import DirectedGraph, get_ordered_predecessors
label_desc: Use image node_id 5 for calling a global function with example usage: run_validations(causal_graph, data, methods) and returns: validation_summary