code: def test_save_restore(self):
      self.model.fit_eval(
          data=self.data,
          validation_data=self.validation_data,
          **self.config,
      )
      result_save = self.model.predict(horizon=self.horizon)
      model_file = "tmp.json"
  
      self.model.save(model_file)
      assert os.path.isfile(model_file)
      new_model = ProphetModel()
      new_model.restore(model_file)
      assert new_model.model
      result_restore = new_model.predict(horizon=self.horizon)
      assert_array_almost_equal(
          result_save["yhat"], result_restore["yhat"], decimal=2
      ), "Prediction values are not the same after restore: " "predict before is {}, and predict after is {}".format(
          result_save, result_restore
      )
      os.remove(model_file)
  
file_path: analytics-zoo/pyzoo/test/zoo/chronos/model/test_prophet.py
imports: import pytest
  from test.zoo.pipeline.utils.test_utils import ZooTestCase
  from zoo.chronos.model.prophet import ProphetModel
  import numpy
  import os
  from numpy.testing import assert_array_almost_equal
  import pandas
label_desc: Use image node_id 5 for calling the TestProphetModel obj's underlying member method code with example usage: obj.test_save_restore() without return types