code: def testBuildQueue(self):
      nits = [_MOTHERSHIP, _PROBE]
      production = [
          {
              "ability_id": actions.FUNCTIONS.Train_Mothership_quick.ability_id,
              "build_progress": 0.5,
          },
          {
              "ability_id": actions.FUNCTIONS.Train_Probe_quick.ability_id,
              "build_progress": 0,
          },
          {
              "ability_id": actions.FUNCTIONS.Research_ShadowStrike_quick.ability_id,
              "build_progress": 0,
          },
      ]
      self._builder.build_queue(nits, production)
      obs = self._get_obs()
      self.assertLen(obs.ui_data.production.build_queue, 2)
      for proto, builder in zip(
          obs.ui_data.production.build_queue, nits
      ):
          self._check_unit(proto, builder)
      self.assertLen(obs.ui_data.production.production_queue, 3)
      for proto, p in zip(
          obs.ui_data.production.production_queue, production
      ):
          self.assertEqual(proto.ability_id, p["ability_id"])
          self.assertEqual(proto.build_progress, p["build_progress"])
  
imports: from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  from pysc2.lib import actions
  from pysc2.lib import features
  from pysc2.lib import point
  from pysc2.lib import units
  from pysc2.tests import dummy_observation
  from s2clientprotocol import common_pb2
label_desc: Use image node_id 18 for calling the DummyObservationTest obj's underlying member method code with example usage: obj.testBuildQueue() without return types