docstr: Test with invalid observations type
code: def test_invalid_observations(self, train_model, train_data_idx):
      """Test with invalid observations type"""
  
      bn = BayesianNetwork(train_model)
      bn.fit_node_states(train_data_idx).fit_cpds(train_data_idx)
      ie = InferenceEngine(bn)
  
      with pytest.raises(
          TypeError,
          match="Expecting observations to be a dict, list or None",
      ):
          ie.query("123")
  
      with pytest.raises(
          TypeError,
          match="Expecting observations to be a dict, list or None",
      ):
          ie.query({"123", "abc"})
  
      with pytest.raises(
          TypeError,
          match="Expecting observations to be a dict, list or None",
      ):
          ie.query(("123", "abc"))
  
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 3 for calling the TestInferenceEngineIdx obj's underlying member method code with example usage: obj.test_invalid_observations(train_model, train_data_idx) without return types