code: def test_identify_backdoor_maximal_direct_effect(
      self, example_graph_solution: IdentificationTestGraphSolution
  ):
      graph = example_graph_solution.graph
      expected_sets = (
          example_graph_solution.direct_maximal_adjustment_sets
      )
      identifier = AutoIdentifier(
          estimand_type=EstimandType.NONPARAMETRIC_CDE,
          backdoor_adjustment=BackdoorAdjustment.BACKDOOR_MAX,
      )
  
      backdoor_results = identifier.identify_backdoor(
          graph,
          observed_nodes=example_graph_solution.observed_nodes,
          action_nodes=["X"],
          outcome_nodes=["Y"],
          direct_effect=True,
      )
  
      backdoor_sets = [
          set(backdoor_result_dict["backdoor_set"])
          for backdoor_result_dict in backdoor_results
      ]
      assert (
          (len(backdoor_sets) == 0) and (len(expected_sets) == 0)
      ) or all(  # No adjustments exist and that's expected.
          [
              set(expected_set) in backdoor_sets
              for expected_set in expected_sets
          ]
      )
  
file_path: dowhy/tests/causal_identifiers/test_backdoor_identifier.py
imports: import pytest
  from dowhy.causal_identifier import AutoIdentifier, BackdoorAdjustment
  from dowhy.causal_identifier.identify_effect import EstimandType
  from .base import IdentificationTestGraphSolution, example_graph_solution
label_desc: Use image node_id 5 for calling the TestBackdoorIdentification obj's underlying member method code with example usage: obj.test_identify_backdoor_maximal_direct_effect(example_graph_solution) without return types