code: def test_regular_save_load(model_type, n_users, n_items):
      ckpt = ".%s" % model_type
      if os.path.exists(ckpt):
          shutil.rmtree(ckpt)
  
      model = NCF(
          n_users=n_users,
          n_items=n_items,
          model_type=model_type,
          n_epochs=1,
          seed=SEED,
      )
      model.save(ckpt)
      if model.model_type == "neumf":
          P = model.sess.run(model.embedding_gmf_P)
          Q = model.sess.run(model.embedding_mlp_Q)
      elif model.model_type == "gmf":
          P = model.sess.run(model.embedding_gmf_P)
          Q = model.sess.run(model.embedding_gmf_Q)
      elif model.model_type == "mlp":
          P = model.sess.run(model.embedding_mlp_P)
          Q = model.sess.run(model.embedding_mlp_Q)
  
      del model
      model = NCF(
          n_users=n_users,
          n_items=n_items,
          model_type=model_type,
          n_epochs=1,
          seed=SEED,
      )
  
      if model.model_type == "neumf":
          model.load(neumf_dir=ckpt)
          P_ = model.sess.run(model.embedding_gmf_P)
          Q_ = model.sess.run(model.embedding_mlp_Q)
      elif model.model_type == "gmf":
          model.load(gmf_dir=ckpt)
          P_ = model.sess.run(model.embedding_gmf_P)
          Q_ = model.sess.run(model.embedding_gmf_Q)
      elif model.model_type == "mlp":
          model.load(mlp_dir=ckpt)
          P_ = model.sess.run(model.embedding_mlp_P)
          Q_ = model.sess.run(model.embedding_mlp_Q)
  
      # test load function
      assert np.array_equal(P, P_)
      assert np.array_equal(Q, Q_)
  
      if os.path.exists(ckpt):
          shutil.rmtree(ckpt)
  
file_path: recommenders/tests/unit/recommenders/models/test_ncf_singlenode.py
imports: import os
  import shutil
  import pytest
  import numpy
  import pandas
label_desc: Use image node_id 2 for calling a global function with example usage: test_regular_save_load(model_type, n_users, n_items) without return types