docstr: Ensure the `reset` method of Agent() using the new refactor is working as intended, 
  using the `MMP` argument to `inference_algo`, and `policy-separated prior` equal to True
docstr_tok: ["Ensure","the","`","reset","`","method","of","Agent","(",")","using","the","new","refactor","is","working","as","intended",",","using","the","`","MMP","`","argument","to","`","inference_algo","`",",","and","`","policy-separated","prior","`","equal","to","True"]
code: def test_reset_agent_MMP_wPSP(self):
      """
      Ensure the `reset` method of Agent() using the new refactor is working as intended,
      using the `MMP` argument to `inference_algo`, and `policy-separated prior` equal to True
      """
  
      num_obs = [2, 4]
      num_states = [2, 3]
      num_controls = [2, 3]
      A = utils.random_A_matrix(num_obs, num_states)
      B = utils.random_B_matrix(num_states, num_controls)
  
      agent = Agent(
          A=A,
          B=B,
          inference_algo="MMP",
          use_BMA=False,
          policy_sep_prior=True,
      )
  
      self.assertEqual(
          len(agent.qs[0]) - agent.inference_horizon - 1,
          agent.policy_len,
      )
  
imports: import os
  import unittest
  import numpy
  from copy import deepcopy
  from pymdp.agent import Agent
  from pymdp import utils, maths
  from pymdp import inference, control, learning
  from pymdp.default_models import generate_grid_world_transitions
label_desc: Use image node_id 4 for calling the TestAgent obj's underlying member method code with example usage: obj.test_reset_agent_MMP_wPSP() without return types