code: def test_save_with_program(self):
      agent = TestAgent(self.alg)
      save_program_path1 = "program_dir1"
      save_program_path2 = "program_dir2"
      save_program_deep_path1 = os.path.join(
          "my_program1", "model-2_dir"
      )
      save_program_deep_path2 = os.path.join(
          "my_program2", "model-2_dir"
      )
      agent.save(save_program_path1, program=agent.predict_program)
      agent.save(save_program_path2, program=agent.learn_program)
      agent.save(save_program_deep_path1, program=agent.predict_program)
      agent.save(save_program_deep_path2, program=agent.learn_program)
      self.assertTrue(
          os.path.exists(save_program_path1 + "/predict_program")
      )
      self.assertTrue(
          os.path.exists(save_program_path2 + "/learn_program")
      )
      self.assertTrue(
          os.path.exists(save_program_deep_path1 + "/predict_program")
      )
      self.assertTrue(
          os.path.exists(save_program_deep_path2 + "/learn_program")
      )
  
imports: import numpy
  import unittest
  from paddle import fluid
  from parl import layers
  import parl
  import os
label_desc: Use image node_id 4 for calling the AgentBaseTest obj's underlying member method code with example usage: obj.test_save_with_program() without return types