docstr: Test creation of InferenceEngine with bad variable names
code: def test_create_inference_with_bad_variable_names_fails(
      self, train_model, train_data_idx
  ):
      """Test creation of InferenceEngine with bad variable names"""
  
      model = StructureModel()
      model.add_edges_from(
          [
              (str(u).replace("a", "$a"), str(v).replace("a", "$a"))
              for u, v in train_model.edges
          ]
      )
  
      train_data_idx.rename(columns={"a": "$a"}, inplace=True)
  
      bn = BayesianNetwork(model).fit_node_states(train_data_idx)
      bn.fit_cpds(train_data_idx)
  
      with pytest.raises(
          ValueError, match="Variable names must match.*"
      ):
          InferenceEngine(bn)
  
imports: import math
  import pytest
  from causalnex.inference import InferenceEngine
  from causalnex.network import BayesianNetwork
  from causalnex.structure import StructureModel
  from causalnex.structure.notears import from_pandas
label_desc: Use image node_id 2 for calling the TestInferenceEngineIdx obj's underlying member method code with example usage: obj.test_create_inference_with_bad_variable_names_fails(train_model, train_data_idx) without return types