docstr: Ensure the `reset` method of Agent() using the new refactor is working as intended, 
  using the `MMP` argument to `inference_algo`, and `use_BMA` 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","`","use_BMA","`","equal","to","True"]
code: def test_reset_agent_MMP_wBMA(self):
      """
      Ensure the `reset` method of Agent() using the new refactor is working as intended,
      using the `MMP` argument to `inference_algo`, and `use_BMA` 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=True)
  
      self.assertEqual(len(agent.latest_belief), agent.num_factors)
      self.assertTrue(
          all(
              [
                  (agent.latest_belief[f] == agent.D[f]).all()
                  for f in range(agent.num_factors)
              ]
          )
      )
      self.assertTrue(agent.curr_timestep == 0)
  
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 3 for calling the TestAgent obj's underlying member method code with example usage: obj.test_reset_agent_MMP_wBMA() without return types