code: def test_save_and_load(self):
      metric = Metric({"name": "rmse"})
      dt = DecisionTreeRegressorAlgorithm({"ml_task": "regression"})
      dt.fit(self.X, self.y)
      y_predicted = dt.predict(self.X)
      loss = metric(self.y, y_predicted)
  
      filename = os.path.join(
          tempfile.gettempdir(), os.urandom(12).hex()
      )
  
      dt.save(filename)
      dt2 = DecisionTreeRegressorAlgorithm({"ml_task": "regression"})
      dt2.load(filename)
  
      y_predicted = dt2.predict(self.X)
      loss2 = metric(self.y, y_predicted)
      assert_almost_equal(loss, loss2)
  
      # Finished with temp file, delete it
      os.remove(filename)
  
file_path: mljar-supervised/tests/tests_algorithms/test_decision_tree.py
imports: import unittest
  import tempfile
  import json
  import numpy
  import pandas
  import os
  from numpy.testing import assert_almost_equal
  from sklearn import datasets
  from supervised.algorithms.decision_tree import DecisionTreeAlgorithm, DecisionTreeRegressorAlgorithm
  from supervised.utils.metric import Metric
  import tempfile
label_desc: Use image node_id 3 for calling the DecisionTreeTest obj's underlying member method code with example usage: obj.test_save_and_load() without return types