code: def custom_data_average_treatment_effect_test(self, data):
      target_estimand = identify_effect_auto(
          build_graph_from_str(data["gml_graph"]),
          observed_nodes=list(data["df"].columns),
          action_nodes=data["treatment_name"],
          outcome_nodes=data["outcome_name"],
          estimand_type=EstimandType.NONPARAMETRIC_ATE,
      )
      estimator_ate = self._Estimator(
          identified_estimand=target_estimand,
          test_significance=None,
      )
      estimator_ate.fit(data["df"])
      true_ate = data["ate"]
      ate_estimate = estimator_ate.estimate_effect(data["df"])
      error = ate_estimate.value - true_ate
      print(
          "Error in ATE estimate = {0} with tolerance {1}%. Estimated={2},True={3}".format(
              error,
              self._error_tolerance * 100,
              ate_estimate.value,
              true_ate,
          )
      )
      res = (
          True if (error < true_ate * self._error_tolerance) else False
      )
      assert res
  
file_path: dowhy/tests/causal_estimators/base.py
imports: import itertools
  import dowhy.datasets
  from dowhy import EstimandType, identify_effect_auto
  from dowhy.graph import build_graph_from_str
label_desc: Use image node_id 4 for calling the SimpleEstimator obj's underlying member method code with example usage: obj.custom_data_average_treatment_effect_test(data) without return types