code: def test_action_smart_screen(self):
      cvr = converter.Converter(
          settings=_make_converter_settings("visual"),
          environment_info=_make_dummy_env_info(),
      )
  
      smart_screen = {
          "delay": np.int32(4),
          "function": np.int32(451),
          "queued": np.int32(1),
          "screen": np.int32(333),
      }
  
      action = cvr.convert_action(smart_screen)
  
      expected = converter_pb2.Action(
          delay=4,
          request_action=sc2api_pb2.RequestAction(
              actions=[
                  sc2api_pb2.Action(
                      action_feature_layer=spatial_pb2.ActionSpatial(
                          unit_command=spatial_pb2.ActionSpatialUnitCommand(
                              ability_id=1,
                              queue_command=True,
                              target_screen_coord=common_pb2.PointI(
                                  x=333 % SCREEN_SIZE,
                                  y=333 // SCREEN_SIZE,
                              ),
                          )
                      )
                  )
              ]
          ),
      )
  
      self.assertEqual(
          expected.SerializeToString(), action.SerializeToString()
      )
  
imports: from absl.testing import absltest
  from absl.testing import parameterized
  import numpy
  from pysc2.env.converter import converter
  from pysc2.env.converter.proto import converter_pb2
  from s2clientprotocol import common_pb2
  from s2clientprotocol import raw_pb2
  from s2clientprotocol import sc2api_pb2
  from s2clientprotocol import spatial_pb2
label_desc: Use image node_id 3 for calling the VisualConverterTest obj's underlying member method code with example usage: obj.test_action_smart_screen() without return types