code: def test_get_intercept_col_from_design_mat():
      """Tests getting explicit or implicit intercept column."""
      df = pd.DataFrame(
          {
              "y": 1,
              "a": ["a", "b", "c", "a"],
              "b": ["d", "d", "e", "e"],
              "c": 2,
          }
      )
      # With explicit intercept.
      _, x = dmatrices(
          "y~c+C(a, levels=['a', 'b', 'c'])+C(b, levels=['d', 'e'])+a:b+a:c",
          data=df,
          return_type="dataframe",
      )
      assert "Intercept" in x.columns
      assert get_intercept_col_from_design_mat(x) == "Intercept"
  
      # With implicit intercept.
      _, x = dmatrices(
          "y~c+C(a, levels=['a', 'b', 'c'])+C(b, levels=['d', 'e'])+a:b+a:c+0",
          data=df,
          return_type="dataframe",
      )
      assert "Intercept" not in x.columns
      assert (
          get_intercept_col_from_design_mat(x)
          == "C(a, levels=['a', 'b', 'c'])[a]"
      )
  
      # Without intercept.
      _, x = dmatrices("y~c+0", data=df, return_type="dataframe")
      assert "Intercept" not in x.columns
      assert get_intercept_col_from_design_mat(x) is None
  
imports: import warnings
  import numpy
  import pandas
  import pytest
  import scipy
  from pandas.testing import assert_frame_equal
  from patsy import dmatrices
  from greykite.algo.common.ml_models import breakdown_regression_based_prediction
  from greykite.algo.common.ml_models import design_mat_from_formula
  from greykite.algo.common.ml_models import fit_ml_model
  from greykite.algo.common.ml_models import fit_ml_model_with_evaluation
  from greykite.algo.common.ml_models import fit_model_via_design_matrix
  from greykite.algo.common.ml_models import get_h_mat
  from greykite.algo.common.ml_models import get_intercept_col_from_design_mat
  from greykite.algo.common.ml_models import predict_ml
  from greykite.algo.common.ml_models import predict_ml_with_uncertainty
  from greykite.algo.uncertainty.conditional.conf_interval import predict_ci
  from greykite.common.constants import ERR_STD_COL
  from greykite.common.constants import QUANTILE_SUMMARY_COL
  from greykite.common.constants import TimeFeaturesEnum
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.evaluation import calc_pred_err
  from greykite.common.features.timeseries_features import build_time_features_df
  from greykite.common.features.timeseries_features import fourier_series_multi_fcn
  from greykite.common.features.timeseries_features import get_fourier_col_name
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import gen_sliced_df
label_desc: Use image node_id 4 for calling a global function with example usage: test_get_intercept_col_from_design_mat() without return types