code: def test_get_and_set_weights_between_agents_with_model_ids(self):
      agent1_model_ids = [
          self.agent1.alg.model1.model_id,
          self.agent1.alg.model_list2[0].model_id,
          self.agent1.alg.model_dict2["k1"].model_id,
      ]
      agent2_model_ids = [
          self.agent2.alg.model1.model_id,
          self.agent2.alg.model_list2[0].model_id,
          self.agent2.alg.model_dict2["k1"].model_id,
      ]
      new_weights = {
          "model1": -1,
          "model_list2": [-4],
          "model_dict2": {
              "k1": -7,
          },
      }
      expected_dict = {
          "model1": -1,
          "model2": 2,
          "model_list1": [3],
          "model_list2": [-4, 5],
          "model_dict1": {"k1": 6},
          "model_dict2": {"k1": -7, "k2": 8},
      }
      self.agent1.set_weights(new_weights, agent1_model_ids)
      agent1_weights = self.agent1.get_weights(agent1_model_ids)
  
      self.agent2.set_weights(agent1_weights, agent2_model_ids)
      self.assertDictEqual(self.agent2.get_weights(), expected_dict)
  
imports: import unittest
  import parl
label_desc: Use image node_id 8 for calling the AgentBaseTest obj's underlying member method code with example usage: obj.test_get_and_set_weights_between_agents_with_model_ids() without return types