code: def test_build_id3_with_internal_validation_df():
      df = pd.read_csv("dataset/golf.txt")
      validation_df = pd.read_csv("dataset/golf.txt")
  
      model = cb.fit(df, validation_df=validation_df, silent=True)
  
      assert model["config"]["algorithm"] == "ID3"
  
      validation_eval_results = model["evaluation"]["validation"]
  
      assert validation_eval_results.get("Accuracy", 0) > 99
      assert validation_eval_results.get("Precision", 0) > 99
      assert validation_eval_results.get("Recall", 0) > 99
      assert validation_eval_results.get("F1", 0) > 99
      assert (
          validation_eval_results.get("Instances", 0)
          == validation_df.shape[0]
      )
      assert "Confusion matrix" in validation_eval_results.keys()
      assert "Labels" in validation_eval_results.keys()
  
      # decision_rules = model["trees"][0].__dict__["__name__"]+".py"
      decision_rules = model["trees"][0].__dict__["__spec__"].origin
  
      fi_df = cb.feature_importance(decision_rules, silent=True)
      assert fi_df.shape[0] == 4
  
      logger.info("✅ id3 test with internal validation data frame done")
  
file_path: chefboost/tests/test_id3.py
imports: import pandas
  from chefboost import Chefboost
  from chefboost.commons.logger import Logger
label_desc: Use image node_id 2 for calling a global function with example usage: test_build_id3_with_internal_validation_df() without return types