code: def test_get_and_set_weights_between_algorithms_with_model_ids(self):
      alg1_model_ids = [
          self.alg1.model1.model_id,
          self.alg1.model_list2[0].model_id,
          self.alg1.model_dict2["k1"].model_id,
      ]
      alg2_model_ids = [
          self.alg2.model1.model_id,
          self.alg2.model_list2[0].model_id,
          self.alg2.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.alg1.set_weights(new_weights, alg1_model_ids)
      alg1_weights = self.alg1.get_weights(alg1_model_ids)
  
      self.alg2.set_weights(alg1_weights, alg2_model_ids)
      self.assertDictEqual(self.alg2.get_weights(), expected_dict)
  
imports: import unittest
  import parl
label_desc: Use image node_id 12 for calling the AlgorithmBaseTest obj's underlying member method code with example usage: obj.test_get_and_set_weights_between_algorithms_with_model_ids() without return types